An Eventually Consistent Blog by Giannis Georgopoulos

Hi, I’m Giannis Georgopoulos

I’m a software architect and backend engineer writing about real-world distributed systems, production-ready APIs, and scaling engineering teams.

You’ll also find reviews of courses I’ve taken as part of my MSc at the Georgia Institute of Technology.

Latest Posts

  • Light–Dark Refactoring Technique in .NETSafe Refactoring in .NET with Light/Dark Mode and Feature FlagsYou’ve been forced to maintain a poorly written legacy app; spaghetti code, no tests, and every new feature breaks two existing ones. Team morale is at rock bottom. New features take forever to ship. Regression bugs are constant. You gather your arguments and head to management. You: We need time to refactor. Management: What are you talking about? You: Let us refactor. We’ll ship faster, with fewer bugs, and engineers won’t want to quit. I can do it. Management: ...Okay. Now comes th
    Refactor critical business flows in .NET using feature flags and a low-risk technique called light–dark.

  • Building “Production-Grade” APIs in .NETBuilding “Production-Grade” APIs in .NET – IntroSeries: Building "Production-Grade" APIs in .NET 1. Intro - Building “Production-Grade” APIs in .NET 1. Part 1 - Designing Clean, Intuitive APIs That Don’t Confuse Consumers 1. Part 2 - A Professional Looking API 1. Part 3 - Logging Like a Pro in .NET 1. Part 4 - Observability .NET Many engineers build and deploy APIs into production. So we have an API running in production — does that mean it’s truly production-grade? More often than not, the answer is no. We write the code, test it lo
    Shipping an API that returns 200 OK isn’t enough. This post kicks off a series on what “production-ready” really means—from resilience and observability to security and CI/CD.

  • Level Up Your Integration Tests in .NET: Record, Replay, RelaxLevel Up Your Integration Tests in .NET: Record, Replay, RelaxSick of flaky integration tests? You run your tests once, they pass. Run them again, they fail. Maybe the third-party API timed out. Or the response changed. Or your internet blinked. Integration tests should give you confidence, not stress. That’s where deterministic integration testing comes in. Imagine recording your API interactions once and replaying them forever — offline, fast, and predictable. No network. No surprises. That’s exactly what Vcr.HttpRecorder does. It’s inspired by the
    Use HttpRecorder to make your integration tests fast, deterministic, and easy to maintain.


OMSCS Course Reviews

  • CS6200 – Introduction to Operating SystemsCS6200 - Introduction to Operating SystemsIntroduction I took GIOS in the Spring 2023 semester as part of my master's at Georgia Tech University, and it was my first course in the program. It was highly recommended for a first course in the Slack group and had great ratings in OMSCS Hub, and indeed those were on point! The course was a great start in the program and now in my turn, I also highly recommend it to anyone interested in Computing Systems Specialization as a first course, and also provide some tips that helped me finish th

  • CS6290 – High Performance ComputingCS6290 - High Performance Computer ArchitectureIntroduction I believe that if you program computers, even using high level languages that abstract away most of the details of the hardware, you must have at least a basic knowledge of what is happening under the covers. This belief, coupled with the pretty good rating of HPCA available here led me to choose it as my third course in the OMSCS program. Highlights This course assumes a foundational understanding of computer architecture, expecting students to have completed an undergraduate

  • CS7210 – Distributed ComputingCS 7210 - Distributed ComputingIntroduction I recently finished CS 7210: Distributed Computing in the OMSCS program, and I walked away with an A — but not without earning every bit of it. This course has easily been the most difficult, most time-consuming, but also my favorite so far. If you're working in software engineering today — especially with microservices, cloud computing, Cosmos DB, etc. — you’re already dealing with distributed systems. This course helped me understand what’s really going on under the hood. It wa

  • CS6210 – Advanced Operating SystemsCS 6210 - AOSI wrapped up CS 6210: Advanced Operating Systems recently and I genuinely loved it. While not as intense or brutal as CS 7210 (Distributed Computing), this course still packs a punch, just in a very different way. Where CS 7210 is all about large-scale distributed correctness and fault tolerance, CS 6210 dives deep into the low-level optimizations that make systems fast, efficient, and scalable. Think thread scheduling, memory management, barrier synchronization, RPC internals, etc. The Proje

  • CS6422 – Database System ImplementationCS 6422 - Database System Implementation ReviewIntroduction In Spring 2025, I took CS 6422: Database System Implementation. It was the first time the course was offered, so there were no reviews yet on OMSCentral or OMSCS Hub. When I was planning my courses, CS 6400: Database Systems Concepts and Design didn’t seem like the right fit for me because it focuses on foundational topics I already know. Database Systems Implementation, on the other hand, looked like a deeper, more technical course that filled a gap in the program. Highligh