Skip to content

best-practices

19 posts

best-practices
Should Stateful Resources Live in a Separate CDK Stack?

A lifecycle test for CDK stack layout: give a resource its own long-lived stack when it outlives any single deployer, then reach it by a well-known name.

aws-cdk · infrastructure-as-code · typescript +3

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

Claude Code Skills and Context Window Bloat: A Token Budget Guide

Copying Claude Code configurations causes context window bloat, degraded tool selection, and mismatched workflows. Build setups intentionally with token budget math.

developer-experience · ai-tools · productivity +2

Org-Level Reusable GitHub Actions Workflows: Architecture, Security, and Adoption

A practical guide to building an org-level shared GitHub Actions platform: architecture decisions, security governance, adoption, and 7 costly mistakes.

github-actions · ci-cd · devops +5

SOLID Principles in JavaScript: Practical Guide with TypeScript and React

How SOLID principles apply to modern JavaScript: practical examples with TypeScript, React hooks, and functional patterns, plus when they're overkill.

typescript · javascript · react +4

Playwright vs Cypress: E2E Testing Strategies for Modern Web Apps

Build reliable, maintainable E2E suites with Playwright and Cypress: framework selection, flaky-test prevention, CI/CD integration, and optimization.

testing · ci-cd · automation +2

AWS CDK Project Structure: Service-Based vs Domain-Based Organization

When to use service-based, domain-based, feature-based, or layer-based organization in AWS CDK projects, with decision frameworks and common pitfalls.

aws-cdk · typescript · infrastructure-as-code +3

Reusable AWS CDK Constructs: Factory Functions, Builders, and Aspects

How factory functions, higher-order functions, and composition turn AWS CDK into a type-safe, reusable infrastructure toolkit that prevents configuration drift.

aws-cdk · typescript · infrastructure-as-code +2

Creational Design Patterns in TypeScript: Singleton, Factory, Builder, Prototype2/2

How Singleton, Factory, Builder, and Prototype patterns evolved in TypeScript: when ES modules replace singletons and when factory functions beat classes.

typescript · design-patterns · architecture +1

Structural Design Patterns in React and TypeScript1/2

How Decorator, Adapter, Facade, Composite, and Proxy patterns evolved in React and TypeScript: when HOCs give way to hooks and how adapters isolate third-party APIs.

typescript · react · design-patterns +2

7 Lesser-Known TypeScript Features: satisfies, Branded Types, and More

Seven lesser-known TypeScript features that improve production code: satisfies, noUncheckedIndexedAccess, branded types, discriminated unions, and more.

typescript · best-practices · code-quality

Network Fundamentals Every Software Developer Should Know

A practical glossary of essential networking concepts for developers - from protocols and DNS to debugging tools and security basics.

networking · http · debugging +3

Domain-Driven Design: Introduction and Fundamentals

A comprehensive introduction to Domain-Driven Design: core concepts, building blocks, strategic patterns, and when and how to apply DDD in practice.

domain-driven-design · architecture · design-patterns +2

The AI Assistance Spectrum: Choosing the Right Level for Professional Software Engineering

A framework for six levels of AI assistance in software, from code review to vibe coding, with guidance on when to dial AI help up or down.

ai-tools · code-quality · productivity +4

RACI and DACI for Software Teams: Fixing Role Ambiguity

Unclear role expectations quietly drain software team productivity; here are proven RACI, swim-lane, and escalation frameworks to remove the waste and lift performance.

leadership · team-management · best-practices +4

Working with Difficult Coworkers in Software Teams: Beyond Textbook Solutions

A field guide to engineering-specific difficult coworkers, from code-review blockers to ghost colleagues, with practical strategies that work for each archetype.

leadership · team-management · best-practices +5

Team Conflict Resolution: A Field Guide to Turning Dysfunction into High Performance

A field guide to spotting, managing, and resolving conflict in software teams, with practical frameworks and early-warning systems that turn friction into performance.

leadership · team-management · best-practices +4

Frontend Build Tools History: From jQuery and Grunt to Bower1/1

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

Google Closure Compiler: Legacy, Lessons, and Modern Alternatives

How Google's 2009 Closure Compiler shaped modern web tooling, from dead code elimination to type checking, and its lasting mark on today's build tools.

javascript · build-tools · best-practices +6