Code.
Learn. Build.
Practical Node.js, Express, and TypeScript. Written clearly, from first principles to production.
Understanding Git and Github
Understanding the difference between Git and Github with examples and their main use cases or how they are helpful for the developers.
All Articles
Understanding Promises in JavaScript
What a JavaScript Promise is, how it works under the hood, and the different ways to handle async operations with it.
Javascript Concepts Part 1
Core JavaScript concepts you actually need: ES6 features, scope, closures, and the questions that keep coming up in interviews.
Javascript Concepts Part 2
Hoisting, closures, the rest and spread operators, and other JavaScript fundamentals that keep showing up in interviews.
Vue for Beginners
Getting started with Vue.js: what it is, how to set it up, and the basics you need to start building something with it.
Advanced Vue.js Concepts
Custom directives, lifecycle hooks, Vuex, and the Vue features that come up once you are past the basics.
Mastering Advanced Vue.js Techniques
Dynamic components, mixins, render functions, and scoped slots. The stuff you need once basic Vue is not enough anymore.
Mastering Advanced Nuxt.js Techniques
SSR, middleware, dynamic routes, and the Nuxt features that matter most once you start building real applications.
Getting Started with Nuxt.js A Beginner’s Guide
Project setup, routing, layouts, and data fetching in Nuxt.js. A starting point if you are new to the framework.
Python Best Practices Every Developer Should Know
Virtual environments, type hints, Pythonic patterns, and the conventions experienced Python developers use by default.
React Best Practices for Building Scalable Applications
Component design, state management, performance hooks, and the React patterns that hold up in real projects.
Next.js Best Practices with the App Router
Server Components, data fetching, routing conventions, and the App Router decisions that actually affect performance in Next.js 14+.
Python OOP and Design Patterns in Practice
Python OOP done right: dataclasses, properties, and the design patterns that show up most in real codebases, with guidance on when to actually use them.
Async Python: asyncio, aiohttp, and Concurrent Patterns
How Python's async model actually works, when to use gather vs create_task, and the mistakes that catch people coming from synchronous code.
React State Management: When to Use Context, Zustand, or Redux
Local state, Context, Zustand, and Redux Toolkit. What each one is actually for, with honest trade-offs so you can pick the right one for your situation.
React Performance Optimisation: Patterns That Actually Matter
Profiling first, then targeted fixes. When memo and useMemo actually help, how code splitting works, and the changes that make a real difference rather than just looking like good practice.
Authentication in Next.js with NextAuth.js and the App Router
Setting up NextAuth.js v5 with the App Router: OAuth providers, credentials login, session handling, protected routes, and what to watch out for in production.
Building Full-Stack Apps with Next.js, Prisma, and PostgreSQL
Full-stack Next.js with Prisma and PostgreSQL: schema design, type-safe queries, Server Actions, and how to wire it all together for deployment.
GitHub Series
TypeScript Deep-Dive Series
20 articles on Node.js and Express, pulled live from GitHub so the code is always current.
Navigating the Node.js Event Loop
Deep understanding of the Event Loop — phases, microtasks, macrotasks, and how async code really runs.
Getting Started with TypeScript & Express
Set up a TypeScript Express project from scratch — tsconfig, ts-node, middleware, routing, and the Request/Response objects explained.
The Basics of Node.js with TypeScript
Explore Node.js fundamentals — modules, the global object, process arguments, and the file system with TypeScript.