<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Anshul Bisen</title><description>Engineering leader, builder, and tinkerer.</description><link>https://anshulbisen.com/</link><item><title>The portfolio is the proof. Ship your work or it did not happen.</title><link>https://anshulbisen.com/blog/the-portfolio-is-the-proof-ship-your-work/</link><guid isPermaLink="true">https://anshulbisen.com/blog/the-portfolio-is-the-proof-ship-your-work/</guid><description>Not resumes. Not endorsements. Not interview performance. The code you ship, the systems you build, the writing you publish. Ship it or it did not happen.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>What I got wrong in my first year as Head of Engineering and what I would do differently</title><link>https://anshulbisen.com/blog/what-i-got-wrong-first-year-head-of-engineering/</link><guid isPermaLink="true">https://anshulbisen.com/blog/what-i-got-wrong-first-year-head-of-engineering/</guid><description>Over-hiring before culture. Saying yes to everything. Underinvesting in developer experience. Staying hands-on too long. The common thread was not trusting the team.</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Cloudflare container platform changes what I would self-host</title><link>https://anshulbisen.com/blog/cloudflare-container-platform-changes-self-hosting/</link><guid isPermaLink="true">https://anshulbisen.com/blog/cloudflare-container-platform-changes-self-hosting/</guid><description>Edge containers win for stateless batch jobs and lightweight APIs. Self-hosting still wins for stateful services and observability. The line is shifting faster than expected.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Why every fintech startup eventually builds its own ledger</title><link>https://anshulbisen.com/blog/every-fintech-startup-eventually-builds-own-ledger/</link><guid isPermaLink="true">https://anshulbisen.com/blog/every-fintech-startup-eventually-builds-own-ledger/</guid><description>FinanceOps started with a third-party ledger. Within 18 months we built our own. Ledger semantics are too coupled to business rules for abstraction.</description><pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The real job of a Head of Engineering</title><link>https://anshulbisen.com/blog/the-real-job-of-a-head-of-engineering/</link><guid isPermaLink="true">https://anshulbisen.com/blog/the-real-job-of-a-head-of-engineering/</guid><description>Make throughput predictable and quality sustainable. Not hero-shipping. Not writing the most code. Build a system that delivers without depending on any single person.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Architecture debt is usually a decision-quality problem first</title><link>https://anshulbisen.com/blog/architecture-debt-is-usually-a-decision-quality-problem-first/</link><guid isPermaLink="true">https://anshulbisen.com/blog/architecture-debt-is-usually-a-decision-quality-problem-first/</guid><description>The worst architecture debt comes from low-quality decisions made with plenty of time. Improving decision quality reduces debt faster than refactoring sprints.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Engineering teams do not need more process. They need better defaults.</title><link>https://anshulbisen.com/blog/engineering-teams-do-not-need-more-process-they-need-better-defaults/</link><guid isPermaLink="true">https://anshulbisen.com/blog/engineering-teams-do-not-need-more-process-they-need-better-defaults/</guid><description>Every incident triggers a new process proposal. The real fix is better CI pipelines, better templates, and better linters. Better defaults scale. More process does not.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How I evaluate build-versus-buy decisions at a 50-person startup</title><link>https://anshulbisen.com/blog/evaluate-build-versus-buy-50-person-startup/</link><guid isPermaLink="true">https://anshulbisen.com/blog/evaluate-build-versus-buy-50-person-startup/</guid><description>Build-versus-buy is not about cost. It is about where your team&apos;s attention goes. Build what differentiates. Buy the commodity.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>What AI changes about engineering leadership</title><link>https://anshulbisen.com/blog/what-ai-changes-about-engineering-leadership/</link><guid isPermaLink="true">https://anshulbisen.com/blog/what-ai-changes-about-engineering-leadership/</guid><description>Code review matters more than code writing. Architectural taste matters more than implementation speed. Evaluating AI-generated code is the new critical skill.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Startup speed and enterprise readiness are not opposites</title><link>https://anshulbisen.com/blog/startup-speed-and-enterprise-readiness-are-not-opposites/</link><guid isPermaLink="true">https://anshulbisen.com/blog/startup-speed-and-enterprise-readiness-are-not-opposites/</guid><description>Audit logging, RBAC, and proper error handling actually accelerate delivery by eliminating rework. Enterprise readiness is a speed multiplier, not a speed tax.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Opus 4.6 has a million-token context window and I am still not sure what to do with it</title><link>https://anshulbisen.com/blog/opus-4-6-million-token-context-not-sure-what-to-do/</link><guid isPermaLink="true">https://anshulbisen.com/blog/opus-4-6-million-token-context-not-sure-what-to-do/</guid><description>Feeding entire codebases into a single prompt for architecture review produced mixed results. The practical sweet spots are narrower than the capability suggests.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Drizzle ORM crossed 32K stars and I still think ORM choice barely matters</title><link>https://anshulbisen.com/blog/drizzle-32k-stars-orm-choice-barely-matters/</link><guid isPermaLink="true">https://anshulbisen.com/blog/drizzle-32k-stars-orm-choice-barely-matters/</guid><description>Query patterns, migration discipline, and connection pooling matter far more than which ORM you choose. The ORM was never the bottleneck.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Why I run my portfolio site on the same stack I use at work</title><link>https://anshulbisen.com/blog/portfolio-site-same-stack-as-work/</link><guid isPermaLink="true">https://anshulbisen.com/blog/portfolio-site-same-stack-as-work/</guid><description>Next.js, Payload CMS, PostgreSQL, Cloudflare. Not laziness. Every problem solved on the portfolio feeds back into production expertise.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Cross-functional alignment is not a meeting problem. It is an incentive problem.</title><link>https://anshulbisen.com/blog/cross-functional-alignment-is-an-incentive-problem/</link><guid isPermaLink="true">https://anshulbisen.com/blog/cross-functional-alignment-is-an-incentive-problem/</guid><description>Restructuring OKRs so engineering, product, and sales shared a single top-line metric per quarter fixed what years of alignment meetings could not.</description><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate></item><item><title>The homelab Loki stack that monitors my production alerts</title><link>https://anshulbisen.com/blog/homelab-loki-stack-monitors-production-alerts/</link><guid isPermaLink="true">https://anshulbisen.com/blog/homelab-loki-stack-monitors-production-alerts/</guid><description>A Grafana/Loki/Tempo stack on homelab k3s aggregates logs from personal projects and FinanceOps production alerting. A personal observability stack makes you a better leader.</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title>The hardest conversation I had in 2025 was firing a senior engineer I had hired</title><link>https://anshulbisen.com/blog/hardest-conversation-2025-firing-senior-engineer/</link><guid isPermaLink="true">https://anshulbisen.com/blog/hardest-conversation-2025-firing-senior-engineer/</guid><description>He interviewed brilliantly but could not operate in a startup. Performance management is the most important and least taught leadership skill.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Building a fintech reconciliation engine that handles ten million transactions a day</title><link>https://anshulbisen.com/blog/fintech-reconciliation-engine-ten-million-transactions/</link><guid isPermaLink="true">https://anshulbisen.com/blog/fintech-reconciliation-engine-ten-million-transactions/</guid><description>PostgreSQL partitioned tables, Node.js worker pools, idempotent batch processing, and a custom diffing algorithm. Sub-minute reconciliation at ten million daily transactions.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>How I budget engineering time and why I give 20 percent to platform work non-negotiably</title><link>https://anshulbisen.com/blog/budget-engineering-time-20-percent-platform/</link><guid isPermaLink="true">https://anshulbisen.com/blog/budget-engineering-time-20-percent-platform/</guid><description>Twenty percent of every sprint goes to platform work. The compounding cost of deferring platform investment is measurable in incident frequency and developer velocity.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>S3 Vectors at re:Invent made me reconsider our entire RAG architecture</title><link>https://anshulbisen.com/blog/s3-vectors-reinvent-reconsider-rag-architecture/</link><guid isPermaLink="true">https://anshulbisen.com/blog/s3-vectors-reinvent-reconsider-rag-architecture/</guid><description>2 billion vectors per index at 90% cost reduction. Our pgvector pipeline still makes sense, but the calculus for startups without millisecond latency needs is changing.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Opus 4.5 is the first AI model I trust to refactor production code unsupervised</title><link>https://anshulbisen.com/blog/opus-4-5-first-ai-model-trust-refactor-production/</link><guid isPermaLink="true">https://anshulbisen.com/blog/opus-4-5-first-ai-model-trust-refactor-production/</guid><description>Claude Opus 4.5 refactored a 500-line TypeScript module, maintained all tests, and passed review without modification. The bottleneck has shifted from writing to reviewing.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate></item><item><title>When your SLOs and your sales team disagree, the SLOs lose</title><link>https://anshulbisen.com/blog/when-slos-and-sales-team-disagree/</link><guid isPermaLink="true">https://anshulbisen.com/blog/when-slos-and-sales-team-disagree/</guid><description>An enterprise prospect required 99.99% uptime. Our SLOs were 99.9%. Engineering leaders who refuse to engage with commercial reality get bypassed.</description><pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Fifteen years of writing code and I still mass-delete my first draft</title><link>https://anshulbisen.com/blog/fifteen-years-still-mass-delete-first-draft/</link><guid isPermaLink="true">https://anshulbisen.com/blog/fifteen-years-still-mass-delete-first-draft/</guid><description>The first draft reveals the problem&apos;s shape. The second draft solves it. Engineers who try to write perfect code on the first pass are optimizing for the wrong thing.</description><pubDate>Mon, 17 Nov 2025 00:00:00 GMT</pubDate></item><item><title>The Prisma-to-Drizzle migration we almost did and why we stayed on Prisma</title><link>https://anshulbisen.com/blog/prisma-to-drizzle-migration-we-almost-did/</link><guid isPermaLink="true">https://anshulbisen.com/blog/prisma-to-drizzle-migration-we-almost-did/</guid><description>We built a prototype, benchmarked it, and stayed on Prisma because the migration cost exceeded the performance gain for our actual query patterns.</description><pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Why your engineering strategy document is probably a wish list, not a strategy</title><link>https://anshulbisen.com/blog/engineering-strategy-document-is-probably-a-wish-list/</link><guid isPermaLink="true">https://anshulbisen.com/blog/engineering-strategy-document-is-probably-a-wish-list/</guid><description>A strategy is a diagnosis, a guiding policy, and coherent actions. Everything else is a roadmap pretending to be a strategy.</description><pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate></item><item><title>ArgoCD taught me that GitOps is about audit trails, not about git</title><link>https://anshulbisen.com/blog/argocd-gitops-is-about-audit-trails/</link><guid isPermaLink="true">https://anshulbisen.com/blog/argocd-gitops-is-about-audit-trails/</guid><description>After running ArgoCD in homelab and production for over a year, the real value is not deployment automation. It is the complete, immutable audit trail.</description><pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate></item><item><title>I mass-deleted our internal wiki and started over. Twice.</title><link>https://anshulbisen.com/blog/mass-deleted-internal-wiki-started-over-twice/</link><guid isPermaLink="true">https://anshulbisen.com/blog/mass-deleted-internal-wiki-started-over-twice/</guid><description>The wiki grew to 400 pages that nobody read. The fix was not better organization. It was aggressive pruning and a decay policy.</description><pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Managing up to a non-technical founder without losing your integrity</title><link>https://anshulbisen.com/blog/managing-up-to-non-technical-founder/</link><guid isPermaLink="true">https://anshulbisen.com/blog/managing-up-to-non-technical-founder/</guid><description>Business-outcome framing for every technical decision. Risk quantified in dollars, not story points. Never say &quot;technical debt&quot; without a customer impact number.</description><pubDate>Mon, 13 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Upgrading to Next.js 16 inside a Payload CMS monorepo was harder than expected</title><link>https://anshulbisen.com/blog/nextjs-16-payload-cms-monorepo-upgrade/</link><guid isPermaLink="true">https://anshulbisen.com/blog/nextjs-16-payload-cms-monorepo-upgrade/</guid><description>Cache Components and React Compiler 1.0 are compelling, but upgrading inside a CMS-coupled codebase surfaced dependency conflicts that deserved their own sprint.</description><pubDate>Mon, 06 Oct 2025 00:00:00 GMT</pubDate></item><item><title>What payment reconciliation systems teach you about distributed consistency</title><link>https://anshulbisen.com/blog/payment-reconciliation-teaches-distributed-consistency/</link><guid isPermaLink="true">https://anshulbisen.com/blog/payment-reconciliation-teaches-distributed-consistency/</guid><description>Eventual consistency in payment reconciliation is a business requirement, not a technical compromise. Idempotency keys and reconciliation windows replaced two-phase commits.</description><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate></item><item><title>The one-on-one framework I use after fifteen years of getting one-on-ones wrong</title><link>https://anshulbisen.com/blog/one-on-one-framework-after-fifteen-years/</link><guid isPermaLink="true">https://anshulbisen.com/blog/one-on-one-framework-after-fifteen-years/</guid><description>Three fixed sections: blockers with deadlines, career trajectory, and one question the report chooses. Structure creates safety without drift.</description><pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Sonnet 4.5 replaced our first-pass code review and nobody complained</title><link>https://anshulbisen.com/blog/sonnet-4-5-replaced-first-pass-code-review/</link><guid isPermaLink="true">https://anshulbisen.com/blog/sonnet-4-5-replaced-first-pass-code-review/</guid><description>AI handles style violations and missing error handling. Human reviewers focus on architecture and business logic. Review turnaround dropped from 24 hours to 4.</description><pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Running Kafka at startup scale is a decision you will regret exactly once</title><link>https://anshulbisen.com/blog/running-kafka-at-startup-scale-regret-exactly-once/</link><guid isPermaLink="true">https://anshulbisen.com/blog/running-kafka-at-startup-scale-regret-exactly-once/</guid><description>Kafka was justified for our payment event streaming. The operational burden in year two consumed a disproportionate share of platform bandwidth.</description><pubDate>Wed, 03 Sep 2025 00:00:00 GMT</pubDate></item><item><title>How I use Grafana dashboards to run engineering meetings instead of slide decks</title><link>https://anshulbisen.com/blog/grafana-dashboards-instead-of-slide-decks/</link><guid isPermaLink="true">https://anshulbisen.com/blog/grafana-dashboards-instead-of-slide-decks/</guid><description>Replacing weekly status slides with live Grafana dashboards eliminated performative reporting and forced teams to instrument what matters.</description><pubDate>Mon, 25 Aug 2025 00:00:00 GMT</pubDate></item><item><title>The founder said ship in two weeks. I said no. Here is what happened.</title><link>https://anshulbisen.com/blog/founder-said-ship-in-two-weeks-i-said-no/</link><guid isPermaLink="true">https://anshulbisen.com/blog/founder-said-ship-in-two-weeks-i-said-no/</guid><description>A major customer deal hinged on a feature in two weeks. I pushed for three. The extra week saved us on day four.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate></item><item><title>GPT-5 shipped and my team asked if we still need junior engineers</title><link>https://anshulbisen.com/blog/gpt-5-shipped-do-we-still-need-junior-engineers/</link><guid isPermaLink="true">https://anshulbisen.com/blog/gpt-5-shipped-do-we-still-need-junior-engineers/</guid><description>The answer is yes, but for reasons that forced us to articulate what junior engineers actually contribute beyond lines of code.</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Why I stopped asking candidates to whiteboard and started asking them to review pull requests</title><link>https://anshulbisen.com/blog/stopped-whiteboard-interviews-started-pr-reviews/</link><guid isPermaLink="true">https://anshulbisen.com/blog/stopped-whiteboard-interviews-started-pr-reviews/</guid><description>Whiteboard coding measures performance under artificial stress. PR reviews measure what the job actually requires.</description><pubDate>Mon, 04 Aug 2025 00:00:00 GMT</pubDate></item><item><title>My homelab staging cluster caught a production bug before CI did</title><link>https://anshulbisen.com/blog/homelab-staging-caught-production-bug-before-ci/</link><guid isPermaLink="true">https://anshulbisen.com/blog/homelab-staging-caught-production-bug-before-ci/</guid><description>A memory leak only manifested under sustained 48-hour load. CI tests pass in seconds. The homelab k3s cluster caught what automated tests could not.</description><pubDate>Mon, 28 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Fintech compliance is not a checkbox. It is an architecture constraint.</title><link>https://anshulbisen.com/blog/fintech-compliance-is-an-architecture-constraint/</link><guid isPermaLink="true">https://anshulbisen.com/blog/fintech-compliance-is-an-architecture-constraint/</guid><description>Compliance that lives in code survives team turnover. Compliance that lives in spreadsheets does not.</description><pubDate>Mon, 21 Jul 2025 00:00:00 GMT</pubDate></item><item><title>The Kubernetes upgrade that taught me release engineering is a leadership problem</title><link>https://anshulbisen.com/blog/kubernetes-upgrade-taught-me-release-engineering-is-leadership/</link><guid isPermaLink="true">https://anshulbisen.com/blog/kubernetes-upgrade-taught-me-release-engineering-is-leadership/</guid><description>A Kubernetes 1.34 upgrade stalled for six weeks not because of technical complexity, but because nobody owned the migration sequence.</description><pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Two years in and I finally stopped rewriting the org chart every quarter</title><link>https://anshulbisen.com/blog/stopped-rewriting-the-org-chart-every-quarter/</link><guid isPermaLink="true">https://anshulbisen.com/blog/stopped-rewriting-the-org-chart-every-quarter/</guid><description>Constant restructuring is a symptom of unclear ownership, not wrong structure. Org charts stabilize when decision rights are explicit.</description><pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Eighteen months in: the five things I would tell myself on day one as Head of Engineering at a startup</title><link>https://anshulbisen.com/blog/eighteen-months-five-things-day-one-head-of-engineering/</link><guid isPermaLink="true">https://anshulbisen.com/blog/eighteen-months-five-things-day-one-head-of-engineering/</guid><description>Delegate before you are ready. Learn compliance before it learns you. Your cofounder&apos;s priorities are not wrong, just different. Tech debt compounds faster than you think. And the hardest one: your job is not to write the best code.</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes 1.33 and the features that finally made me stop questioning container orchestration for small teams</title><link>https://anshulbisen.com/blog/kubernetes-1-33-stop-questioning-containers-small-teams/</link><guid isPermaLink="true">https://anshulbisen.com/blog/kubernetes-1-33-stop-questioning-containers-small-teams/</guid><description>Every six months someone says Kubernetes is overkill for a small team. Kubernetes 1.33 continued a trend of sane defaults and reduced overhead that invalidates that argument for teams deploying more than two services.</description><pubDate>Mon, 23 Jun 2025 00:00:00 GMT</pubDate></item><item><title>The on-call rotation that was just me, and why I finally admitted that was not sustainable</title><link>https://anshulbisen.com/blog/on-call-rotation-just-me-not-sustainable/</link><guid isPermaLink="true">https://anshulbisen.com/blog/on-call-rotation-just-me-not-sustainable/</guid><description>For 14 months I was the only person who got paged at 3 AM. The real reason was not team size. It was that I did not trust anyone else to handle production incidents.</description><pubDate>Thu, 19 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Building Cloudflare Tunnel access to our homelab staging so the team stops saying &quot;works on my machine&quot;</title><link>https://anshulbisen.com/blog/cloudflare-tunnel-homelab-staging-team-access/</link><guid isPermaLink="true">https://anshulbisen.com/blog/cloudflare-tunnel-homelab-staging-team-access/</guid><description>Our k3s staging cluster sat behind my home network. Cloudflare Tunnels gave the whole team stable HTTPS access without exposing my home IP or managing VPN credentials.</description><pubDate>Mon, 16 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Cross-functional friction is a feature, not a bug, if you build the right feedback loops</title><link>https://anshulbisen.com/blog/cross-functional-friction-feature-not-bug/</link><guid isPermaLink="true">https://anshulbisen.com/blog/cross-functional-friction-feature-not-bug/</guid><description>For months I treated pushback from product, sales, and compliance as obstacles to velocity. The reframe: friction between teams is signal about misaligned priorities, and the right response is better feedback loops.</description><pubDate>Mon, 09 Jun 2025 00:00:00 GMT</pubDate></item><item><title>TypeScript strict mode migration: the six-month project I wish I had done in month one</title><link>https://anshulbisen.com/blog/typescript-strict-mode-migration-wish-month-one/</link><guid isPermaLink="true">https://anshulbisen.com/blog/typescript-strict-mode-migration-wish-month-one/</guid><description>We started with TypeScript loose mode because &quot;we will tighten it later.&quot; Eighteen months and 40,000 lines later, migrating to strict surfaced 847 errors, including three that affected financial calculations.</description><pubDate>Mon, 02 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Claude Opus 4 and Sonnet 4: the week AI coding tools stopped being novelties and became infrastructure</title><link>https://anshulbisen.com/blog/claude-opus-4-sonnet-4-ai-coding-infrastructure/</link><guid isPermaLink="true">https://anshulbisen.com/blog/claude-opus-4-sonnet-4-ai-coding-infrastructure/</guid><description>When Claude Opus 4 hit 72.5% on SWE-bench and solved a TypeScript generics issue that had stumped our team, the conversation shifted from &quot;should we use AI&quot; to &quot;how do we integrate it.&quot;</description><pubDate>Mon, 26 May 2025 00:00:00 GMT</pubDate></item><item><title>Founder dynamics: when your technical opinion conflicts with the CEO&apos;s investor promise</title><link>https://anshulbisen.com/blog/founder-dynamics-technical-opinion-vs-investor-promise/</link><guid isPermaLink="true">https://anshulbisen.com/blog/founder-dynamics-technical-opinion-vs-investor-promise/</guid><description>The CEO told investors we would launch a new vertical by Q3. I told the CEO we needed Q3 for infrastructure debt. We were both right, which made it worse.</description><pubDate>Mon, 12 May 2025 00:00:00 GMT</pubDate></item><item><title>Grafana, Loki, and Tempo: building an observability stack that a four-person team actually uses</title><link>https://anshulbisen.com/blog/grafana-loki-tempo-observability-four-person-team/</link><guid isPermaLink="true">https://anshulbisen.com/blog/grafana-loki-tempo-observability-four-person-team/</guid><description>Most observability guides assume a platform team. We do not have one. The hard part was not installation but building dashboards engineers actually check daily.</description><pubDate>Mon, 05 May 2025 00:00:00 GMT</pubDate></item><item><title>The compliance audit that exposed every shortcut we took in our first year</title><link>https://anshulbisen.com/blog/compliance-audit-exposed-every-shortcut-first-year/</link><guid isPermaLink="true">https://anshulbisen.com/blog/compliance-audit-exposed-every-shortcut-first-year/</guid><description>Our first formal compliance audit surfaced 23 findings. Hardcoded keys, PII in logs, missing audit trails. None malicious, all &quot;we will fix that later.&quot; The remediation sprint that followed.</description><pubDate>Mon, 28 Apr 2025 00:00:00 GMT</pubDate></item><item><title>OpenAI o3 and o4-mini: reasoning models are getting good enough to replace junior code review</title><link>https://anshulbisen.com/blog/o3-o4-mini-reasoning-models-replace-junior-code-review/</link><guid isPermaLink="true">https://anshulbisen.com/blog/o3-o4-mini-reasoning-models-replace-junior-code-review/</guid><description>o3 drops 20% fewer major errors than o1, and o4-mini makes reasoning affordable for CI pipelines. A financial calculation rounding error caught by AI review that three humans missed.</description><pubDate>Mon, 21 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Why I stopped mass-applying &quot;best practices&quot; and started asking &quot;best for what&quot;</title><link>https://anshulbisen.com/blog/stopped-best-practices-started-best-for-what/</link><guid isPermaLink="true">https://anshulbisen.com/blog/stopped-best-practices-started-best-for-what/</guid><description>Microservices, event sourcing, CQRS, DDD. I had been cargo-culting patterns from companies 100x our size. The question &quot;who benefits from this complexity&quot; changed my architectural decisions.</description><pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate></item><item><title>ArgoCD and GitOps for a team of four: overkill or exactly right</title><link>https://anshulbisen.com/blog/argocd-gitops-team-of-four-overkill-or-right/</link><guid isPermaLink="true">https://anshulbisen.com/blog/argocd-gitops-team-of-four-overkill-or-right/</guid><description>After three months of ArgoCD managing our k3s and production clusters, the deployment confidence, audit trail, and rollback speed paid for the setup cost within the first incident.</description><pubDate>Mon, 07 Apr 2025 00:00:00 GMT</pubDate></item><item><title>The quarterly planning meeting that taught me product managers and engineers solve different problems</title><link>https://anshulbisen.com/blog/quarterly-planning-product-engineers-different-problems/</link><guid isPermaLink="true">https://anshulbisen.com/blog/quarterly-planning-product-engineers-different-problems/</guid><description>I walked into Q2 planning with technical improvements. Product walked in with customer churn data. We talked past each other for two hours before building a framework to bridge both worldviews.</description><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Our Kafka consumer lag crisis and why I stopped trusting &quot;it works on my machine&quot; for event-driven systems</title><link>https://anshulbisen.com/blog/kafka-consumer-lag-crisis-event-driven-trust/</link><guid isPermaLink="true">https://anshulbisen.com/blog/kafka-consumer-lag-crisis-event-driven-trust/</guid><description>Consumer lag grew silently for two weeks because local dev processed events instantly while production dealt with partition rebalancing and back-pressure from a slow downstream service.</description><pubDate>Mon, 24 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Google&apos;s $32B Wiz acquisition and what it signals about security as a first-class infrastructure concern</title><link>https://anshulbisen.com/blog/google-wiz-acquisition-security-first-class-infra/</link><guid isPermaLink="true">https://anshulbisen.com/blog/google-wiz-acquisition-security-first-class-infra/</guid><description>Google paying $32B for a cloud security startup signals that security is no longer a checkbox but a competitive differentiator, especially in fintech where trust is the product.</description><pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Learning to delegate when every task feels faster to do yourself</title><link>https://anshulbisen.com/blog/learning-to-delegate-faster-to-do-yourself/</link><guid isPermaLink="true">https://anshulbisen.com/blog/learning-to-delegate-faster-to-do-yourself/</guid><description>For six months I was the bottleneck on every code review, architecture decision, and production deploy. Delegation felt slower because it was. The turning point was redefining my job.</description><pubDate>Mon, 10 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Postgres connection pooling: the problem you do not know you have until you have 50 concurrent users</title><link>https://anshulbisen.com/blog/postgres-connection-pooling-50-concurrent-users/</link><guid isPermaLink="true">https://anshulbisen.com/blog/postgres-connection-pooling-50-concurrent-users/</guid><description>Our Node.js API opened a new PostgreSQL connection per request. At 50 concurrent users we exhausted the connection limit and the whole system halted. PgBouncer fixed it.</description><pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate></item><item><title>When the sales team demos a feature that does not exist yet and engineering finds out from a prospect</title><link>https://anshulbisen.com/blog/sales-demos-feature-that-does-not-exist/</link><guid isPermaLink="true">https://anshulbisen.com/blog/sales-demos-feature-that-does-not-exist/</guid><description>A prospect called asking for help configuring a feature our sales deck showed but engineering had never built. The fallout was not the scramble but the trust erosion between teams.</description><pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Claude 3.7 Sonnet&apos;s extended thinking and what it means for code review at a small team</title><link>https://anshulbisen.com/blog/claude-3-7-sonnet-extended-thinking-code-review/</link><guid isPermaLink="true">https://anshulbisen.com/blog/claude-3-7-sonnet-extended-thinking-code-review/</guid><description>Extended thinking mode changed how I approach code review on a team too small for dedicated reviewers. Step-by-step deliberation catches subtle type issues that fast-pass models miss.</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate></item><item><title>The tech debt spreadsheet that made my cofounder finally understand why we need a refactoring sprint</title><link>https://anshulbisen.com/blog/tech-debt-spreadsheet-cofounder-refactoring-sprint/</link><guid isPermaLink="true">https://anshulbisen.com/blog/tech-debt-spreadsheet-cofounder-refactoring-sprint/</guid><description>Saying &quot;we have tech debt&quot; to a non-technical cofounder is meaningless. A spreadsheet mapping each debt item to customer-facing risk and remediation cost finally moved the conversation.</description><pubDate>Mon, 03 Feb 2025 00:00:00 GMT</pubDate></item><item><title>DeepSeek R1 and the moment I realized open-source AI would change how we build internal tools</title><link>https://anshulbisen.com/blog/deepseek-r1-open-source-ai-internal-tools/</link><guid isPermaLink="true">https://anshulbisen.com/blog/deepseek-r1-open-source-ai-internal-tools/</guid><description>DeepSeek R1 shipped as a 671B open-source model matching GPT-4o benchmarks for under $6M training cost. Self-hostable reasoning models change the calculus for regulated fintech.</description><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Migrating from REST to a hybrid REST/event architecture without stopping the train</title><link>https://anshulbisen.com/blog/rest-to-hybrid-event-architecture-without-stopping/</link><guid isPermaLink="true">https://anshulbisen.com/blog/rest-to-hybrid-event-architecture-without-stopping/</guid><description>Our reconciliation engine needed async event processing but API consumers expected synchronous responses. The strangler fig pattern applied to a fintech data pipeline.</description><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate></item><item><title>I mass-rejected 200 resumes and hired the person who asked the best questions in the interview</title><link>https://anshulbisen.com/blog/mass-rejected-200-resumes-hired-best-questions/</link><guid isPermaLink="true">https://anshulbisen.com/blog/mass-rejected-200-resumes-hired-best-questions/</guid><description>Our first structured hiring round attracted 200+ applications. The person we hired had a weaker resume than a dozen others but asked questions that revealed deep systems thinking.</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate></item><item><title>AWS re:Invent announcements that actually matter for a three-person fintech team</title><link>https://anshulbisen.com/blog/reinvent-2024-what-matters-three-person-fintech/</link><guid isPermaLink="true">https://anshulbisen.com/blog/reinvent-2024-what-matters-three-person-fintech/</guid><description>Aurora DSQL, S3 Tables, Amazon Nova. re:Invent 2024 dropped a firehose of announcements, but most solve problems we will not have for years. Three that actually changed our roadmap.</description><pubDate>Mon, 06 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Setting up k3s on a mini PC for staging and why every startup needs a junk drawer environment</title><link>https://anshulbisen.com/blog/k3s-mini-pc-staging-junk-drawer-environment/</link><guid isPermaLink="true">https://anshulbisen.com/blog/k3s-mini-pc-staging-junk-drawer-environment/</guid><description>A $300 mini PC running k3s gave our team a staging environment that mirrors production topology without the cloud bill. The real value was deployment confidence.</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate></item><item><title>The meeting where product, sales, and engineering all had different definitions of &quot;real-time&quot;</title><link>https://anshulbisen.com/blog/three-definitions-of-real-time/</link><guid isPermaLink="true">https://anshulbisen.com/blog/three-definitions-of-real-time/</guid><description>Product wanted sub-second dashboard updates. Sales had promised &quot;real-time&quot; reconciliation. Engineering was thinking about eventual consistency with 30-second polling. One word nearly derailed a quarter of work.</description><pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate></item><item><title>React 19 Server Components in production: the migration nobody warns you about</title><link>https://anshulbisen.com/blog/react-19-server-components-migration-nobody-warns-you/</link><guid isPermaLink="true">https://anshulbisen.com/blog/react-19-server-components-migration-nobody-warns-you/</guid><description>React 19 shipped with Server Components stable and the React Compiler, but migrating a real fintech dashboard was nothing like the blog posts suggested.</description><pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Why our compliance team rewrites my API specs and I have learned to be grateful</title><link>https://anshulbisen.com/blog/compliance-rewrites-api-specs-grateful/</link><guid isPermaLink="true">https://anshulbisen.com/blog/compliance-rewrites-api-specs-grateful/</guid><description>In fintech, your API surface is a regulatory document. Our compliance officer started redlining my OpenAPI specs and improved our API design more than any tech review.</description><pubDate>Mon, 25 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Hiring engineer number three when you can barely keep engineer number one from burning out</title><link>https://anshulbisen.com/blog/hiring-engineer-three-while-one-burns-out/</link><guid isPermaLink="true">https://anshulbisen.com/blog/hiring-engineer-three-while-one-burns-out/</guid><description>I posted a job listing for our third engineer while privately wondering if our first hire was about to quit. What I got wrong about workload distribution.</description><pubDate>Mon, 18 Nov 2024 00:00:00 GMT</pubDate></item><item><title>What Payload CMS 3.0 taught me about choosing frameworks that grow with you</title><link>https://anshulbisen.com/blog/payload-cms-3-choosing-frameworks-that-grow/</link><guid isPermaLink="true">https://anshulbisen.com/blog/payload-cms-3-choosing-frameworks-that-grow/</guid><description>Payload CMS 3.0 shipped with native Next.js App Router integration, validating a framework evaluation approach that prioritizes embeddability over feature count.</description><pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate></item><item><title>The day our monolith&apos;s database hit 80% CPU and nobody noticed until sales called</title><link>https://anshulbisen.com/blog/database-80-percent-cpu-sales-called/</link><guid isPermaLink="true">https://anshulbisen.com/blog/database-80-percent-cpu-sales-called/</guid><description>A slow query compounded by a missing index took our PostgreSQL instance to the brink. Sales noticed before engineering did because client reports were timing out.</description><pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Claude 3.5 Sonnet v2 and the week I mass-refactored our codebase with an AI pair programmer</title><link>https://anshulbisen.com/blog/claude-35-sonnet-v2-ai-pair-programmer-refactor/</link><guid isPermaLink="true">https://anshulbisen.com/blog/claude-35-sonnet-v2-ai-pair-programmer-refactor/</guid><description>I used Claude 3.5 Sonnet v2 to refactor our error handling layer, migrate 80 test files, and generate TypeScript types from our OpenAPI spec. This is a workflow journal.</description><pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Next.js 15, Turbopack stable, and the mass codebase migration nobody is talking about</title><link>https://anshulbisen.com/blog/nextjs-15-turbopack-stable-mass-migration/</link><guid isPermaLink="true">https://anshulbisen.com/blog/nextjs-15-turbopack-stable-mass-migration/</guid><description>Next.js 15 shipped with Turbopack stable and async request APIs that break every existing middleware and dynamic page in your application.</description><pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate></item><item><title>The night our database ran out of connections and what I learned about pooling</title><link>https://anshulbisen.com/blog/database-connection-pool-exhaustion-lessons/</link><guid isPermaLink="true">https://anshulbisen.com/blog/database-connection-pool-exhaustion-lessons/</guid><description>At 2am our payment processing froze. Every database connection was consumed by long-running report queries sharing a pool with transactions.</description><pubDate>Wed, 25 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Making technology bets: how I evaluate frameworks when the wrong choice costs a year</title><link>https://anshulbisen.com/blog/making-technology-bets-framework-evaluation/</link><guid isPermaLink="true">https://anshulbisen.com/blog/making-technology-bets-framework-evaluation/</guid><description>At a startup, picking the wrong framework is a survival threat. Here is the five-criteria scoring model I use for every significant technology decision.</description><pubDate>Wed, 18 Sep 2024 00:00:00 GMT</pubDate></item><item><title>PostgreSQL 17 just dropped and COPY performance alone makes the upgrade worth it</title><link>https://anshulbisen.com/blog/postgres-17-copy-performance-upgrade-worth-it/</link><guid isPermaLink="true">https://anshulbisen.com/blog/postgres-17-copy-performance-upgrade-worth-it/</guid><description>PostgreSQL 17 shipped with 2x COPY performance, JSON_TABLE, and MERGE with RETURNING. The COPY improvement cut our nightly import from 12 minutes to under 6.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Observability on a shoestring: Grafana, Loki, and Tempo for free</title><link>https://anshulbisen.com/blog/observability-grafana-loki-tempo-free/</link><guid isPermaLink="true">https://anshulbisen.com/blog/observability-grafana-loki-tempo-free/</guid><description>We could not afford Datadog. I self-hosted the Grafana stack on our k3s homelab cluster and pointed production at it.</description><pubDate>Wed, 04 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Why every API endpoint at FinanceOps returns the same error shape</title><link>https://anshulbisen.com/blog/consistent-api-error-shape-everywhere/</link><guid isPermaLink="true">https://anshulbisen.com/blog/consistent-api-error-shape-everywhere/</guid><description>Our frontend had seven different error format handlers. I standardized every endpoint to return the same discriminated union error shape.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Full-stack chaos: when the founder, PM, and head of engineering are all you</title><link>https://anshulbisen.com/blog/full-stack-chaos-founder-pm-engineer-all-you/</link><guid isPermaLink="true">https://anshulbisen.com/blog/full-stack-chaos-founder-pm-engineer-all-you/</guid><description>In a single Tuesday I triaged a database lock, wrote a product spec, pitched an investor, and reviewed a PR. Wearing every hat is a failure mode.</description><pubDate>Wed, 21 Aug 2024 00:00:00 GMT</pubDate></item><item><title>The PostgreSQL query that took 47 seconds and how I got it to 3 milliseconds</title><link>https://anshulbisen.com/blog/postgres-query-47-seconds-to-3ms/</link><guid isPermaLink="true">https://anshulbisen.com/blog/postgres-query-47-seconds-to-3ms/</guid><description>A financial report query joined five tables across 2 million rows and took 47 seconds. The fix was not adding an index.</description><pubDate>Wed, 14 Aug 2024 00:00:00 GMT</pubDate></item><item><title>ArgoCD on a single-node k3s cluster: overkill or exactly right</title><link>https://anshulbisen.com/blog/argocd-single-node-k3s-overkill-or-right/</link><guid isPermaLink="true">https://anshulbisen.com/blog/argocd-single-node-k3s-overkill-or-right/</guid><description>Everyone told me ArgoCD on a single-node homelab was absurd. GitOps on a single node means I can rebuild from a Git repo in under 10 minutes.</description><pubDate>Wed, 07 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Docker multi-stage builds that actually make your images small</title><link>https://anshulbisen.com/blog/docker-multi-stage-builds-small-images/</link><guid isPermaLink="true">https://anshulbisen.com/blog/docker-multi-stage-builds-small-images/</guid><description>Our production Docker image was 1.2 GB. After an afternoon of optimization it was 89 MB. Here is the exact Dockerfile evolution.</description><pubDate>Wed, 31 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Hiring our first engineer: the mass-interview process I built as a non-recruiter</title><link>https://anshulbisen.com/blog/hiring-first-engineer-non-recruiter/</link><guid isPermaLink="true">https://anshulbisen.com/blog/hiring-first-engineer-non-recruiter/</guid><description>No ATS, no recruiter, no playbook. I built the entire hiring pipeline from scratch and we interviewed 30 candidates to make one perfect hire.</description><pubDate>Wed, 24 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Why we picked React Server Components over a separate API layer</title><link>https://anshulbisen.com/blog/react-server-components-over-separate-api/</link><guid isPermaLink="true">https://anshulbisen.com/blog/react-server-components-over-separate-api/</guid><description>I tried React Server Components for our internal dashboard and realized I could eliminate the entire API serialization layer for read-heavy pages.</description><pubDate>Wed, 17 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Building a payment reconciliation engine that catches every penny</title><link>https://anshulbisen.com/blog/payment-reconciliation-engine-every-penny/</link><guid isPermaLink="true">https://anshulbisen.com/blog/payment-reconciliation-engine-every-penny/</guid><description>When your product handles financial transactions, close enough is not a rounding strategy. Here is the three-way reconciliation engine I built.</description><pubDate>Wed, 10 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Setting up Cloudflare Tunnels so I never open a port on my homelab again</title><link>https://anshulbisen.com/blog/cloudflare-tunnels-homelab-zero-ports/</link><guid isPermaLink="true">https://anshulbisen.com/blog/cloudflare-tunnels-homelab-zero-ports/</guid><description>I replaced every port forward with a zero-trust Cloudflare Tunnel in a single evening. Here is the exact setup.</description><pubDate>Wed, 03 Jul 2024 00:00:00 GMT</pubDate></item><item><title>TypeScript 5.5 inferred type predicates changed how I write validation code</title><link>https://anshulbisen.com/blog/typescript-55-inferred-type-predicates/</link><guid isPermaLink="true">https://anshulbisen.com/blog/typescript-55-inferred-type-predicates/</guid><description>TypeScript 5.5 shipped inferred type predicates and it quietly eliminated an entire category of boilerplate in our codebase.</description><pubDate>Wed, 26 Jun 2024 00:00:00 GMT</pubDate></item><item><title>The AWS bill that made me rethink everything about infrastructure</title><link>https://anshulbisen.com/blog/aws-bill-rethink-infrastructure/</link><guid isPermaLink="true">https://anshulbisen.com/blog/aws-bill-rethink-infrastructure/</guid><description>Our third month AWS bill was 4x what I projected. The culprit was not compute. It was data transfer, NAT gateway charges, and CloudWatch log ingestion.</description><pubDate>Wed, 19 Jun 2024 00:00:00 GMT</pubDate></item><item><title>How I use PostgreSQL as a job queue and why you probably should too</title><link>https://anshulbisen.com/blog/postgres-as-job-queue/</link><guid isPermaLink="true">https://anshulbisen.com/blog/postgres-as-job-queue/</guid><description>Every guide says use Redis or BullMQ for background jobs. I used PostgreSQL SKIP LOCKED and it handled thousands of jobs per day with zero additional infrastructure.</description><pubDate>Wed, 12 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Startup engineering culture when you are the only engineer</title><link>https://anshulbisen.com/blog/startup-engineering-culture-only-engineer/</link><guid isPermaLink="true">https://anshulbisen.com/blog/startup-engineering-culture-only-engineer/</guid><description>For the first four months I was the entire engineering department. No code reviews, no architecture discussions. Here are the practices I invented to stay honest.</description><pubDate>Wed, 05 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Building a real-time notification system with zero external dependencies</title><link>https://anshulbisen.com/blog/real-time-notifications-zero-dependencies/</link><guid isPermaLink="true">https://anshulbisen.com/blog/real-time-notifications-zero-dependencies/</guid><description>We needed real-time payment notifications but could not justify Redis or a managed WebSocket service. SSE and PostgreSQL LISTEN/NOTIFY did the job.</description><pubDate>Wed, 29 May 2024 00:00:00 GMT</pubDate></item><item><title>Node.js 22 dropped and here is what actually matters for production backends</title><link>https://anshulbisen.com/blog/node-22-what-matters-production-backends/</link><guid isPermaLink="true">https://anshulbisen.com/blog/node-22-what-matters-production-backends/</guid><description>Node.js 22 shipped with require(esm) and a built-in WebSocket client. Here is what I benchmarked and what I adopted immediately.</description><pubDate>Wed, 22 May 2024 00:00:00 GMT</pubDate></item><item><title>My first homelab rack: a mini PC, k3s, and the itch to self-host everything</title><link>https://anshulbisen.com/blog/first-homelab-rack-mini-pc-k3s/</link><guid isPermaLink="true">https://anshulbisen.com/blog/first-homelab-rack-mini-pc-k3s/</guid><description>I bought a used mini PC for $180, installed k3s, and spent a weekend migrating my side projects off Vercel free tier.</description><pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate></item><item><title>Designing a multi-tenant PostgreSQL schema that does not make you cry at 3am</title><link>https://anshulbisen.com/blog/multi-tenant-postgres-schema-design/</link><guid isPermaLink="true">https://anshulbisen.com/blog/multi-tenant-postgres-schema-design/</guid><description>Shared database, shared schema, row-level security. That was the bet. Here is how it played out.</description><pubDate>Wed, 08 May 2024 00:00:00 GMT</pubDate></item><item><title>What nobody tells you about building fintech: compliance is a product feature</title><link>https://anshulbisen.com/blog/fintech-compliance-is-product-feature/</link><guid isPermaLink="true">https://anshulbisen.com/blog/fintech-compliance-is-product-feature/</guid><description>I walked into FinanceOps thinking I was building software. Six months later I realized I was building a compliance platform that happens to have software around it.</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate></item><item><title>The mass migration: moving 200 API endpoints to TypeScript strict mode in one sprint</title><link>https://anshulbisen.com/blog/mass-migration-200-endpoints-typescript-strict/</link><guid isPermaLink="true">https://anshulbisen.com/blog/mass-migration-200-endpoints-typescript-strict/</guid><description>A production bug from an unchecked null cost us a weekend. I spent the next sprint converting 200 API endpoints to strict mode.</description><pubDate>Wed, 24 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Standing up CI/CD from scratch with GitHub Actions and zero budget</title><link>https://anshulbisen.com/blog/ci-cd-from-scratch-github-actions-zero-budget/</link><guid isPermaLink="true">https://anshulbisen.com/blog/ci-cd-from-scratch-github-actions-zero-budget/</guid><description>No DevOps person. No budget. I built our entire CI/CD pipeline in a single weekend using GitHub Actions free tier.</description><pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Bootstrapping a Next.js monolith when everyone says microservices</title><link>https://anshulbisen.com/blog/nextjs-monolith-over-microservices/</link><guid isPermaLink="true">https://anshulbisen.com/blog/nextjs-monolith-over-microservices/</guid><description>I shipped our entire fintech platform as a single Next.js application. Here is why a monolith was the right call for a team of three.</description><pubDate>Wed, 10 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Why I chose PostgreSQL over MongoDB and how it shaped our entire fintech stack</title><link>https://anshulbisen.com/blog/why-postgres-over-mongo-fintech-stack/</link><guid isPermaLink="true">https://anshulbisen.com/blog/why-postgres-over-mongo-fintech-stack/</guid><description>Every fintech startup I talked to was defaulting to MongoDB. I went the other way and bet on PostgreSQL with strict schemas from day one.</description><pubDate>Wed, 03 Apr 2024 00:00:00 GMT</pubDate></item></channel></rss>