Hi, I’m MiddleRaster, a retired software engineer, evidently slightly dyslexic. Welcome to my pages.

I’ll be discussing things I’ve learned in my 35-year career, including 4 completely original ideas:

  1. How to mock anything in C++: Test Base Class Injection
  2. A C++ technique where circular dependencies are compiler errors
  3. How to predict when a project will be done despite poor estimates
  4. The metric for software development

What you get when combining ideas 3 & 4: an enhanced Portfolio Alignment Wall.
My thoughts on Kanban and Queueing Theory.
I have a thing or two to say about mathematics, too.
Here are my test-driven development (TDD) tutorials.

Stay tuned for more.


A bunch (eventually) of repos that I’ve been working:

Project Description
OdrCop3 a tool to detect ODR violations on Windows, using LLVM/Clang’s AST parser
TBCI Test Base Class Injection: my favorite mocking technique
tdd20 a teeny-tiny, macro-free, module-only TDD/unit testing harness. My daily driver
notepad– I didn’t like Win11’s notepad, so I wrote the old one
LinkValidator Validates recursively that links on a webpage are valid



Change Log:

        Date         Description
2026-11-01 Added 3 different BDD variations (Given/When/Then, Describe/Context/It and Best of Both Worlds) to my tdd20 test harness in the Client Extensions folder
2026-10-24 Added essay about an enhanced Portfolio Alignment Wall
2026-09-17 Added a bit more retirement math regarding if/when to invest in a Roth IRA
2026-03-04 Added a little bit of retirement math
2026-02-27 Added landing page for TBCI with samples, and showed how to mock the STL
2026-02-22 Added a few real-life ABA charts
2026-02-12 Added a kata to refactor some awful MSDN sample code, including using TBCI
2026-02-07 Added the Eight Queens Refactoring kata
2026-02-06 Added the Eight Queens Puzzle kata
2026-01-30 Added some math on whether ABA is gameable
2026-01-19 Added an essay on THE metric for software development
2026-01-13 Added thoughts on Kanban
2026-01-12 Added a Kanban Simulator
2026-01-12 Added an essay on how low WIP lilmits can go
2025-12-30 Added an essay on forecasting good ship dates despite poor estimates
2025-12-25 Added an easy-to-remember proof of Fermat’s Little Theorem
2025-11-20 Added the Bowling Game kata: state machine using std::variant
2025-11-13 Added math article on the integral of 1/x
2025-10-27 Added a C++ technique where circular dependencies are compiler errors
2025-10-10 Added the Bowling Game kata: state machine using std::unique_ptr
2025-10-09 Added the Bowling Game kata: array of frames
2025-10-07 Added the Bowling Game kata: array of ints
2025-10-02 Added Roman Numerals kata
2025-10-02 Added Prime Factors kata
2025-10-02 Started c++ katas
2025-10-02 Added TDD Tutorial

​ ​ ​ ​