Skip to main content

Welcome

There's a quiet magic in the act of writing things down. Not for mere knowledge preservation; not for an audience - but for the simple reason that explaining something is the truest test of understanding it.

If I were to choose one thing I am truly passionate about in my life, it would be learning. When you learn a new thing, your mind broadens. Your consciousness expands, and endless possibilities open. Learning is much more than simply developing a new skill. It is an exploration of life fueled by human curiosity.

It is my passion for learning that led me to create this website - a living repository of thought. This is my digital garden: a personal knowledge base strung together along my journey of learning to build software. I am building it for myself - but hopefully, you might find it useful too.

Note

This entire website is still work in progress - I have started working on it recently. Some pages might be incomplete or missing.

Explore

As it is common with knowledge bases, they tend to become large and unwieldy with time. To counter that, below you will find a brief overview of each major category covered.

Algorithms & Data Structures

Problem solving is the foundation of software engineering. It is easy to forget, among all the layers of abstraction we have built over the years, that the essence of programming is effective usage of loops and if statements.

When I was first introduced to algorithms & data structures, I quickly developed a loathing for the topic. Why spend hours solving riddles instead of building something cool? I still think today that practical skills and technical knowledge are more important - but with time, I developed an intellectual curiosity about algorithms and revisited the topic.

Studying algorithms & data structures because I wanted to was a completely different experience. Instead of a rat's race to become the best riddle-solver of them all, it became a slow-paced, thoughtful exploration. I encourage you to take a similar approach - the journey matters more than the destination.

  • Learning Journey - A structured learning path that takes you through the fundamental patterns that appear in the vast majority of coding problems. The map I wish I'd had when I started.
  • Algorithm Bible - Deep dives into individual algorithms, meant as a reference rather than learning material.

Tech Stack

Documentation explains syntax well - but it is still somewhat lacking when it comes to building conceptual understanding. To truly understand a language or framework, you must dig through the layers of abstraction and see how things work under the hood. This section documents my attempts to do just that - strip away the mystery, asking why for every how.

Here is a list of languages / frameworks currently covered:

FrontendBackendData
CSSNode.jsMongoDB
JavaScriptPostgreSQL
React
React Native

Journal

There is room for creative writing even in the world of tech. These are my free-flowing reflections on the craft of building software - some technical and detailed, others more philosophical and abstract.

Journal →

whoami

My name is Harjeet. I am a software engineer, a yoga teacher, a musician and a writer. How I manage to fit all of those into a single life, I myself do not know. I live to learn, to teach, and to create. I am also passionate about travelling, getting to know new cultures, and learning languages.