Update: I'm Teaching Software Design & Architecture Full-time @ khalilstemmler.com

Last updated Apr 6th, 2022
Focusing all my efforts to teaching software developers how to write testable, flexible, maintainable code.

Well, everybody. The time has come.

March 31st, 2022 was my last day at Apollo GraphQL. After about 3 years, countless blog posts, 4 talks, 3 trips, I'm stepping away from my Apollo fam to focus on teaching devs how to write testable, flexible, maintainable code.

I'm going to miss the team; and while I believe that the supergraph is seriously the future, duty calls. I'm returning to focus primarily on my book, courses, blog, videos, and open source work.

Why I started this blog

I started this blog in 2019 after having successfully tanked the quality of the code for my own startup company called Univjobs.

Freshly graduated from university, I was surprised at how ill-prepared I actually was in the craft of software design.

Not knowing how to organize business logic, write tests, or write code in a way that it gets better instead of worse after time, I sought out answers. I decided that I was going to study, practice, and master the craft of software design.

Best hits

The most popular articles I've written from 2019-2021 are:


Documenting my learnings here on the blog and within solidbook.io (a guide to software design and architecture), over 2500 developers have purchased the book!

I've been blown away by the feedback I've received even though it's only about halfway done (and only a first draft)! Not only that, but the open source project we build in the book, DDDForum, has over 1200 stars and 240 forks.

Thank you everyone for your support, feedback, and PATIENCE - especially you early book readers. I appreciate you tremendously.

To mastery

β€œRule of thumb: The more important a call or action is to our soul's evolution, the more Resistance we will feel toward pursuing it.” ― Steven Pressfield, The War of Art: Winning the Inner Creative Battle

Complexity is chief antagonist of well-crafted software. A naturally occuring phenomenon, if we do nothing about it, it will only get worse. To you, the reader:

  • who is learning how to write code that fans the flame of complexity
  • who is thinking strategically about feature-development because you know that "just making it work" once != good code
  • who is learning how to use tests to gain consistency and reliability in their work

To you developers - you who feel the pull...

... where are we going?

To mastery.


Liked this? Sing it loud and proud πŸ‘¨β€πŸŽ€.

Stay in touch!

About the author

Khalil Stemmler,
Software Essentialist ⚑

I'm Khalil. I turn code-first developers into confident crafters without having to buy, read & digest hundreds of complex programming books. Using Software Essentialism, my philosophy of software design, I coach developers through boredom, impostor syndrome, and a lack of direction to master software design and architecture. Mastery though, is not the end goal. It is merely a step towards your Inward Pull.

View more in Life

You may also enjoy...

A few more related articles

Why You Have Spaghetti Code
Code that gets worse instead of better over time results from too much divergence & little convergence.
Reality β†’ Perception β†’ Definition β†’ Action (Why Language Is Vital As a Developer)
As developers, we are primarily abstractionists and problem decomposers. Our task is to use language to decompose problems, turnin...
The Code-First Developer
As you improve as a developer, you tend to move through the 5 Phases of Craftship. In this article, we'll discuss the first phase:...
Object Stereotypes
The six object stereotypes act as building blocks - stereotypical elements - of any design.