Programming

A blue robot with a square head and cylindrical body stands in the center, surrounded by a circular arrangement of icons: colorful data grids and yellow packages on the left, pink and green cloud shapes at the top, and upward-pointing arrows in blue and pink on the right, with green packages at the bottom. The background is beige.

What's the Differences Between Relational, NoSQL, Vectors, and Caches

Programming

Updated: June 29, 2026

Your app still has one job: store data, fetch it fast, and stay honest about "correct." The modern "database" is a stack-primary store, a few specialists, plus cache-so you don't melt your main DB. This post walks through Postgres, MySQL, Mongo, vectors, and Redis, then lands on a boring 2026 default for most SaaS: Postgres + JSONB + pgvector + Redis. read on »

A blue robot with orange circular eyes and a simple smiling face stands in the center, surrounded by floating geometric shapes (cubes, pyramids, polygons) and coding symbols including curly braces, Git merge icons, and HTML-style tags. The background features a gradient sky transitioning from blue at the top to orange/yellow in the middle, with purple and blue geometric mountains at the bottom and a colorful striped ground beneath the robot's feet.

Git and Source Control in AI Land

Programming

Updated: June 29, 2026

AI can crank out code fast. Then you blink, and nobody remembers what changed or why. This post argues that Git-not your assistant-is the real memory: commits as checkpoints, branches as experiments, PRs as the paper trail. It also breaks down where to host your repo (GitHub, GitLab, Bitbucket, or self-hosted) and what actually matters if you want AI speed without AI chaos. read on »

A confused-looking teal and white robot with an antenna stands center, holding balloons labeled ".com", ".org", and ".net" while connected by cables to server stacks on either side. Two large question marks (one orange, one pink) float above the robot against a light blue-to-pink gradient background with scattered geometric shapes.

Domains, DNS, and why it feels fragile

Programming

Updated: April 14, 2026

Buying a domain feels like ownership until you touch DNS and learn you're renting a name glued together by caches. This post breaks down registrars vs registries, the DNS record types that matter, why TTLs make "propagation" feel random, and the silent failures that take down email or login with zero warnings. Includes a practical pre-change checklist and a clear look at what Cloudflare adds beyond basic DNS. read on »

A colorful cartoon robot with a blue circular head, orange headphones, and a body made of storage containers (orange shipping containers on the left, pink filing cabinets on the right) stands centered on a beige background. Geometric shapes in blue, yellow, pink, and orange (circles, triangles, squares, hexagons, and cubes) float around the robot.

Containers vs VMs: Docker and friends

Programming

Updated: June 29, 2026

You can tell how a team ships software by how they talk about servers. VMs are "the server": heavy, isolated, and long-lived. Containers are "spin up another instance": fast, repeatable, and disposable. This post breaks down the real tradeoffs, shows a minimal Flask Dockerfile, and explains why predictable environments, loud failures, and easy rollbacks matter more than ideology. read on »

A cartoon robot with a white TV-screen face displaying a smile stands against a cyan background, holding colorful geometric blocks and database cylinders in its purple, orange, and cyan arms. The robot has antennae on its head and is surrounded by floating clouds, cubes, circles, and geometric shapes in purple, orange, and other bright colors.

Kubernetes: What is it, When to use it, and why?

Programming

Updated: June 29, 2026

Kubernetes gets recommended like a vitamin, but it's closer to a chainsaw: great for real operational problems, a mess for small apps. This post breaks down what K8s actually does, the core objects that trip people up, when it earns its keep, and when you should pick something boring like Cloud Run or ECS. It also covers why AI-generated YAML can speed you up-or ship an outage-if you don't understand probes, resource limits, and basic `kubectl` debugging. read on »

Two colorful cartoon robots stand side by side against a split cyan and orange background with tech-themed icons scattered around them - the left robot has multiple arms, question marks, and gears, while the right robot features a shield emblem on its chest with checkmarks and lock symbols nearby.

Going From Vibe‑Coding Agents to Production‑Grade AI Security

Programming

Updated: June 29, 2026

Built an MCP server in a weekend? Cool. Now check whether you also built an eager little agent with access to your prod database, your `.env`, and a log trail full of secrets. This post is the Monday-after triage: rotate keys, purge git history, put a proxy in front of model + tools, kill "run arbitrary SQL," shrink tool scopes, and treat logs like toxic waste. Shipping the demo is easy. Owning what happens next is the job. read on »

A retro-style orange and teal robot with a corrugated arms and legs dropping boxes into a hole

What Does CI/CD Actually Buy Us

Programming

Updated: March 29, 2026

SSH deploys and "git pull" aren't DevOps. They're a ritual that turns one person into a production bottleneck. This post breaks down CI as the boring gate that saves your weekends, CD as the path to repeatable, auditable releases, and why AI-written tests only matter if a pipeline enforces them. If deploys still feel scary, you're missing the seatbelt. read on »

A yellow cartoon robot with red circular ear pieces, large round eyes, and a rectangular mouth stands against a bright blue background, holding a white cloud shape in its articulated arms. The robot has spring-like legs, yellow rectangular feet, and a red antenna ball on top of its head.

Terraform and AI are a Match Made in BitHeaven

Programming

Updated: March 22, 2026

Terraform isn't hard. It's just painfully specific. Pair it with an LLM and you stop doing "lookup work" (argument names, nested blocks, list vs set) and start doing "review work." The model isn't your architect. It's your fast typist. You still run fmt/validate/plan, read the diff, and keep the blast radius small. read on »

A retro-style orange and teal robot with a grimacing expression stands in the center, surrounded by multiple colorful calendars (labeled with months like "TIMHSMTWTF", "MINKUEES", "JOENI", "EFME", "SHOWS", "HUIY", and "MAIBUMP") and various analog clocks in pink, yellow, orange, and other bright colors against a pale yellow background.

Why I Only Use UTC and Why You Should Too

Programming

Updated: June 29, 2026

UTC in the backend is the fastest way to delete a whole class of bugs-especially the twice-a-year chaos of DST. Store timestamps as aware UTC datetimes, keep timezone names (not offsets) as user preferences, and convert only at the last display step. Your cron jobs, logs, billing, and incident timelines will stay boring, sortable, and sane. read on »

A retro-style cartoon illustration featuring an orange and teal robot with claw hands and an antenna standing next to a turquoise and white rocket ship against a dark space background. The scene includes colorful geometric planets (one with rings, one wireframe), stars in pink and yellow, small circles, and a trail of multicolored triangular shapes beneath the rocket.

AWS LightSail: The Final Piece of the Replit to Production Puzzle

Programming

Updated: March 22, 2026

Friday deploys shouldn't depend on one person, one SSH session, and a lucky sequence of commands. This post shows a boring (good) deployment loop: push a timestamp tag, let GitHub Actions build and ship a Docker image, and run it on AWS Lightsail with health checks and easy rollback. Tags become the big red button-and production stops being a fragile ritual. read on »

An orange and blue cartoon robot with large eyes and a striped grin stands centered on a mint green background, holding books in its striped orange arms while six more colorful open books (in pink, blue, yellow, and green) float around it. Small geometric shapes (triangles and circles in orange, pink, blue, and yellow) are scattered throughout the composition.

Building Your First MCP Server

Programming

Updated: June 29, 2026

Stop writing five slightly-wrong S3 helpers and call it "platform." This post walks you through building a first MCP server that gives agents safe, audited, policy-based access to S3-backed unstructured data-without turning your buckets into a panic factory. We'll start with the boring (logs, auth, limits, predictable errors), sketch a tiny FastAPI endpoint, and cover the guardrails future-you will demand the moment compliance shows up. read on »

Retro 1970s toy robot with boxy square head, rectangular body, accordion tube arms with claw hands, square head with single antenna on top, two circular eyes, rectangular mouth grille supervising a bunch of similar robots rowing a ship.

Two Schools of AI-Native Engineering: What Peter Steinberger Gets Right (And Where We Disagree)

Programming

Updated: June 29, 2026

Explore two contrasting approaches to AI-native engineering and software development. Analysis of Peter Steinberger's perspective on building with AI tools, highlighting key agreements and fundamental differences in methodology. read on »

Retro 1970s toy robot with boxy square head, rectangular body, accordion tube arms with claw hands, square head with single antenna on top, two circular eyes, rectangular mouth grille merging git branches with both arms

Your Code Needs to Live Somewhere Other Than Your Laptop

Programming

Updated: June 29, 2026

GitHub as Your Bridge to Production You ever hear about the senior programmer who got hit by a bus? Metaphorically. He's fine. But the company wasn't. read on »

Retro 1970s toy robot with boxy square head, rectangular body, accordion tube arms with claw hands, square head with single antenna on top, two circular eyes, rectangular mouth grille stacking database cube blocks

Use AWS RDS for Your Replit Database: Don't Lose Production Data in Ephemeral Containers

Programming

Updated: March 22, 2026

Replit is fantastic for shipping fast. It's also a risky place to keep production data, because containers restart, move, and disappear. This post explains how to keep Replit for the app, move your database to AWS RDS, and set up the "boring" stuff-backups, restores, migrations, logging-so you can move fast without losing user data. read on »

A colorful cartoon robot with an orange rectangular head and body, purple ears, and yellow-and-orange striped arms is typing on a yellow and orange keyboard. The robot has large circular eyes, a blue antenna on top, and pink hands positioned on the keyboard keys.

Insanely Rapid AI-Assisted Development with Replit

Programming

Updated: March 22, 2026

Replit is my go-to antidote for the "environment setup ate my entire day" problem. Open a browser, write code, run it, and let the built-in AI handle the boring parts so you can ship something real. It's perfect for MVPs and internal tools, a little spicy for serious production, and a great way for startups to move fast before the market moves on without them. read on »

A cartoon robot with a red rectangular head, large white and black eyes, and a yellow body stands against a turquoise background. The robot has colorful striped arms (one orange, one blue) ending in a wrench and claw, wears orange and blue striped legs, and holds up a yellow warning sign with a black exclamation mark.

The Five Deadly Sins of Deployments

Programming

Updated: January 26, 2026

Deployments rarely kill startups. But sloppy deployments will quietly eat your runway while you argue about tools, chase ghost bugs, and "fix forward" through outages. In this post, I break down five common deployment sins-staging drift, leaked secrets, fake staging tests, backups you never restore, and rollbacks that don't exist-and how to avoid wasting weeks on problems you can prevent in a day. Also: remember the ants. Two words: fire ants. read on »

A coral-colored robot with large circular eyes sits at a blue table, holding a yellow pencil and marking checkboxes on a yellow grid paper, surrounded by floating icons including databases (yellow cylindrical stacks), documents, spreadsheets, and checkmarks against a mint green background.

SQLite Is Probably Enough

Programming

Updated: January 26, 2026

Most startups pick Postgres "for scale" the way people buy a tour bus for a commute: it feels responsible, right up until you're paying for problems you don't have. SQLite is boring, fast, and removes a whole category of database drama. The real catch is write contention (one writer at a time), but with WAL mode, short transactions, and sane access patterns, it'll carry you further than your architecture diagrams suggest. Use SQLite now, design for a clean swap later, and let production-not vibes-tell you when it's time to upgrade. read on »

Two robots, one blue on the left and one orange on the right, are holding a large yellow envelope with a black outline between them. The background is beige with scattered colorful geometric shapes (circles, triangles) and bell icons in pink, purple, lime green, and other colors floating around them.

Sending Push Notifications from Replit with Firebase

Programming

Updated: January 26, 2026

Background jobs finish on their own schedule, which means your users either spam refresh like it's 2004... or you tell them when the work is done. In this post, I'll show you how to send Firebase Cloud Messaging (FCM) push notifications from a Replit backend using either TypeScript (Node) or Python-plus the real-world gotchas around service account JSON, Replit Secrets, IAM permissions, and device tokens that expire purely out of spite. read on »

A coral-colored robot with visible joints and an antenna is chiseling binary code (sequences of 1s and 0s) onto a turquoise stone slab, set against a yellow background with geometric palm trees and rocks scattered around.

I'm renaming vibe-coding, sorry not sorry.

Programming

Updated: January 26, 2026

"Vibe-coding" is trying to sound like a new craft, but most of the time it's just a shortcut with better branding. I'm renaming it: vibe-coding is when you delegate both the code and the judgment to an AI, then ship it without understanding, testing, or ownership. Using AI to draft code is fine. Shipping unverified output because it "felt right" is how you end up with a very efficient failure-and a very long conversation with your CEO. read on »

Robot with question mark thought bubble standing between wrench tool and document pages

When to write an MCP and When to Write a Tool

Programming

Updated: January 15, 2026

If you're building with LLMs, you'll hit the "MCP server or tool?" fork in the road. Tools are fast, local, and easy to test. MCP servers are for shared capabilities, centralized auth/policy, and anything that touches "scary data." Pick wrong and nothing explodes-but your codebase will slowly turn into a museum of regrettable decisions. read on »

1 2 3 Next »