How I Build Things
Build stories, architecture decisions, and lessons from shipping real products.
Build stories, architecture decisions, and lessons from shipping real products.
Why API integration estimates miss by 3-5x: protocol cost comparison (REST, webhooks, GraphQL), full production scope (auth, retries, monitoring), and build-vs-buy math for CTOs.
Per-seat vs usage-based vs flat-rate. Real breakeven examples, the 3-tier anchor trick, annual vs monthly discount math, and when to switch models.
Bottom-up vs top-down, free tier design (no credit card), the 5-minute quickstart standard, docs as sales, and what makes a developer champion.
Sean Ellis score 40%+, retention curve flattening, organic referral rate, time-to-value, and the "would they pay 2x?" test.
47 items grouped by category: legal, analytics, error tracking, payment flow, infrastructure, email, marketing, support. 28-46 hours of work.
Failed payment recovery 40-50%, in-app health scores, day-90 QBR, pause vs cancel, win-back, expansion revenue. Real impact numbers per intervention.
Automate onboarding emails, usage alerts, renewal reminders. Keep human: first sign of struggle, expansion conversations, win-back calls.
Bottom-of-funnel before top-of-funnel. Comparison posts, cost posts, keyword difficulty under 30, 1-post-per-week minimum, the year-1 calendar.
Specific pain + why you + one ask. Subject line formula, real personalization, follow-up cadence, and reply rate benchmarks for B2B.
Content pillars, 3-2-1 weekly cadence, the comment routine, DM sequence after engagement, and the 6-month timeline to compounding inbound.
Exact formulas with worked examples. Logo vs revenue churn, net retention, LTV with gross margin, CAC payback, and the magic number.
The 6-variable decision matrix: cost, risk, time, control, customization, vendor dependency. 4 worked examples (Stripe, CRM, monitoring, ML algo).
8 areas DD teams check: architecture docs, test coverage, dependency audit, infrastructure cost, bus factor, deployment frequency, incidents, team.
Sprint overhead at under 5 engineers, WIP limits in Kanban, cycle time vs velocity, and where the dividing line actually sits.
Data map, DPAs with processors, cookie banner, right-to-erasure, breach notification 72h, DPO threshold. 30-50 hours of work.
Latency budgets (100ms UI + 2-5s AI), cost structure, prompt versioning, hallucination handling, and metered billing for AI features.
Decision logs not Slack threads, meeting tax calculation, overlap hours policy, async standup format, and work-visible-by-default.
OpenAPI spec before code, contract testing, URI versioning, OAuth vs API keys, rate limiting headers, webhook signing, cursor pagination.
Pricing per MTok, context windows, prompt caching savings, structured output, tool use reliability, batch API. Side-by-side comparison.
App Store cut (15% SBP, 30% standard), paywall conversion benchmarks, subscription LTV math, when ads make sense, and the side-by-side paywall pattern.
2h keyword research, 2h on-page for 3 pages, 2h one comparison post, 2h technical audit. Expected results timeline + what to do month 2-12.
Ask Claude to pull unpaid invoices, summarize expenses, and query contacts — directly from your terminal. Step-by-step setup for the official xero-mcp-server.
Xero's Custom Connection is blocked for Cyprus and most of Europe. The fix: use Web App OAuth instead. 5 minutes once you know which app type to pick.
Subagents as context firewalls, deferred tool schemas, on-demand skills, surgical reads, parallel fan-out, batch context resets — eight tactics for keeping multi-agent workflows lean.
The 4 required keys, UserDefaults CA92.1 (the most commonly missed entry), FileTimestamp, SystemBootTime, auditing third-party SDKs, and the full XML template.
Breadcrumbs, release health, performance tracing, dSYM upload automation, noise filtering, and the privacy manifest impact across a 27-app portfolio.
xcrun simctl, SCREENSHOT_MODE UserDefaults injection, screencapture -l window capture, and the batch pipeline for iPhone 16 Pro Max at 1320x2868 across 14 apps.
The 100-character keyword limit, locale contamination (German words in en-US wasting chars), avoiding competitor brands, and batch keyword validation at portfolio scale.
NSStatusItem setup, contentSize clipping traps, @Observable environment not crossing .sheet() window boundaries, and the Settings scene blank render problem.
Zero committed .xcodeproj files. How project.yml powers 14 apps across iOS, macOS, and visionOS with multi-platform targets, compile flags, and automated builds.
Transaction.updates at launch, the 6-state subscription machine, grace period handling, sandbox gotchas, and the finish() rule that prevents re-delivery loops.
Why we chose TelemetryDeck over Firebase for 14 apps. PrivacyInfo.xcprivacy requirements, GDPR compliance, and the full privacy stack.
How we fetch hourly spot prices from ENTSO-E, parse XML in Swift, build WidgetKit timelines, and cache data for 30+ European bidding zones.
The paid-analogue strategy: one-time purchase versions of subscription apps. How compile guards, XcodeGen, and one shared codebase make it work.
How a single Swift Package powers 14 iOS and macOS apps. Architecture decisions, shared components, and the trade-offs of extreme code reuse at scale.
How a single SwiftUI template became 8 exam prep apps across the UK, Germany, Italy, France, and Switzerland. The architecture, content pipeline, and localization decisions.
String Catalogs, runtime language switching without restart, the Bundle override pattern, and the enum localization gotcha that cost us a full day.
Data-backed system: who to comment on, what to write, and how comments convert to followers.
A full audit on my own site: every problem discovered and the 8 fixes that took less than a day to implement.
The non-technical GEO checklist. Each fix explained in plain English with the exact code to copy.
Ranking #1 on Google doesn't mean ChatGPT cites you. The signals AI systems actually use, and what's changed.
How I went from "I need to convert these MBOX files" to a working tool in half an hour using Claude Code. The full build story.
Four techniques that work without rebuilding anything: model right-sizing, prompt compression, semantic caching, and async batching.
Most teams underestimate this by 3–5×. Here's how to calculate it — and the three steps that eliminate it entirely.
Full code walkthrough: Slack modal → AI classifier → Jira creation → correct queue. ~200 lines of Python, €5/month to run.
AI ticket classification, automatic routing, and Slack alerts before breaches happen. A real project with a 50-person team.
The architecture behind a Slack bot that serves multiple workspaces. OAuth flow, token management, and the mistakes I made along the way.
How I cut AI classification API costs by 98% without losing accuracy. Prompt engineering, model selection, and caching strategies.
Complete GSC setup guide. Verification, sitemap submission, and what to monitor. From zero to tracking keyword rankings.
How I built 15 interactive lead magnets in 7 days. Calculator design patterns, email capture, GA4 tracking. Free tools beat gated PDFs.
Complete Cloudflare Pages deployment guide. From git push to live site in under a minute. Free SSL, global CDN, unlimited bandwidth.
How Rackham's question framework transformed my discovery calls. From pitching features to uncovering real business pain. 4.5/5.
How time-blocking and a shutdown ritual helped me ship more while billing the same hours. The one productivity book worth reading. 5/5.
Hormozi's Value Equation reframed how I package consulting services. Stopped selling hours, started selling outcomes. Overhyped but useful. 4/5.
15 minutes. No pitch. Just honest advice on whether I can help.
Book a 20-minute discovery call