Notes

Blog

Technical notes on software engineering, distributed systems, agent tooling, and what I learn while building.

Archive

Writing index

Mastering Unit Testing and BDD with xUnit and SpecFlow in .NET 9: A Comprehensive Guide

Table of Contents Introduction: Why Testing Saves Your Project Unit Testing with xUnit in .NET 9 Behavior-Driven Development with SpecFlow Code Coverage: Measuring and Improving Test Quality Surviving Critical Scenarios: Real-World Testing Patterns Comprehensive Example: Building a Tested E-Commerce System Best Practices and Advanced Patterns Conclusion and Next Steps

xunitspecflowdotnet9unit-testingbddtdd

Design Patterns: Your First Step Toward Professional Software Engineering

Picture this scenario: You’re building a messaging app for your software engineering class. At first, everything seems straightforward - users can send messages to each other, and you store everything in a simple database. But then requirements start piling up. Users want group chats, message reactions, read receipts, typing indicators,...

design-patternsjavaobject-orientedprogrammingsoftware-engineeringsingleton

The Clique Partition Problem: Dividing Networks into Perfect Communities

Imagine you’re analyzing a social network where people are connected based on mutual friendships. You want to divide this network into groups where everyone within each group knows everyone else - perfect communities where all members are mutually connected. This is the essence of the Clique Partition Problem: finding the...

clique-partitiongraph-algorithmsnp-completesocial-networksclusteringcombinatorial-optimization

Advice Complexity in Online Algorithms: When Knowing the Future Makes All the Difference

Picture this scenario: You’re managing a cache for a web server, and requests are coming in real-time. You have limited memory and must decide which pages to keep cached and which to evict, but you have no idea what the next request will be. This is the essence of an...

online-algorithmsadvice-complexitycompetitive-analysisalgorithm-engineeringtheoretical-computer-scienceoptimization