Articles

Rounding Numbers: There’s More Than One Right Answer

2 minute read

Programming languages often use banker’s rounding - rounding to the nearest even digit - which means 1.25 becomes 1.2 while 1.35 becomes 1.4, contradicting the familiar rule of always rounding 5 up

Capacity Planning: Understanding the 80% Server Utilization Rule

5 minute read

Why there is a recommendation of keeping server utilization below 80%? Using basic queueing theory, we explore how request latency grows exponentially as servers get busier, and why modern autoscaling systems trigger even earlier at 60-70%.

Luhn Algorithm: Credit Card Number Validation in Nanoseconds

5 minute read

Ever mistyped your credit card number and gotten an instant error? That split-second check isn’t database magic - it’s clever 1950s math that catches typos faster than you can blink. From credit cards to ISBNs, this elegant checksum algorithm silently guards against human error millions of times each day.

Rendezvous Hashing: The Path to Faster Hashes Calculation

10 minute read

Examines how to optimize compute complexity of Rendezvous hashing. Explores different approaches to make the process more computationally efficient while maintaining fair data distribution, ultimately proposing an improved method that significantly reduces processing overhead.

Recursive vs. Iterative DFS: A Performance Surprise

16 minute read

Exploration of DFS implementation performance across various binary tree structures. Article challenges common assumptions about recursion and iteration, showing surprising insights into how tree characteristics and CPU optimizations influence implementation performance.

BDD: Behind the scenes (Part 2)

11 minute read

In Part 2 of BDD series, we dive into a practical example using a simple ToDo application. We explore the implementation of BDD tests using Python, Behave, and Selenium, demonstrating how to structure a BDD project, write Gherkin scenarios, create step definitions, and implement Page Objects. The article covers key components like hooks, service registry, application controller, and WebDriver factory, providing insights into best practices for BDD implementation in web application testing.

BDD: Behind the scenes (Part 1)

11 minute read

Behavior-Driven Development (BDD) is an agile software development process that enhances collaboration between technical and non-technical team members. It focuses on defining application behavior through universally understandable examples, improving communication and shared understanding of project goals. This article explores BDD for web applications using Python, covering key components like Gherkin, Cucumber/Behave, Selenium, and Docker.

Welcome to My Blog

less than 1 minute read

Welcome to the first post on my blog. Stay tuned for more content!