“Anything worth doing is worth doing poorly - until you learn to do it well.” - Steve Brown.



Hi! I’m Ruslan Spivak, a 38 year old Software Team Lead from Canada, and if you’ve ever asked yourself:

  • “How do I create my own programming language?”
  • “How does an interpreter, compiler, or VM work and how do I create one?”
  • “How do I implement my own database and a small operating system?”
  • “How do I code my own web server?”
  • “How do I write my own web framework?”

Or if you’ve just wanted to know more about software development in general and how to become a better developer - then you are in the right place!

Here’s the deal:

I believe to become a better developer you MUST get a better understanding of the underlying software systems you use on a daily basis and that includes programming languages, compilers and interpreters, databases and operating systems, web servers and web frameworks. And to get a better and deeper understanding of those systems you MUST re-build them from scratch.

And if you don’t believe that’s the way to go then check out what this guy has to say about it:

“I hear and I forget. I see and I remember. I do and I understand.” - Confucius

Convinced now? Read on!

So, to become better you need to understand better, and to understand better you must re-build pieces of those systems from scratch. And that is exactly what I am going to do on this blog. I am going to show you how to get started and keep going, so you too, could become a better developer and take control of those systems. And I also plan to learn a ton with you and from you. You can take a look at my different attempts to build and re-build different components on GitHub.

BTW, I’m writing a book called “Let’s Build A Web Server: First Steps” that explains how to write a basic web server from scratch. Subscribe to the mailing list to get the latest updates about the book.

My Story

I moved to Canada seven years ago and now I live near beautiful Toronto with my wife and two kids. By day I work as a Software Team Lead and by night I plan how to become a superhuman, in my dreams of course :)

I’ve learned that, at least for me, the best way to learn how a software system works is to try and deconstruct it and re-build it in its simplest form. So if you are anything like me then please read my posts, re-build something you’re interested in and tell me about your experience.

Thanks for dropping by and taking the time to read this. I hope to see you on the blog sometime soon. Cheers!