# The T-Shaped Dev

Production-grade engineering for full-stack JavaScript developers who want to think like architects -- React, Node, software architecture, and building real AI systems. No fluff, every week.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The 3 Layers of Testing AI Agents

DevFeed: [The 3 Layers of Testing AI Agents](<https://devfeed.tech/articles/the-3-layers-of-testing-ai-agents-26894.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/the-3-layers-of-testing-ai-agents-unittests-mocking-alerts-judge-evals-production-agentic-systems>)

Author: The T-Shaped Dev

Published: 2026-09-15T20:59:04Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article presents a three-layer approach to testing AI agents: deterministic tests for surrounding code such as tools, schemas, routing, state, and failure policies; judged scenarios for model behavior; and continuous production evaluations.

### Source excerpt

Draw the line between the model and the machine, and 80% of agent testing is testing you already know how to do. (7 min)

## When to Split a Single AI Agent into Multiple Agents

DevFeed: [When to Split a Single AI Agent into Multiple Agents](<https://devfeed.tech/articles/don-t-start-with-multi-agent-18114.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/multi-agent-is-the-new-microservices-one-agent-vs-many-agents-supervisor-pattern>)

Author: The T-Shaped Dev

Published: 2026-09-12T05:19:14Z

Content type: opinion

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [multi-agent](<https://devfeed.tech/tags/multi-agent.md>)

### AI overview

The article argues that multi-agent systems can be worthwhile when a single agent suffers from expanding tool choices, conflicting system instructions, and excessive blast radius. It recommends starting with one agent and using measurable signs to determine when to split into specialized agents managed by a supervisor.

### Source excerpt

When one agent should become many, when it shouldn't, and the supervisor pattern that makes the split work. (8 min)

## 7 Rules for Designing Tool Definitions That AI Agents Can Reliably Use

DevFeed: [7 Rules for Designing Tool Definitions That AI Agents Can Reliably Use](<https://devfeed.tech/articles/your-agent-isn-t-dumb-your-tools-are-18104.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/7-rules-tool-definitions-ai-agents-tool-design-software-design-architecture>)

Author: The T-Shaped Dev

Published: 2026-09-08T12:19:46Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [API](<https://devfeed.tech/topics/api.md>), [Vibe coding](<https://devfeed.tech/topics/vibe-coding.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [developer](<https://devfeed.tech/tags/developer.md>), [tool](<https://devfeed.tech/tags/tool.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

A tutorial on designing tool definitions for AI agents. It explains that models rely on a tool's name, description, and schema, so ambiguous contracts can cause incorrect behavior. The article recommends focused tools, descriptions that guide selection and state when not to use a tool, and structured decisions followed by deterministic code.

### Source excerpt

7 rules for tool definitions a model can't misread, starting with the sentence that fixes the most bugs. (8 min)

## Classify Domain and System Errors to Set HTTP Status, Logging, and Paging

DevFeed: [Classify Domain and System Errors to Set HTTP Status, Logging, and Paging](<https://devfeed.tech/articles/stop-throwing-new-error-it-s-lying-to-your-logs-18109.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/domain-errors-are-features-system-errors-are-bugs-error-handling>)

Author: The T-Shaped Dev

Published: 2026-08-29T04:19:38Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [errors](<https://devfeed.tech/tags/errors.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [http](<https://devfeed.tech/tags/http.md>), [logs](<https://devfeed.tech/tags/logs.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [on-call](<https://devfeed.tech/tags/on-call.md>)

### AI overview

This tutorial distinguishes expected domain errors, such as invalid input or forbidden actions, from unexpected system errors, such as database failures, upstream timeouts, and memory exhaustion. It proposes encoding the distinction in error types so middleware can determine the HTTP status, user message, log level, and paging behavior.

### Source excerpt

One distinction that sets your HTTP status, your log level, and who gets paged. (6 min)

## How React Rendering Works and Why Memoization Is Often Not the First Fix

DevFeed: [How React Rendering Works and Why Memoization Is Often Not the First Fix](<https://devfeed.tech/articles/your-usememo-probably-isn-t-doing-anything-18116.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/react-rendering-demystified-your-usememo-probably-isnt-doing-anything>)

Author: The T-Shaped Dev

Published: 2026-07-28T06:10:09Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [context](<https://devfeed.tech/tags/context.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [render](<https://devfeed.tech/tags/render.md>), [state](<https://devfeed.tech/tags/state.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains that a React render is a component function call, while DOM updates happen only during the commit phase. It identifies state changes, context changes, and new child elements from a parent as render triggers, and argues that moving state or restructuring children often helps before memoization. It also notes that StrictMode intentionally renders twice in development and that the compiler cannot move component state.

### Source excerpt

One rule explains every React re-render. Get it right and memoization becomes the last fix, not the first.

## 7 Things That Break LLM Apps in Production

DevFeed: [7 Things That Break LLM Apps in Production](<https://devfeed.tech/articles/7-things-that-break-llm-apps-in-production-18105.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/7-things-that-break-llm-apps-in-production-ai>)

Author: The T-Shaped Dev

Published: 2026-07-08T10:20:03Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Development](<https://devfeed.tech/topics/development.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [llm](<https://devfeed.tech/tags/llm.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

A practical guide to seven production failure modes in LLM applications, using an email-drafting agent outage to show why network calls need timeouts, cancellation, bounded retries, and resilient workflow design.

### Source excerpt

The demo works on your machine. Here's what takes it down when real users show up.

## 3 Resilience Patterns That Keep a Backend Service Up When Its Dependencies Aren't

DevFeed: [3 Resilience Patterns That Keep a Backend Service Up When Its Dependencies Aren't](<https://devfeed.tech/articles/3-resilience-patterns-that-keep-a-backend-service-up-when-its-dependencies-aren-t-18117.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/resilience-patterns-keep-backend-nodejs-service-up-production-timeout-retry-backoff-jitter-circuit-breaker>)

Author: The T-Shaped Dev

Published: 2026-06-27T10:19:01Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Resilience](<https://devfeed.tech/topics/resilience.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [circuit](<https://devfeed.tech/tags/circuit.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [retry](<https://devfeed.tech/tags/retry.md>), [timeout](<https://devfeed.tech/tags/timeout.md>)

### AI overview

A tutorial on using timeouts, retries with backoff, and circuit breakers to limit cascading failures in backend services when dependencies become slow or unreliable. It explains how unbounded waiting can exhaust server resources and describes how to layer these resilience patterns.

### Source excerpt

Timeout, retry with backoff, and circuit breaker -- what each one actually does, and the order to stack them.

## A Practical CQRS Split for Read and Write Paths in a Node.js Service

DevFeed: [A Practical CQRS Split for Read and Write Paths in a Node.js Service](<https://devfeed.tech/articles/cqrs-without-the-astronaut-architecture-18106.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/cqrs-without-the-astronaut-architecture-split-read-write-paths-typescript-nodejs-backend-service>)

Author: The T-Shaped Dev

Published: 2026-06-21T12:19:52Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [backends](<https://devfeed.tech/topics/backends.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>)

### AI overview

This tutorial presents a lightweight CQRS approach for a Node.js service: separate business-heavy write operations from read operations that serve screens, without requiring event sourcing or a second database.

### Source excerpt

You don't need event sourcing or a second database. Just split reads from writes, and finally fix the 20-method service nobody wants to open.

## When React compound components are a poor fit for data-driven lists

DevFeed: [When React compound components are a poor fit for data-driven lists](<https://devfeed.tech/articles/you-re-using-react-compound-components-wrong-18121.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/you-are-using-react-compound-components-wrong-type-safe-typescript>)

Author: The T-Shaped Dev

Published: 2026-06-16T10:19:04Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [react](<https://devfeed.tech/tags/react.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

The article argues that React compound components are often misapplied to data-driven lists. It explains that when items come from an array, a plain props-based API better supports operations such as sorting, filtering, virtualization, and keyboard navigation, while avoiding unnecessary TypeScript complexity.

### Source excerpt

The most-copied example in every tutorial is the one place you shouldn't use them.

## How to Stop Charging Customers Twice: A Practical Idempotency Guide

DevFeed: [How to Stop Charging Customers Twice: A Practical Idempotency Guide](<https://devfeed.tech/articles/how-to-stop-charging-customers-twice-a-practical-idempotency-guide-18113.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/how-to-stop-charging-customers-twice-practical-idempotency-guide-http-message-queues>)

Author: The T-Shaped Dev

Published: 2026-06-09T03:20:24Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>)

### AI overview

A practical guide to idempotency explains how to prevent duplicate charges when payment requests are retried. It covers HTTP requests, message queues, and the distinction between idempotent and non-idempotent operations.

### Source excerpt

Idempotency in plain English: HTTP, message queues, and the one detail that decides whether it's real.

## My Frontend Stack In 2026

DevFeed: [My Frontend Stack In 2026](<https://devfeed.tech/articles/my-frontend-stack-in-2026-18115.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/my-frontend-stack-in-2026-react-nextjs-pnpm-vite-ts-tailwind-storybook-tanstack-zustand-zod-oxlint-oxfmt-msw-vitest-playright-sentry>)

Author: The T-Shaped Dev

Published: 2026-05-23T02:19:53Z

Content type: opinion

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [React](<https://devfeed.tech/topics/react.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Shadcn UI](<https://devfeed.tech/topics/shadcn-ui.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwind-css](<https://devfeed.tech/tags/tailwind-css.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

An opinionated overview of a 2026 frontend stack for production applications. The author describes choosing Next.js for content-heavy sites, Vite with React and TypeScript for internal tools and single-page applications, pnpm for package management, and Tailwind CSS with shadcn/ui for styling and components.

### Source excerpt

The tools I actually reach for when building production apps, from framework to the moment a user hits a bug.

## Stacked PRs: The Code Review Workflow That Changed How I Ship Features

DevFeed: [Stacked PRs: The Code Review Workflow That Changed How I Ship Features](<https://devfeed.tech/articles/stacked-prs-the-code-review-workflow-that-changed-how-i-ship-features-18119.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/stacked-prs-the-code-review-workflow-that-makes-difference>)

Author: The T-Shaped Dev

Published: 2026-05-13T02:19:49Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Code review](<https://devfeed.tech/topics/code-review.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Git](<https://devfeed.tech/topics/git.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [git](<https://devfeed.tech/tags/git.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

A practical guide to stacked pull requests, where each pull request is based on the previous one's branch. The workflow breaks complex features into smaller, independently reviewable changes, helping teams reduce review scope, avoid long-lived branches, and manage dependent work with fewer rebase problems.

### Source excerpt

Stacked diffs, the workflow Meta and Google ship on. (7 min)

## 20 Mistakes That Quietly Destroy JavaScript/TypeScript Codebases (Part 2)

DevFeed: [20 Mistakes That Quietly Destroy JavaScript/TypeScript Codebases (Part 2)](<https://devfeed.tech/articles/20-mistakes-that-quietly-destroy-javascript-typescript-codebases-part-2-18103.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/20-mistakes-that-quietly-destroy-javascript-typescript-codebases-common-code-smell-patterns-async-performance-testing>)

Author: The T-Shaped Dev

Published: 2026-05-09T02:19:51Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Code](<https://devfeed.tech/topics/code.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [code](<https://devfeed.tech/tags/code.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [test](<https://devfeed.tech/tags/test.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

Part 2 of a JavaScript and TypeScript code-quality series presents common runtime and code-quality mistakes, including mutating function parameters, memory leaks from uncleared listeners, timers and subscriptions, and async cancellation issues. It includes fixes and testing or debugging guidance.

### Source excerpt

Common JS/TS patterns that feel fine until they don't. 11 mistakes, before/after code for each. (11 min)

## 20 Mistakes That Quietly Destroy JavaScript/TypeScript Codebases (Part 1)

DevFeed: [20 Mistakes That Quietly Destroy JavaScript/TypeScript Codebases (Part 1)](<https://devfeed.tech/articles/20-mistakes-that-quietly-destroy-javascript-typescript-codebases-part-1-18102.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/20-mistakes-that-quietly-destroy-javascript-typescript-codebases-common-code-smell-patterns>)

Author: The T-Shaped Dev

Published: 2026-05-02T02:19:25Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Code](<https://devfeed.tech/topics/code.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [code](<https://devfeed.tech/tags/code.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial examines common JavaScript and TypeScript codebase mistakes that increase maintenance costs without necessarily breaking builds or tests. Part 1 focuses on type modeling, error handling, and module design, including TypeScript strict mode and unsafe type escapes.

### Source excerpt

Common JS/TS patterns that feel fine until they don't. 11 mistakes, before/after code for each. (11 min)

## ES2025 Features You Should Actually Use

DevFeed: [ES2025 Features You Should Actually Use](<https://devfeed.tech/articles/es2025-features-you-should-actually-use-18110.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/es2025-javascript-typescript-eight-features-you-should-actually-use-production-codebase>)

Author: The T-Shaped Dev

Published: 2026-04-22T12:04:34Z

Content type: article

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [TypeScript](<https://devfeed.tech/topics/typescript.md>), [coding](<https://devfeed.tech/topics/coding.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [features](<https://devfeed.tech/tags/features.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

A practical review of eight ES2025 features, assessed against the author's recent code to distinguish broadly useful additions from more niche ones. It highlights Set methods as useful for permissions, feature flags, and tag filtering, and notes TypeScript support in version 5.5.

### Source excerpt

Learn about eight features you must adapt today in your production codebase. (9 min)

## Vertical Slice Architecture in Node.js: One Folder Per Use Case

DevFeed: [Vertical Slice Architecture in Node.js: One Folder Per Use Case](<https://devfeed.tech/articles/vertical-slice-architecture-in-node-js-one-folder-per-use-case-18120.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/vertical-slice-architecture-in-nodejs-typescript-one-folder-per-use-case>)

Author: The T-Shaped Dev

Published: 2026-04-11T05:07:49Z

Content type: article

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [Code](<https://devfeed.tech/topics/code.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [structure](<https://devfeed.tech/tags/structure.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

This article explains Vertical Slice Architecture for Node.js projects, where each use case has its own folder containing the handler, validation, types, and tests. It also promotes Cline Kanban as a visual orchestration layer for managing multiple coding agents across terminals and providers.

### Source excerpt

Why organizing by domain module isn't enough and what to do instead. (8 min)

## Dependency Injection and Dependency Inversion in Node.js and TypeScript

DevFeed: [Dependency Injection and Dependency Inversion in Node.js and TypeScript](<https://devfeed.tech/articles/dependency-injection-in-node-js-typescript-the-part-nobody-teaches-you-18108.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/dependency-injection-in-nodejs-and-typescript-dependency-inversion-part-no-body-teaches-you>)

Author: Petar Ivanov

Published: 2026-03-29T12:19:37Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Dependency Inversion](<https://devfeed.tech/topics/dependency-inversion.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Express](<https://devfeed.tech/topics/express.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Drizzle](<https://devfeed.tech/topics/drizzle.md>), [SendGrid](<https://devfeed.tech/topics/sendgrid.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [dependency-inversion](<https://devfeed.tech/tags/dependency-inversion.md>), [di](<https://devfeed.tech/tags/di.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [testing](<https://devfeed.tech/tags/testing.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

A tutorial on using plain TypeScript dependency injection in Node.js. It distinguishes dependency injection from dependency inversion and argues that explicit dependencies can improve testability and make implementations easier to swap.

### Source excerpt

Learn the hidden costs about importing everything directly and the structural change you need to make. (8 min)

## Screaming Architecture & Colocation: Let Your Project Structure Tell the Story

DevFeed: [Screaming Architecture & Colocation: Let Your Project Structure Tell the Story](<https://devfeed.tech/articles/screaming-architecture-colocation-let-your-project-structure-tell-the-story-18118.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/screaming-architecture-and-colocation-nodejs-typescript-react>)

Author: The T-Shaped Dev

Published: 2026-03-14T07:19:34Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Express](<https://devfeed.tech/topics/express.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [back-end](<https://devfeed.tech/tags/back-end.md>), [code](<https://devfeed.tech/tags/code.md>), [express](<https://devfeed.tech/tags/express.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [project](<https://devfeed.tech/tags/project.md>), [structure](<https://devfeed.tech/tags/structure.md>), [technical](<https://devfeed.tech/tags/technical.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains how to organize Node.js, TypeScript, and React projects around business capabilities rather than technical layers. It presents Screaming Architecture and colocation as ways to improve code discoverability, team ownership, change isolation, feature removal, and maintainability.

### Source excerpt

Learn why you should organize your code by what your app actually does, not by technical roles. (5 min)

## 4 Disciplines That Separate Effective Engineers From Busy Ones

DevFeed: [4 Disciplines That Separate Effective Engineers From Busy Ones](<https://devfeed.tech/articles/4-disciplines-that-separate-effective-engineers-from-busy-ones-18111.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/four-disciplines-that-separate-effective-software-engineers-from-busy-engineers>)

Author: The T-Shaped Dev

Published: 2026-02-24T11:19:19Z

Content type: article

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [effective](<https://devfeed.tech/tags/effective.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The article identifies four disciplines that distinguish effective software engineers from busy ones. It emphasizes solving the right problems, understanding users and team strategy, prioritizing carefully, and treating AI as a tool rather than a substitute for judgment.

### Source excerpt

Learn about the daily habits that help engineers be more effective. (7 min)

## Database Design Doesn't Start With Table. It Starts With Consequences

DevFeed: [Database Design Doesn't Start With Table. It Starts With Consequences](<https://devfeed.tech/articles/database-design-doesn-t-start-with-table-it-starts-with-consequences-18107.md>)

Original publisher: [Read original article](<https://thetshaped.dev/p/database-design-foundations-backend-engineers-mistakes-and-lessons>)

Author: The T-Shaped Dev

Published: 2026-02-17T05:19:18Z

Content type: tutorial

Language: en

Sources: [The T-Shaped Dev](<https://devfeed.tech/sources/the-t-shaped-dev.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [databases](<https://devfeed.tech/tags/databases.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>)

### AI overview

An introduction to database design for backend engineers. The article explains why schema decisions have long-term consequences, recommends modeling the business domain before designing tables, and discusses normalization and database constraints.

### Source excerpt

Here's what most backend engineers get wrong about schema design and how to fix it before you hit production. (6 min)