Photo: Remember why you started
Photo by Cristofer Jeschke on Unsplash

Why do I write?

If you want to learn something, read about it. If you want to understand something, write about it. If you want to master something, teach it. ― Yogi Bhajan

When it comes to software development, I am interested in almost every topic there is. For over a year, I've been collecting articles, books, and courses. My list gets larger every week, but I'm not doing a great job in crossing things off. That needed to change...

In my day job, I get to wear a few hats. I started my career as a web developer and focused on typical problems: how to build a website, how to host it, how to build good UX/UI and "cut" PSDs into HTML/CSS, and how to scale the backend, caching, optimizing queries, load balancing, etc.

Later in my career, I transitioned towards backend development and worked on scale, performance, compilers, Linux systems, distributed caching, etc.

Early in my career, I focused on raw software development skills in PHP and got to a stage where I was very good. I was, however, in a bubble, as PHP overly simplified many aspects of software development. I, of course, did not know that at the time.

I was unable to recognize my lack of skill.

Later in my career, as I got the opportunity to work with brilliant people, I started to transcend the advanced beginner stage I was unwittingly in.

Luckily, I had always pushed myself to be better, to learn as much as I could, and didn't fall into the trap of the Expert Beginner. (This is a dangerous one; I recommend reading the attached article / I will probably write something about this at some point.)

But I digress...

I learn best by writing things down and going over notes a few times. When it comes to software engineering skills, I learn best by reading docs, building something, struggling a little, reading some more, and so on - until that something is more or less built.

Instead of collecting notes in a vacuum, I figure, why not compile my learnings into a public resource that anyone could benefit from? Why not write in public!?

The best part about it is that writing in public will also make me pay extra attention to what I learn, how well I comprehend it, how well I can explain it. At the end of the day, it's a win-win situation!

There is so much I want to cover: APIs, performance and tuning, scaling, databases, Kubernetes, Bazel, programming languages (JAVA, Kotlin, Golang, Rust, Python, Bash, Javascript/Typescript, Flutter, Clojure), interpreters and compilers, system design, algorithms and data structures, Object-Oriented Programming, security, operating systems, systems engineering, telemetry, etc.

Over the next year, I plan to systematically develop these topics and more right here on this site.

If you want to follow me along on my journey, subscribe to my newsletter.

Thanks!

If you enjoyed this post, please share it with your friends!