Generated by All in One SEO v4.9.5.1, this is an llms.txt file, used by LLMs to index the site. # A CODERS JOURNEY Life lessons from a coder ## Sitemaps - [XML Sitemap](https://acodersjourney.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Temperature vs Top P in Amazon Bedrock — What's the Actual Difference?](https://acodersjourney.com/temperature-vs-top-p-in-amazon-bedrock-whats-the-actual-difference/) - Temperature vs Top P in Amazon Bedrock — What's the Actual Difference? If you’ve worked with Amazon Bedrock(or any large language model, for that matter), you’ve probably run into two parameters that sound deceptively similar: Temperature and Top P. Both control “randomness” in model outputs. In practice, many Bedrock models expose both, although the exact - [Top 20 C++ multithreading mistakes and how to avoid them](https://acodersjourney.com/top-20-cplusplus-multithreading-mistakes/) - Top 20 C++ Multithreading Mistakes and How to Avoid Them (2026) | Updated for C++20 🧵 Top 20 C++ Multithreading Mistakes A comprehensive guide to avoiding common pitfalls in concurrent C++ programming Updated for C++20/23 • Best practices • Production-ready code ✨ Refreshed for C++20/23 📅 Updated March 2026 ⏱️ 25 min read Threading is - [Understanding selection sort for coding interviews](https://acodersjourney.com/selection-sort/) - Explanation of Selection Sort for coding interviews using "Solve It On Paper" method. - [How to send email using C# and Outlook.com](https://acodersjourney.com/how-to-send-email-using-csharp-and-outlook/) - This is a note to myself. I recently had to write this code for the third time in my life in the last 11 years because I did not save it somewhere consumable. So putting it on my blog for future reference. Why Send Email From C# Code ? There are many email automation services - [Understanding Insertion Sort for coding interviews](https://acodersjourney.com/insertion-sort/) - A visual walk through of insertion sort algorithm that makes it super easy to understand for your next programming interview. - [Understanding Quick Sort for coding interviews](https://acodersjourney.com/quick-sort/) - A visual introduction to the quick sort algorithm using "solve it on paper" method. Useful for your algorithms courses as well as coding interviews. - [Understanding Bubble Sort for coding interviews](https://acodersjourney.com/bubble-sort/) - Explanation of Bubble Sort for coding interviews using "Solve It On Paper" method. - [35 things I learnt at Game Developer Conference (GDC) 2018](https://acodersjourney.com/gdc-2018-35-key-insights/) - This was the first time I visited Game Developer Conference (GDC 2018). I’ve been working in the game cloud services and analytics space for almost 3 years now and most of our work has been for Microsoft’s AAA game titles like Halo, Gears of War and Forza Motor sports. This was really the first opportunity - [Generate binary numbers using a queue](https://acodersjourney.com/generate-binary-numbers-using-a-queue/) - Problem Generate binary numbers from 1 to any given number, "n", using a queue. Function Signature List GenerateBinaryNumber(int n) Example Input and Output n = 1 => (1) n = 3 => ( 1, 10, 11) Problem Solving Strategy Assuming you've never encountered this problem before and don't have much experience using stacks and queues, - [10 differences between static and dynamic libraries every C++ developer should know](https://acodersjourney.com/cplusplus-static-vs-dynamic-libraries/) - Should you distribute your C++ API as a static or dynamic library ? The answer to that question is not straightforward and will depend on a number of factors like: Does the client application using your library have size limitations on disk ? Does your client application need to reduce linking overhead ? Does you - [System Design Interview Concepts – Load Balancing](https://acodersjourney.com/system-design-interview-load-balancing/) - What is Load Balancing? Load balancing is one of the founding pillars of designing distributed systems. A load balancer simply distributes a set of requested operations (database write requests, cache queries) effectively across a set of servers. Here's an example of a client application accessing some server on the internet without Load Balancing. In this - [Top 25 C++ API design mistakes and how to avoid them](https://acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/) - For many C++ developers, API Design probably makes number 3 or 4 on their priority list. Majority of developers flock to C++ for the raw power and control it provides. Consequently, performance and optimization is what occupies the thoughts of these devs eighty percent of the time. Of course, there are aspects of header file - [20 ABI (Application Binary Interface) breaking changes every C++ developer should know](https://acodersjourney.com/20-abi-breaking-changes/) - What is an Application Binary Interface ? According to Wikipedia, " an application binary interface (ABI) is an interface between two binary program modules; often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.An ABI defines how data structures or - [How to capture C++ libcurl traffic in Fiddler ?](https://acodersjourney.com/capture-cpp-libcurl-traffic-in-fiddler/) - One of the engineers on my team stopped by today with an interesting problem. He was switching the http network stack in our SDK from casablanca to libcurl and needed to see the traffic in Fiddler for debugging. However, when he opened fiddler to capture the network traffic, he could only see the Tunneling happen.But - [How to capture C++ REST SDK ( Casablanca) traffic in Fiddler?](https://acodersjourney.com/capture-cpp-rest-sdk-traffic-in-fiddler/) - In my last article, we looked at how to capture libcurl traffic in Fiddler. Another equally popular http transport stack is the CPP REST SDK, a.k.a., Casablanca. We've used Casablanca widely across Microsoft on Windows and Xbox. A challenge that many folks face while using casablanca is how to actually see the http calls in - [The Worst Programming Interview Question I’ve Ever Seen !](https://acodersjourney.com/worst-programming-interview-question-ever/) - An interesting topic came up recently at work – one of my colleagues asked me - what is the worst programming interview question that you’ve faced ? I’ve been fortunate enough to have not faced any interview question that I thought was BS (except my first interview, which I’ll write about shortly). However, it did remind - [10 questions to ask yourself before choosing a NoSQL database](https://acodersjourney.com/10-questions-to-ask-yourself-before-choosing-a-nosql-database/) - So why am I writing this post? Is it because I think NoSQL solutions are inferior to RDBMS solutions? Certainly not ! Is it because I'm fixated on the SQL way of doing things and don't want to dive into the uncertainty of a relatively new technology ? Nope - not that either ! In - [System Design Interview Concepts – Database Sharding](https://acodersjourney.com/database-sharding/) - What is Sharding or Data Partitioning? Sharding (also known as Data Partitioning) is the process of splitting a large dataset into many small partitions which are placed on different machines. Each partition is known as a "shard". Each shard has the same database schema as the original database. Most data is - [System Design Interview Concepts – Eventual Consistency](https://acodersjourney.com/eventual-consistency/) - What is Eventual Consistency? Distributed systems will face network partitioning at some point in their life cycle. When network partitioning happens, CAP theorem dictates that if you pick availability, you cannot have true(strong) consistency, but you can still provide "eventual consistency". The idea is that every node in the distributed system is always available to - [System Design Interview Concepts – CAP Theorem](https://acodersjourney.com/system-design-interview-cap-theorem/) - What is CAP theorem? CAP Theorem has become the holy grail of distributed system design in recent years. CAP theorem states that any distributed computer system can support only any two among consistency, availability, and partition tolerance. Let's explore the meaning of these properties in a little more detail. Consistency Consistency implies the following: When - [Top 20 C pointer mistakes and how to fix them](https://acodersjourney.com/top-20-c-pointer-mistakes/) - After I graduated college with a BS in Electrical Engineering, I thought that was the last time I was going to program in "C". I could not have been more wrong. Throughout various points in my career, I've encountered and wrangled with a decent amount of "C" code either due to legacy or portability reasons. Pointers - [System Design Interview Concepts - Consistent Hashing](https://acodersjourney.com/system-design-interview-consistent-hashing/) - Consistent hashing is one of the techniques used to bake in scalability into the storage architecture of your system from grounds up. In a distributed system, consistent hashing helps in solving the following scenarios: To provide elastic scaling (a term used to describe dynamic adding/removing of servers based on usage load) for cache servers. Scale - [Coding Interview Question - Optimizing toy purchases](https://acodersjourney.com/coding-interview-question-optimizing-toy-purchases/) - Problem My son gets a weekly allowance of $15. He takes that money every Friday and goes to Toys'R'Us to find two toys he can buy for $15. He wants to use all his money and does not want any changes left over. Also he wants to buy exactly two toys. Can you write a - [C++11 Multithreading Tutorial via Q&A - Thread Management Basics](https://acodersjourney.com/c11-multithreading-tutorial-via-faq-thread-management-basics/) - In the highly acclaimed book "The Seven Habits Of Highly Effective People", Steven Covey states that we can greatly amplify our chances of success when we "Begin with the End in Mind". For me, this means starting with a set of questions whenever I'm trying to learn or teach something new. I've had very good - [6 Tips to supercharge C++11 vector performance](https://acodersjourney.com/6-tips-supercharge-cpp-11-vector-performance/) - Vector is like the swiss army knife of C++ STL containers. In the words of Bjarne Stroutsoup – “By default, use Vector when you need a container”. For mere mortals like us, we take this as gospel and just run with it. However, Vector is just a tool and like any tool, it can be - [Event based synchronization of threads with main game loop](https://acodersjourney.com/event-based-synchronization-of-threads-with-main-game-loop/) - Typically, Game Engines want their telemetry data sent in a side thread which runs independently (asynchronously) from the main game loop. The telemetry thread packages up data as it comes in and executes a send via HTTP or websockets every 30 seconds or so. This usually works fine when you’re using Telemetry for post analysis - [Selecting an API ? Watch out for these 9 Red Flags !](https://acodersjourney.com/selecting-api-watch-9-red-flags/) - Choosing an API for your new project is a lot like marriage. Why ? Because the right choice can significantly improve the quality of your software. On the other hand, a wrong choice has the potential to ruin your software or make maintenance costs go through the roof. Also, divorcing an API can be super - [Top 15 C++ Exception handling mistakes and how to avoid them.](https://acodersjourney.com/top-15-c-exception-handling-mistakes-avoid/) - Do you use exception handling in your C++ code? If you don’t, why not? Perhaps you’ve been conditioned to believe that exception handling is bad practice in C++. Or maybe you think that it’s prohibitively expensive in terms of performance. Or maybe it’s just not the way your legacy code is laid out and you’re - [How To Connect To Azure Compute Emulator Running On A Remote Computer](https://acodersjourney.com/how-to-connect-to-azure-compute-emulator-running-on-another-remote-computer/) - We came across an interesting issue at work today. My co-worker had a prototype of our ingestion service running inside azure compute emulator on his local machine. The Ingestion service hosts an websocket endpoint that the Xbox console clients needs to connect to for transmitting data. Once he was done with testing, I wanted - [The Quest For A Perfect C++ Interview Question](https://acodersjourney.com/the-quest-for-a-perfect-c-interview-question/) - Is there such a thing as a perfect interview question? Is there a magic silver bullet that enables you to hire star performers and call an end to all your engineering woes? I don't think so. Or that is the conclusion I've reached every time I debated and searched the answer to this question with - [Top 10 C++ header file mistakes and how to fix them](https://acodersjourney.com/top-10-c-header-file-mistakes-and-how-to-fix-them/) - C++ header files is a rather mundane topic by most standards. Talking about header files is not as interesting as discussing complex search algorithms or debating design patterns . It’s not an academically stimulating subject to teach, so most CS programs do not emphasize header file design in their courses. However, not having the correct - [Top 10 dumb mistakes to avoid with C++ 11 smart pointers](https://acodersjourney.com/top-10-dumb-mistakes-avoid-c-11-smart-pointers/) - I love the new C++ 11 smart pointers. In many ways, they were a godsent for many folks who hate managing their own memory. In my opinion, it made teaching C++ to newcomers much easier. However, in the two plus years that I've been using them extensively, I've come across multiple cases where improper use - [Transient Errors Are Evil - How to Handle them With Exponential Backoff in C#](https://acodersjourney.com/26-handle-transient-errors-in-c/) - Transient errors are intermittent errors caused by a short lived outage of a specific resource or service. For example, a network route might be unavailable for a few seconds or milliseconds, a web service may be experiencing high load and sending intermittent HTTP 503-Service unavailable messages or a database you’re trying to access might - [A Concise Guide to Transient Fault Handling Application Block](https://acodersjourney.com/transient-fault-handling-application-block/) - Transient errors are intermittent errors caused by a short lived outage of a specific resource or service. In most cases, if you retry the operation after a few seconds, the error disappears. Transient errors are often beyond the control of the application programmer. However, every attempt should be made to make the application robust enough - [Polly - A Framework for Policy Based Retries of Transient Errors in C#](https://acodersjourney.com/polly-framework-policy-based-retries-transient-errors-c/) - In the last few posts we looked at two ways of handling Transient Errors. The first post showed how we can write a custom retry logic for transient errors with exponential back-off. The second post showed how we can customize the Microsoft Azure Transient Fault Handling Block for dealing with transient errors. In this - [C++ 11 Auto: How to use and avoid abuse](https://acodersjourney.com/c-11-auto/) - My first encounter with the C++ 11 Auto keyword was in less than favorable circumstances. I had just moved to a new team, ventured into an area of hardcore C++ network and protocol development for Xbox, and struggling to understand some complicated game engine infrastructure like Halo and Gears of War. To top it all, - [Are you safe from a market collapse if you're a long term investor ?](https://acodersjourney.com/safe-market-collapse-youre-long-term-investor/) - It's a pretty controversial question to start with. Nonetheless, it's one of the most critical questions that crops up in people's mind when they're thinking about making any investment decisions. Popular Media often touts that long term investors can ignore the daily , monthly or yearly market fluctuations. But that begs the question - who - [Top 10 Financial Mistakes Every Software Developer Should Avoid](https://acodersjourney.com/top-10-financial-mistakes-every-software-developer-should-avoid/) - One of my classmates, we’ll call him Ron, graduated out of college with flying colors and joined Microsoft at age 22. Once Ron’s bonus and stock awards kicked in after 9 months, the first thing he bought was a Corvette for around 65K. The car was financed. Ron, also happened to have about 45K in - [10 books to supercharge your development career](https://acodersjourney.com/10-books-to-supercharge-your-development-career/) - As Developers, we love to write code , we love working on tough algorithmic challenges , and we love to design and build cool new tech. We hate having to deal with the mundane issues of daily life, bureaucracy at work and extraneous engagements (like non-productive meetings). When I first joined Microsoft straight out of - [Preparing for a software development career in college](https://acodersjourney.com/preparing-for-a-software-development-career-in-college/) - So you’ve finally decided that you want to be a software engineer ! You've also found the right school to get trained in software engineering. But is that enough to guarantee that you’ll be able to successfully launch your software development career ? !!! That was a rhetorical question of course. No, it’s not - [University selection guide for aspiring programmers](https://acodersjourney.com/university-selection-guide-aspiring-programmers/) - University selection plays a pivotal role in shaping your career during the initial years following graduation. It'll dictate everything from the choice of employers you will have to how much money you make post graduation. Done right, it can give you the necessary boost to successfully launch your career. Done wrong, you can face a - [Should you choose Software Engineering as a career ?](https://acodersjourney.com/choose-software-engineering-career/) - If you've found this page, you're probably contemplating a career in software development. Maybe you're in high school trying to decide on a college major, a parent trying to help your child choose a major or perhaps you're a working professional looking for a career change. I've personally ## Pages - [ABOUT](https://acodersjourney.com/about/) - Deb Haldar is a Principal Group Engineering Manager at Microsoft, leading developer-focused engineering teams in the Xbox ecosystem. He’s passionate about building high-quality systems, growing leaders, and sharing practical lessons on technical skills, career growth, and personal finance — especially for students and early in career professionals. - [Boost C++11 Vector Performance](https://acodersjourney.com/boost-c11-vector-performance/) - Given below is the source code that you can use to profile c++ 11 vector performance on your system. You'll need to download https://github.com/KjellKod/Stopwatch in addition to the code below. #include "stdafx.h" #include "StopWatch.h" #include #include #include using namespace std; struct BigTestStruct { int iValue = 1; float fValue; long lValue; double dValue; - [Implementing a Smart Pointer Using Reference Counting](https://acodersjourney.com/implementing-smart-pointer-using-reference-counting/) - // CustomSmartPointer.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include using namespace std; /* Reference Count: A simple class for maanging the number of active smart pointers*/ class ReferenceCount { private: int m_RefCount{ 0 }; public: void Increment() { ++m_RefCount; } int Decrement() { return --m_RefCount; } ## Categories - [ALL](https://acodersjourney.com/category/all/) - Every post by default are under this category. - [PERSONAL FINANCE](https://acodersjourney.com/category/all/personal-finance/) - [ENGINEERING MANAGEMENT](https://acodersjourney.com/category/all/engineering-management/) - [CODE CRAFT](https://acodersjourney.com/category/all/code-craft/) - [SYSTEM DESIGN](https://acodersjourney.com/category/all/system-design/) - System Design Interview Questions and concepts - [C++](https://acodersjourney.com/category/all/cpp/) ## Tags - [C++](https://acodersjourney.com/tag/c/) - [C++ 11](https://acodersjourney.com/tag/c-11/) - [C++ 14](https://acodersjourney.com/tag/c-14/) - [Transient Errors](https://acodersjourney.com/tag/transient-errors/) - [CSharp](https://acodersjourney.com/tag/csharp/) - [Azure](https://acodersjourney.com/tag/azure/) - [Programming Interviews](https://acodersjourney.com/tag/programming-interviews/) - [Debugging](https://acodersjourney.com/tag/debugging/) - [API Design](https://acodersjourney.com/tag/api-design/) - [Threads](https://acodersjourney.com/tag/threads/) - [Synchronization](https://acodersjourney.com/tag/synchronization/) - [System Design Interviews](https://acodersjourney.com/tag/system-design-interviews/) - [Game Development](https://acodersjourney.com/tag/game-development/) - [GDC](https://acodersjourney.com/tag/gdc/) - [NoSQL](https://acodersjourney.com/tag/nosql/) - [Queue; Binary Numbers; Coding Interviews](https://acodersjourney.com/tag/queue-binary-numbers-coding-interviews/)