Writing

Blog Posts

Explore the fascinating world of software development, woodworking, and 3D printing. Discover insightful articles, tutorials, and project showcases covering a wide range of topics, including coding best practices, woodworking techniques, and innovative 3D printing applications. Expand your knowledge and get inspired to create exceptional projects that blend the realms of technology, craftsmanship, and creativity.

I design small 1:64 printable cars for my son and put the files up as SaiyanPrints. Bodies live in Blender. The shared chassis and fit checks live in SolidCraft. Here is how that split works.
Moving my wife's candle shop, Sisters by the Moon, off Shopify to Next.js, Sanity, and Stripe: the edge cases we hit and the bot team helping me build it.
How I built ravenwood-ui, a personal shadcn registry: naming, the catalog, the publish and consume workflow with the shadcn CLI, and why it stays small.
Why I daily-drive a Raspberry Pi 500+ instead of an AI workstation: 16GB RAM, NVMe, an Omarchy-inspired desktop, my own Rust apps, and Ollama Cloud agents.
Why I built Raven, a small local-first coding agent harness in Rust, and Hearth, the desk it runs in, after Grok Build, OpenCode, and Hermes lost my trust.
Build a cinematic Earth Engine split-viewer that compares Sentinel-2 imagery with Dynamic World land cover, plus hillshade blending and async evaluation.
Build an interactive nighttime lights trend analyzer with Earth Engine, Python, geemap, and ipywidgets: DMSP-OLS data, linear trends, and state clipping.
Why a homelab levels up your engineering career: hands-on DevOps, self-hosted Gitea, Vaultwarden, and Ollama, Cloudflare Tunnels, and how to start.
A hands-on guide to Go for Python developers: tooling, types and structs, methods and interfaces, error handling, goroutines, and generics.
Google DeepMind's August 2025 highlights: Gemini 2.5 Flash Image for creative editing, Deep Think's wider rollout, and new data on Gemini's energy use.
Five geospatial web apps to build with Python: crime mapping, real-time environmental dashboards, precision agriculture, and more, with GeoPandas and Folium.
How Google DeepMind's AlphaEarth Foundations turns satellite data into embeddings for Earth Engine, and why it matters for climate and land cover.
The AI and automation tools behind my 2025 workflow across two developer roles: Gemini CLI as a coding agent, NotebookLM for research, and more.
What America's AI Action Plan, released by the White House in July 2025, means for developers, data scientists, and security pros, and what to watch.
A deep dive into the USGS 3D Hydrography Program (3DHP): why it replaces the 2D NHD, how it builds on 3DEP lidar, and what it means for water mapping.
How real-time geospatial data and AI combine for faster, better decisions: use cases across industries, key tools, and the benefits.
A Python developer's guide to AI-driven geospatial analysis: environment setup, essential libraries, practical applications, and structuring code for scale.
How AI tools help remote software teams: communication and collaboration, project management, code review and security, and AI agents for back-office work.
How AI is changing cybersecurity: machine learning threat detection, NLP and computer vision, automated response, predictive analytics, and AI-driven attacks.
How I built an automated hydrologic workflow with open-source GIS: delineating my watershed from a DEM with PySheds and working around a stale library.
Set up a CI/CD pipeline with GitHub Actions and Docker for a FastAPI and React project: workflows, automated tests, image builds, and deployment.
Raster vs. vector geospatial data explained: how each represents the world, example datasets, formats like GeoTIFF and shapefiles, and tools like PostGIS.
A sarcastic tour of Python project setup: version roulette, PATH woes, virtual environments, project structure, import errors, and dependency management.
Meet Sidekick, my open-source desktop AI companion built with Python and CustomTkinter. It runs local models via Ollama, so chats stay on your machine.
The fundamentals of geospatial engineering and location intelligence: how GIS evolved, core system components, data collection, and spatial databases.
A short guide to NetworkX for GIS developers: build and analyze graphs, directed networks and attributes, shortest paths, centrality, and water network flows.
Improve SEO with Sanity CMS: SEO fields in your schema, structured data, image and speed optimization, and content practices that help pages rank.
Advanced content management with Sanity: custom workflows, plugins, document actions, complex content types, and real-world examples to level up your Studio.
What a headless CMS is, how it differs from a traditional CMS, and how Sanity powers modern apps, with Next.js integration examples and server actions.
A developer's guide to Sanity CMS: setting up a project, building schemas, managing content, querying with GROQ, customizing Studio, and best practices.
Why choose Sanity over WordPress, Drupal, or Joomla: headless architecture, real-time collaboration, flexible content modeling, and the trade-offs.
Square, Wix, WordPress, Webflow, or a custom build? Compare features, pricing, ease of use, and ideal use cases to choose the right website solution.
Optimize a Next.js App Router app for SEO: metadata, server rendering and generateStaticParams, structured data, Open Graph and Twitter cards, and speed.
Use Sentry in a Next.js App Router project: what Sentry does, setup, custom error.js handling, not-found pages, and best practices for error monitoring.
Set up a Raspberry Pi 5 to run an offline LLM with Ollama for survival or off-grid use: what you need, OS setup, choosing a model, and tuning for speed.
Protect a Next.js app from abuse with rate limiting: what it is, why it matters, and how to implement it in middleware with Upstash Ratelimit and Redis.
Restrict access to a Next.js app by country: read the visitor's location from your host, block or redirect requests, and test the result before you ship it.
Best practices for securing a Next.js app: common vulnerabilities, server-side protections, securing API routes, env variables, and auth with NextAuth.
Build a simple image recognition model with TensorFlow: load CIFAR-10, design a convolutional neural network, train it, and evaluate how well it classifies.
Turn a Next.js app into a Progressive Web App: configure next-pwa, add a web manifest and icons, handle production builds, and test offline.
A guide to React 19's headline features: Actions, Server Components, asset loading, document metadata, Web Components support, and new hooks.
A hands-on intro to machine learning with TensorFlow for Python developers: what TensorFlow is, installing it, core concepts, and your first trained model.
A deep dive into Python's core data libraries: NumPy for numerical computing, Pandas DataFrames for data manipulation, and Matplotlib for visualization.
Embedded, desktop, web, mobile, and beyond: what each type of software development involves, its challenges and tools, and how to choose your path.
Object-oriented vs. functional programming in Python for beginners: classes and the pillars of OOP vs. pure functions, immutability, functools, and itertools.
Essential machine learning techniques with scikit-learn and Python: data preprocessing, regression, classification, neural nets, tuning, and model evaluation.
A tour of the main machine learning algorithm types, from regression and decision trees to SVM, KNN, and clustering, and the real-world problems each solves.
Beyond coding: the soft skills that elevate software developers, starting with communication, writing, and active listening, and why they matter.
A practical guide to avoiding developer burnout: spot the warning signs, protect work-life balance, use focus techniques, and build sustainable habits.
How large language models work: the history of language models, tokenization and embeddings, the transformer and attention, and pretraining vs. fine-tuning.