Software Engineer

I'm curious by nature and enjoy figuring out how things work. I like solving problems, building useful things, and learning something new every day. I believe in keeping things simple, staying consistent, and always trying to improve myself a little more than yesterday.

Jul 22, 2026· 4 min read ·9 views

How to Run This NestJS Blog Project in Docker: Building the Image, Starting the Container, and Opening It

A step-by-step guide for students new to Docker — three commands take you from source code to a running blog at localhost:3000, with an explanation of what each one does.

Goal Run this blog on your own machine inside a Docker container, without installing Node.js. Everything the project needs — Node 20, the dependencies, the compiled code — is built…

Jul 22, 2026· 16 min read ·5 views

A step-by-step guide to the CI/CD journey: understand each component's role, trace a commit from development to production, and see a real Jenkins pipeline in action

Part 1 — The Roles: Who Does What People often blur these three together. They are separate concerns: | Piece | What it actually is | Responsibility | | | | | | CI/CD | A practice…

Jul 22, 2026· 3 min read ·12 views

Ensuring the Same Configuration Across Development, QA, and Production

One of the biggest deployment challenges is making sure the application behaves consistently across all environments while allowing environment-specific settings (like connection strings and API keys).

1. Keep Configuration Outside the Code (12 Factor App) Never hardcode environment specific values. Bad Good Store values in configuration files, environment variables, or a secret…

Jul 21, 2026· 3 min read ·18 views

ORM (Object-Relational Mapping) in ASP.NET Core

ORM (Object-Relational Mapping) is a technique that enables developers to interact with a relational database using programming language objects instead of writing raw SQL queries. It maps database tables to classes, rows to objects, and columns to properties, simplifying data access and improving productivity, maintainability, and code readability. In ASP.NET Core, **Entity Framework Core (EF Core)** is the most commonly used ORM.

Key takeaways
  • ASP.NET Core
  • ORM
  • Code First Approach

What is ORM? ORM (Object Relational Mapping) is a technique that allows developers to work with a database using C objects instead of writing raw SQL queries. It maps: 1. Database…

Jul 10, 2026· 2 min read ·6 views

Idempotency keys, or how to make retries safe

The network failed after the charge but before the response — now what

Key takeaways
  • A timeout tells you nothing about whether the work happened.
  • Idempotency is a property of the endpoint, not of the client.
  • Store the key with the result, not just the key.

A client calls POST /payments . The charge succeeds. The response times out on the way back. The client has no idea whether it worked. If it retries, you might charge twice. If it…

Jul 9, 2026· 2 min read ·9 views

The N+1 query problem, and why your ORM hides it

One query for the list, then one more per row, forever

Key takeaways
  • Loop bodies that touch the database are the smell.
  • Log your SQL in development — the count is the tell.
  • Fix it by fetching related rows in one query, not by caching the symptom.

You fetch 50 posts. Then, for each one, you read its author. That is 1 + 50 = 51 queries where 2 would do. It looks harmless because each individual query is fast. The problem is t…

Jul 6, 2026· 2 min read ·12 views

The sliding window, four patterns deep

Turning O(n·k) into O(n) by not throwing away work you already did

Key takeaways
  • When windows overlap, do not rebuild them — update them.
  • The inner while loop is still O(n): left only ever moves forward.
  • Contiguous means window; subsequence does not.

Most array problems have an obvious brute force answer: check every window, take the best one. It works, and it is O(n·k). Consecutive windows overlap almost completely. Only one e…