The bottom-up principles of unit testing, refactoring, and pragmatism

After years of coding and reading dev books I’ve distilled my coding principles down into these three simple principles: unit testing refactoring pragmatism I write these down in my notebook and repeat them to myself on a daily basis. These are my coding principles. It’s important to know your principles. Your principles act as a … Read more The bottom-up principles of unit testing, refactoring, and pragmatism

Multithreaded quicksort in C#

One day I decided to challenge myself by trying to implement multithreaded quicksort. I wanted to see how it would compare to the built-in sort function – Array.Sort(). I came up with two algorithms that were 2-4x faster than Array.Sort(): Top-down: divide-fork-sort-merge Bottom-up: quicksort with fork-on-recursion After continuing to tinker, in attempts to further optimize, … Read more Multithreaded quicksort in C#

Improve your code and design intuition

You should be able to develop your code and design sense to the point where you can look at anyone’s code (including your own) and intuitively know if it’s good or not. This is a critical skill to have if you are responsible for doing code and design reviews. Here’s some suggestions based on what … Read more Improve your code and design intuition