// Topics / Engineering

Engineering

    Content Marking Is a Pipeline, Not a Policy The EU AI Act marking deadline for existing generative systems is 2 December. Provenance survives only what your pipeline keeps, so test it in CI. compliance ai architecture AI-Native Architecture Patterns 2026: Production Guide AI-native architecture patterns for production: an AI gateway, a retrieval layer, an evaluation pipeline, fallbacks, cost control, and clear ownership. architecture ai engineering Building Reliable AI Agents in Go How I build reliable AI agents in Go: bounded tools, schema validation at the boundary, idempotent state, and a supervisor loop with hard limits. agents reliability ai AI Technical Debt: Prompts, Evals, and Pipelines Nobody Owns AI debt hides in prompts nobody owns, evals nobody runs, and data pipelines nobody watches. By the time you notice, every change feels dangerous. technical-debt ai engineering AI and Team Productivity: Shared Infrastructure Wins Individual AI speedups are a distraction. The real gains come from treating AI as team infrastructure, embedded in docs, decisions, and onboarding. productivity ai teams AI Pair Programming: It's a Junior Dev, Not a Wizard Treat AI coding assistants like a fast, literal junior dev: tight constraints, critical review, and no expectations of architectural insight. ai engineering productivity AI Documentation Search: Versioned Retrieval and Citations AI docs systems often retrieve the wrong version and never admit uncertainty. Build one with hybrid search, version filters, citations, and freshness jobs. engineering ai llm AI Observability: Green Dashboards, Wrong Answers Uptime monitoring won't show an AI service returning confident garbage. The five signals I track instead: traces, quality, cost per outcome, safety, ops. observability ai production AI Code Review Is Mostly Noise Months of AI code review on real PRs: about 22% of comments get accepted. How I scope prompts, track hit rate, and keep it out of merge gates. engineering ai development AI for Technical Documentation: Drafts Yes, Ownership No AI is a decent drafting assistant for technical docs and a poor substitute for ownership. Draft with AI, review in the same PR, and ground doc search. engineering ai developer-experience AI-Assisted Code Migration: Lessons From 200K Lines of Go I used LLMs to help migrate a 200K-line Go codebase. The mechanical parts went fast. Everything else was still hard. ai technical-debt go Architecting AI-Native Applications (Without the Delusion) AI-native apps differ from a model bolted onto a CRUD app. The layers, confidence routing, fallbacks, and feedback loops I use, with Go code. architecture ai engineering Local LLMs for Development: Stop Paying to Test Prompts Local LLMs are good enough for development now. Iterate on prompts against Ollama, and save the API bill for evals and production traffic. llm engineering go Responsible AI Is Operational Risk Management Responsible AI fails as a committee and works as risk management: know the blast radius, test the failures you fear, disclose AI use, name an owner. ai security governance AI Technical Debt: Prompts, Models, and Evals Nobody Tracks AI features pile up debt in unversioned prompts, unpinned models, unvalidated data, and missing evals. Warning signs and how to pay it down. ai technical-debt engineering LLM Cost Optimization: The Basics Most Teams Skip A 12-person startup got a $14,000 OpenAI bill. The fix wasn't a FinOps tool: routing, caching, max_tokens, prompt trimming, per-feature cost tracking. ai cost llm Building Semantic Search in Go with OpenAI and pgvector Building semantic search with Go, OpenAI embeddings, and pgvector: structure-aware chunking, hybrid retrieval, an eval set, and the mistakes I made. ai llm go AI Code Review: What It Catches and What It Misses Three months of AI-assisted code review on Go services: it catches unchecked errors and leaks, misses context, and only helps once you filter the noise. ai engineering developer-experience AI Safety Is Just Security Engineering With Extra Steps For engineers shipping LLM features, AI safety is reliability, security, and accountability. A threat model and defenses from a security background. ai governance security LLM Integration Patterns That Survive Production LLM calls are slow, costly, and non-deterministic. Patterns for prompt versioning, structured output validation, RAG, tool guardrails, and fallbacks in Go. ai llm go AI in Production Is an Engineering Problem ChatGPT reset expectations overnight. Shipping LLM features that hold up takes timeouts, validation, caching, cost tracking, and fallbacks. ai production engineering GitHub Copilot After Six Months: Faster Drafts, More Review Six months with Copilot in real projects. What it actually helps with, where it quietly makes things worse, and why the productivity claims are overblown. ai developer-experience productivity Engineering Documentation: Owners, Doc Types, Docs as Code Engineering docs get ignored because nobody can find them, trust them, or tell what they are for. Owners, separate doc types, and docs as code fix it. engineering developer-experience teams TypeScript Best Practices From a Go Developer TypeScript is the best thing to happen to JavaScript, and that bar was low. Strict mode, boundary validation, and simple generics for large codebases. engineering architecture go Log4j CVE-2021-44228 Response: What to Do Right Now Log4Shell (CVE-2021-44228) response playbook: inventory every Java dependency, patch or mitigate exposed services, chase vendors, and keep communicating. security engineering incident-management Hybrid Work for Engineering Teams Is Harder Than Full Remote Hybrid engineering teams drift into a two-tier system unless you run them remote-first: written decisions, async defaults, outcome-based reviews. remote-work teams leadership Rust vs Go for Cloud Services: A Go Developer's View A Go developer on Rust in early 2021: where it wins (tail latency, memory, compile-time safety), where Go still wins, and when a rewrite pays off. engineering go cloud eBPF for Observability: Interesting, but I'm Not Sold Yet eBPF gives kernel-level observability without kernel modules. Kernel version gaps, patchy BTF support, and scarce expertise make it hard to run today. observability engineering performance Distributed Engineering Teams: What Works Six Months In Remote-first since before COVID, I watched everyone else scramble. What works for distributed engineering teams six months in, and what still doesn't. remote-work teams engineering Developer Productivity Metrics: Why I Only Trust DORA Lines of code, commit counts, and velocity charts fail as developer productivity metrics. The four DORA metrics, tracked per team, are worth your time. productivity metrics engineering Remote Engineering Interviews: What I Changed Over Zoom Whiteboard coding over Zoom is broken. What I do instead when hiring engineers remotely: take-home plus code review, tested tools, 45-minute sessions. hiring remote-work engineering State of Linux Usability 2020: Distros vs Windows and macOS A non-technical user ran 16 everyday tasks on the top 20 Linux distros plus Windows and macOS. Pop!_OS, Mint, and Ubuntu beat both commercial systems. engineering development reflection Async-First Remote Work: Stop Recreating the Office on Zoom Most teams that went remote just moved the office onto video calls. Async communication is the real unlock. These are the rules I work by. remote-work architecture leadership Business Continuity for Engineering Teams: Beyond the Binder Most BCP documents are shelf-ware. What keeps engineering teams running in a crisis: no human single points of failure, real runbooks, and drills. reliability engineering remote-work Remote Overnight: The First Two Weeks for Engineering Teams COVID sent engineering teams home overnight. What matters in the first two weeks: working access, decent hardware, three enforced norms, and new hires. remote-work engineering teams Engineering Onboarding: First PR on Day One Most engineering onboarding is a polite abandonment ritual. What I've learned across startups about getting new engineers shipping fast. hiring engineering teams Data Mesh: Fix Data Ownership Before Architecture Most data problems are ownership problems. Data mesh gets that right. But adopting it as an architecture diagram exercise misses the point entirely. data architecture engineering Monolith to Microservices: When to Split and How Most teams shouldn't migrate to microservices. How to tell if you should, and how to split with the strangler pattern without wrecking delivery. microservices architecture go Testing in Production: Why Staging Misses the Real Bugs Staging misses the bugs that matter. How I test in production safely: feature flags, 1% rollouts, canaries, shadow traffic, and synthetic checks. testing production ci-cd SLOs and Error Budgets That Change How Teams Ship Most SLOs are dashboards nobody acts on. Pick indicators that reflect real users, set targets from data, and make error budgets change how your team ships. reliability observability engineering Designing for Failure: Timeouts, Circuit Breakers, Failover Timeouts, blast-radius isolation, fallbacks, circuit breakers, and tested failover: the rules I follow so one slow dependency can't take down everything. reliability architecture distributed-systems Internal Developer Platforms: Treat Them as Products Most internal developer platforms fail because nobody treated them as a product. Lessons from building, and scrapping, platform tooling at three startups. platform-engineering devops developer-experience API Design Lessons: Every Field Is a Contract HTTP API design lessons from fintech and mobility platforms: stable resource shapes, error formats, versioning, pagination, timestamps, and rate limits. api engineering backend Incremental TypeScript Migration Without Losing Your Mind How to introduce TypeScript to a real JavaScript codebase incrementally, without halting product work or annoying your entire team. engineering databases development How We Track and Prioritize Tech Debt at a Fintech Startup A framework for cataloging technical debt, scoring it by impact and risk, and scheduling paydown without stalling feature delivery. technical-debt engineering leadership Scaling Engineering Teams: What Breaks at 10, 25, and 50 How engineering teams change as they grow: what breaks at each size, explicit ownership, written decisions, and process that follows pain. engineering leadership teams Code Reviews: Fixing Rubber Stamps and Nitpick Wars Most code reviews are theater. How we fixed ours at a fintech startup: review for risk, label comments, small PRs with a template, and same-day turnaround. engineering teams Making Go Services Fast: Profiling, Allocations, Timeouts Go performance tuning from production: pprof profiling, cutting allocations, bounded concurrency, HTTP timeouts, and database pool settings. go performance backend Technical Interviews: Work Samples Beat Whiteboard Puzzles Most technical interviews test the wrong things. What hiring engineers at a fintech startup taught me: work samples, pairing, deep dives, and rubrics. hiring engineering leadership Rust vs Go for Backend Services: A Go Developer's First Look A Go developer tries Rust for backend work in early 2018: what impressed me, where it still hurts, and the one service where it might fit. engineering go backend ML in Production for Backend Engineers: It's Mostly Plumbing What backend engineers need to know about ML in production: training-serving skew, model serving, deploys, and drift monitoring. ai backend engineering Building a Platform Team: Lessons from Our First Year Standing up a small platform team at a fintech startup: tight scope, infrastructure run as a product, paved roads over mandates, and what I'd change. platform-engineering teams engineering Technical Debt Triage: A Simple Prioritization Framework Score tech debt by impact times change frequency to decide what to fix now, schedule, or accept. How it cut our 47-item list to six at a fintech startup. technical-debt engineering strategy Code Review Quality: Stop Counting Reviews, Start Reading Most code reviews are rubber stamps. What made ours useful at a fintech startup: read the change, skip style nits, label comments, small PRs, automation. engineering testing teams Engineering Manager vs Tech Lead: How the Roles Differ Engineering manager vs tech lead: what each role does day to day, how we split them at a fintech startup, and how to test which track fits you. hiring leadership engineering Security Champions: Startup Security Without a Security Team No budget for a security team? Turn one motivated engineer per team into a security champion. How we run it at an eight-engineer fintech startup. security startups engineering Technical Leadership Without Authority: What Works A senior title meant little at a small fintech startup. How I earned technical influence instead: one-page proposals, leading with the problem, and allies. leadership engineering hiring 2016 in Review: The Year I Stopped Fighting Infrastructure My 2016 in review: Docker went mainstream, Kubernetes pulled ahead, Go earned its place, serverless lagged, and what a mobility startup taught me. year-in-review trends engineering Building a Startup Engineering Team: Lessons from 2016 What growing an engineering team at a mobility startup in 2016 taught me about hiring, trust, and the habits that actually matter. teams engineering leadership Why We Chose Go for Our Backend Services How Go replaced Python and Node as our default backend language at a mobility startup, and the tradeoffs we accepted. go backend engineering Scaling PostgreSQL: Why Scaling Up Beats Sharding How we scaled PostgreSQL for a high-volume ingestion pipeline with PgBouncer, streaming replicas, and partitioning, and why sharding comes last. databases architecture engineering Building a Security-First Engineering Culture Security culture is habits leadership enforces: no secrets in code, a security question on every PR, least privilege, patch deadlines, and champions. security engineering teams Why Every Developer Should Understand Networking Three production bugs (DNS caching, TIME_WAIT port exhaustion, shallow health checks) that basic networking knowledge prevents, and where to start. infrastructure engineering Zero-Downtime PostgreSQL Migrations: Expand and Contract How to change PostgreSQL schemas without maintenance windows: expand and contract, batched backfills, NOT VALID constraints, and concurrent indexes. databases devops engineering Hiring Engineers When You Can't Compete on Salary You can't outpay Big Tech. How I hired strong engineers at a mobility startup in 2016 by selling impact, speed, real autonomy, and honesty about pay. hiring startups engineering Building Resilient Systems: Lessons from Production Failures Production incidents show where architecture bends and breaks. Lessons on designing for failure, limiting blast radius, and making recovery routine. reliability architecture engineering Cloud vs Colocation for Startups: The Real Cost in 2016 Colocated servers look cheaper than EC2 until you add rack space, gear, and the engineer to run them. For a 2016 startup the cloud wins by a wide margin. cloud infrastructure startups Continuous Deployment Without the Chaos Continuous deployment is a discipline problem. How we ship a mobility startup's backend many times a day: trusted tests, small changes, fast rollback. ci-cd devops engineering Security Incident Response Playbook for Startups An incident response playbook for small teams, learned the hard way: define incidents, name owners, contain carefully, and communicate clearly. security incident-management startups REST API Design Principles That Stand the Test of Time Lessons from building a high-volume data API: the REST conventions that actually matter, the ones that don't, and why consistency beats cleverness. api engineering architecture Postgres vs MySQL in 2016: A Practical Comparison A grounded look at PostgreSQL and MySQL as of April 2016, focusing on integrity, query power, and operational tradeoffs rather than benchmark hype. databases architecture engineering Building a DevOps Culture from Scratch Hiring a DevOps engineer won't end the dev vs ops fight. Put developers on the pager, pilot with one team, and fix incentives before tools. devops teams engineering The True Cost of Technical Debt, and How to Measure It Tech debt gets ignored until you price it. Track cycle-time drift, incident attribution, and engineer-days lost, then pitch paydown as a business tradeoff. technical-debt engineering leadership Microservices vs Monolith: Why Small Teams Should Wait Most teams adopt microservices too early and pay for complexity they don't need. A modular monolith ships faster and keeps the option to split later. architecture microservices startups