Skip to content

lessons-learned

33 posts

lessons-learned
Who Owns This Code Now: Accountability vs Blame

Stop asking who wrote the legacy code. Separate responsibility, accountability, and blame, and make inherited code owned rather than orphaned.

engineering-culture · leadership · team-management +3

Blameless Postmortems: A Model and a Copy-Paste Template

A blameless postmortem model that fixes the system instead of finding a culprit, with a copy-paste template and where individual accountability still applies.

engineering-culture · incident-response · psychological-safety +4

Phronesis and AI Coding Agents: The Skill the Model Cannot Give You

Agents made code-writing essentially free, but judgment about when and how much to use them is still entirely yours. An Aristotelian frame to separate the two skills.

ai-tools · claude-code · ai-agents +3

OpenFGA vs SpiceDB vs Cerbos vs OPA vs AWS Verified Permissions: Which Authorization Platform to Choose3/3

A vendor-neutral evaluation of AWS Verified Permissions, SpiceDB, OpenFGA, Cerbos, and OPA, with architecture patterns, cost analysis, and a decision framework.

authorization · security · architecture +4

Cedar vs Rego vs OpenFGA: Policy Language Comparison2/3

A deep comparison of Cedar, Rego, OpenFGA DSL, and Cerbos YAML/CEL policy languages: syntax, performance, formal verification, tooling, and TypeScript integration.

authorization · security · architecture +2

SpiceDB vs Auth0 FGA: Relationship-Based Authorization Compared1/3

A deep technical comparison of SpiceDB and Auth0 FGA (OpenFGA), two Zanzibar-inspired systems with different trade-offs in schema, consistency, deployment, and scale.

authorization · security · architecture +3

AI/LLM Glossary: 82 Terms Every Developer Should Know

An implementation-focused glossary for developers navigating the AI/LLM landscape - from tokens to agents, RAG to fine-tuning, with code examples.

llm · ai-agents · rag +6

AI Developer Tools Landscape: Adoption Data and Trends1/1

Where AI coding assistants actually help, why individual speed gains stall at the team level, and what to put in place before widening adoption.

ai-tools · productivity · github-copilot +3

Lambda Layer Versioning Strategies for Multi-Environment Deployments

Practical approaches to managing Lambda Layer versions across dev, staging, and production with AWS CDK, automated deployment pipelines, and rollbacks.

aws · lambda · aws-cdk +4

Claude Code MCP Servers: Setup and Configuration Guide

A comprehensive guide to Claude Code, AI agents, and Model Context Protocol servers that transforms developers from basic users to power users

claude-code · mcp · ai-tools +5

The Hidden Cost of Cultural Blindness: When Global Engineering Teams Fail

Cultural misunderstandings quietly derail global engineering teams; practical frameworks for adapting feedback, meetings and escalation to cultural context.

leadership · team-management · remote-work +2

The Security Glossary: 50+ Terms Every Dev Team Should Know

Definitions, implementation context, and defaults for authentication, token, access control, and Zero Trust terminology that teams argue about.

security · authentication · oauth2 +2

Authentication Strategies by Industry: Banking, Healthcare, E-commerce, SaaS

One-size-fits-all auth is a myth: banking, healthcare, e-commerce and SaaS each shape the authentication architecture differently.

authentication · authorization · security +5

GitHub Copilot ROI: An Enterprise Cost Analysis Framework

How to model GitHub Copilot ROI at enterprise scale: the license and review cost lines, the metrics that matter, payback shape by team size, and rollout anti-patterns.

github-copilot · ai-tools · productivity +7

Database Query Profiling: Systematic Optimization Journey

Systematic profiling for PostgreSQL and MongoDB: how to find the queries driving latency and infrastructure cost, and which fixes actually move them.

data-storage-orm · postgresql · performance +4

AI Code Review vs Human Review: What Each Catches

Where AI-assisted code review catches what humans miss, where humans still excel, and how to build effective human-AI collaboration in your review process.

code-review · ci-cd · security +7

Migrating from Node.js to Go on AWS Lambda: A Practical Guide

When a Node.js to Go move on AWS Lambda pays for itself and when it does not: the decision framework, the serverless Go patterns, and the cost math behind the call.

go · nodejs · serverless +5

Moment.js Alternatives for Node.js: Migration Guide and Comparison

Why time bugs hide in production, how to migrate from Moment.js to Day.js or date-fns, and how to keep UTC everywhere with conversion only at the display boundary.

nodejs · javascript · productivity +3

From RFC to Production: What They Don't Tell You About Implementation

Where RFC designs diverge from production reality, using notification systems as the worked example, and how to tell useful adaptation from architectural drift.

rfc · production · debugging +4

Debugging Notification Delivery Failures at Scale1/1

Real-world debugging techniques, monitoring strategies, and lessons learned from notification system failures in high-stakes production environments

debugging · monitoring · production +4

API Versioning with AWS API Gateway and CDK: A Practical Guide

Path-based API versioning on AWS API Gateway with CDK: a lifecycle registry per version, per-version Lambda handlers, discovery, and deprecation signals.

api-gateway · aws · aws-cdk +3

AWS Fargate Troubleshooting: ENI Limits, Timeouts, Debugging1/1

Fargate failure modes that green dashboards hide: ENI quota exhaustion, subnet routing breaks, memory leaks, and the checks that find each one.

aws · fargate · debugging +4

AWS Lambda Cold Start Optimization: Production Lessons Learned2/2

Production-tested strategies for cutting AWS Lambda cold starts: runtime selection, provisioned concurrency, and practical optimization techniques.

lambda · serverless · cold-start +3

AWS Lambda Cost Optimization: VPC, Layers, and Advanced Patterns1/2

Advanced AWS Lambda patterns and cost optimization: Lambda Layers, VPC configuration, cross-account execution, and architectural decisions.

lambda · serverless · cost-optimization +5

S3 Presigned URLs for Large File Uploads with Lambda and CDK

Handle large file uploads with S3 presigned URLs instead of Lambda proxies: a full CDK stack, both handlers, the browser side, and the security trade-offs.

lambda · aws-cdk · aws +2

Bus Factor in Engineering Teams: How to Reduce Knowledge Risk

Protect your team from single points of failure through knowledge distribution, documentation strategies, and systematic risk management.

team-management · documentation · knowledge-sharing +5

Frontend Build Tools History: From jQuery and Grunt to Bower2/2

Before webpack, we concatenated files with Grunt and wrestled with jQuery spaghetti. How frontend tooling grew from manual file management to real build systems.

javascript · build-tools · technical-debt +2

Grunt vs Gulp vs Webpack: How Modern Bundling Emerged1/2

How Grunt reshaped build automation and webpack changed how we think about dependencies: the hard shift from manual processes to modern bundling.

build-tools · webpack · javascript +1

Git Branching Strategies: Real-World Lessons for Different Teams and Products

Git branching strategies mapped to team size, product type, and release cadence. GitHub Flow is the default; here is when another model earns its overhead.

ci-cd · lessons-learned · team-management +3

Replacing Factories and DI in Node.js with Pure Functions

Factories, service layers, and DI containers rarely earn their keep in a Lambda-shaped Node.js service. What replaces them, and where classes still win.

event-driven · functional-programming · lambda +3

Monolith to Microservices in Node.js: A Migration Guide

A practical guide to evolving Node.js monoliths into event-driven serverless functions, with migration strategies and proven architectural patterns.

event-driven · architecture · nodejs +1

Feature Flags in React Native: A Stale-While-Revalidate Pattern

Why synchronous feature flag loading stalls checkout, and how a stale-while-revalidate cache serves React Native flags instantly with background refresh.

feature-flags · mobile · react-native +2

Zod + OpenAPI + AWS Lambda: Schema-First API Development with CDK

Keep a Lambda API and its OpenAPI contract in sync by generating the spec from Zod schemas and wiring that generation into CDK deployment.

api-gateway · aws-cdk · lambda +4