Below, you’ll find a tour of CQRS, Event Sourcing, and Projections as they actually appear in a real production NestJS + KurrentDB + PostgreSQL + Drizzle codebase. It’s roughly a 15-minute read. The goal is not just to discuss what these patterns are, but why they are shaped the way they are, and where they […] The post CQRS and…
#typescript
17 posts
4 Jun
27 Apr
Previously, I showed how you can use JSDoc and jsconfig.json as a replacement for TypeScript style type checking — without a build step, no less. At the end of that post I teased an ESLint follow-up. And here we are, I’m happy you’re here. First Things First Before jumping in, I wanted to address a […] The post More on…
12 Apr
The OM-84 Omnichord, released in 1984 Outside of my 9-to-5 job as a software engineer, I play keys in a six-person cover band. A few months back, our drummer came into rehearsal exclaiming, “Georgia, you won’t believe what I found on Facebook Marketplace!” He reached into his backpack and pulled out an Omnichord. What the […] The post How to…
9 Apr
Here’s how I replaced Payload CMS’s built-in login system with Better Auth so an Next.js site and its Payload admin panel could share the same authenticated session. Using Payload CMS If you’re comfortable working in a Next.js app, and you haven’t given Payload CMS a try, you really should. It’s a config-first Typescript CMS that […] The post Use Better…
29 Jul 2025
I'm working on a NestJS project that uses monorepo mode. It consists of a number of separate microservice applications that each have their own Docker container that are managed in development using Docker Compose. I like step-debugging in my IDE and so needed to set it up for this application. This is what I did. The application setup Each service…
4 Jul 2024
TypeScript significantly improved JavaScript development with enhanced code reliability and maintainability, ensuring fewer runtime errors and greater productivity for developers. But when you start working with it, the syntax can sometimes feel overwhelming. One of the most intimidating features in TypeScript is “generics”. Look at the example below 🤯 aren’t you afraid ? Types declarations from @tanstack/react-query (library) that can…
21 Jan 2024
Writing testable code is a vital skill in software engineering. Let’s explore practical advice, strategies, and tactics for writing more testable code, unlocking the benefits of modularity, reusability, and high quality software in your projects. Embracing testability in your coding practice isn’t just about catching bugs; it’s about fostering a culture of quality and efficiency in your projects. A good…
31 Dec 2023
The world of JavaScript has evolved significantly, and interview trends have changed a lot over the years. This guide features 10 essential questions that every JavaScript developer should know the answers to in 2024. It covers a range of topics from closures to TDD, equipping you with the knowledge and confidence to tackle modern JavaScript challenges. As a hiring manager,…
25 Apr 2023
5 Apr 2023
1 Sept 2022
Groupon maintains literally hundreds of NPM modules, both open source and internal. Many of these are consumed by our custom NodeJS-based middleware web layer we call “The Interaction Tier” (itself a topic for another post someday). As folks write new modules, a common question is “what’s the best way to export things from our published modules to maximize compatibility?” —…
9 Aug 2022
Learn how to create a private, invite-only website using Next.js, AirTable, custom React hooks, and Vercel deploy. The post covers backend APIs in Next.js, data storage with AirTable, validating access with invite codes, collecting user input, and deploying the final app.
1 Nov 2021
This post explains how to conditionally create resources in AWS CDK using CfnCondition. It provides a practical example of creating an S3 bucket based on an SSM parameter value. The post covers defining a condition, attaching it to a low-level CDK construct, and importing the conditionally created resource.
6 Aug 2021
This post explains how to use CDK to provision Ubuntu EC2 instances on AWS. It covers finding the right AMI, adding security groups, using init scripts, installing AWS utilities, and more.
14 Oct 2020
Modern web and mobile user experiences is a worldwide thing. Localization of your application (supporting multiple languages) will help you to reach worldwide people. Angular is offering Internationalization(i18n) plugins to enrich your application with multiple languages. In this post I will discuss the implementation with lazy loading design pattern with supporting dynamic content. Take a quick look at the live…
19 Jul 2019
I recently had to bootstrap a project with a GraphQL frontend and backend using Apollo. We wanted to show realtime updates of metrics we collect from an endpoint. For this, we wanted to use GraphQL Subscriptions, specifically graphql-subscriptions , but I noticed they use AsyncIterables as an abstraction for a stream of data. I used RxJS for the same purpose…
1 Jul 2019
Multi-tenants is an architecture concept that can handle multiple projects in a single project container. If you look at popular sites like Nike.com or Mi.com, you will find out the project redirection based on the continent or country region. This post more about understanding the Angular 8 project package configuration, using this how are we leveraging the project for multi-tenant…