SuitsLearn LogoSuitsLearn

Engineering Notes

Software engineering insights, system design discussions, and practical development knowledge from building modern full-stack and backend systems.

I write about architecture decisions, APIs, backend design, and real-world tradeoffs in software development.

Readings

Node.js

Part 4 — Advanced Event Loop Patterns and Alternatives

The final part of the event loop series: scaling Node.js beyond a single process with Cluster, Child Processes, message queues, background jobs, and distributed processing — and an honest look at when Node.js isn't the right tool at all.

By Ishan Wickremasuriya

Published 2026-06-20 • 16 min read

Backend EngineeringDistributed SystemsEvent LoopJavaScript RuntimeNode.jsProduction SystemsSoftware ArchitectureSystem Design

Node.js

Part 3 — Event Loop Performance Optimization Techniques

A practical guide to measuring and fixing event loop performance in production Node.js applications: event loop lag, monitoring, profiling, Worker Threads, streams, backpressure, batching, and queue-based architecture.

By Ishan Wickremasuriya

Published 2026-06-19 • 15 min read

Backend EngineeringEvent LoopJavaScript RuntimeNode.jsObservabilityPerformance OptimizationProduction SystemsWorker Threads

Node.js

Part 2 — Writing Production Code With the Event Loop in Mind

A practical guide to the patterns that quietly block the Node.js event loop in production: CPU-heavy operations, synchronous APIs, JSON processing, regular expression traps, large loops, memory pressure, and the async patterns that fix them.

By Ishan Wickremasuriya

Published 2026-06-18 • 14 min read

Asynchronous ProgrammingBackend EngineeringEngineering LessonsEvent LoopJavaScript RuntimeNode.jsPerformance OptimizationProduction Systems

Node.js

Part 1 — Understanding the Node.js Event Loop: The Engine Behind Async JavaScript

A deep technical explanation of the Node.js event loop, how asynchronous execution works internally, how libuv manages operations, and how understanding runtime behavior helps engineers build high-performance and scalable backend systems.

By Ishan Wickremasuriya

Published 2026-06-16 • 16 min read

Asynchronous ProgrammingBackend EngineeringEngineering LessonsEvent LoopJavaScript RuntimeNode.jsPerformance OptimizationProduction SystemsSoftware ArchitectureSystem Design

Node.js

Lessons Learned: How Console Logging Nearly Broke My Node.js Production System

A production incident that initially appeared to be a memory leak turned out to be a logging and I/O backpressure problem. This article explores how excessive console logging affected memory usage, event loop responsiveness, and overall system stability in a Node.js application.

By Ishan Wickremasuriya

Published 2026-06-13 • 9 min read

BackpressureEvent LoopLoggingNode.jsObservabilityPerformanceProduction EngineeringWinston

Engineering

Why I Started Writing After 13 Years in Software Development

After more than 13 years in software development, I started this blog to document engineering lessons, architectural decisions, technical tradeoffs, and practical insights gained from building real-world systems.

By Ishan Wickremasuriya

Published 2026-06-10 • 5 min read

ArchitectureCareerEngineering JourneyLessons LearnedSoftware EngineeringSystem Design