keep on building

Oct 4, 2025

who you are. if you are an engineer, you are essentially a builder. you put together the pieces that are generally researched by the scientists to make something work.

learn by doing. avoid getting in the tutorial hell. "tutorial hell" is when you keep thinking that you'll get good by watching tutorials - it is a way to avoid building (and many times failing too) so you get a false sense of growth.

  • "oh just this one AWS certification and I am good to go"
  • "this kubernetes course is all I need"
  • docs are your friend. if you are working on a project and you need to integrate a message queue - head over to Apache Kafka or RabbitMQ's docs (since they are quite popular and have active communities) and spend time learning about each. how are they fundamentally different? why does Kafka sound like a better choice than RabbitMQ for your use case or vice-versa?

    worst case scenario is that you'll realize Kafka was not such a good choice after all - but now you know. for the next project, you'll make a better choice. that's learning.

    LLMs are your friends too! disclaimer: I do not think you should use LLMs (and recently, agents like Cursor, Codex, Claude Code) in the following ways:

  • "make an operating system from scratch"
  • "write a react frontend template for a blockchain app"
  • "write a Django backend with celery to offload ML heavy tasks to different workers"
  • "integrate a Apache Kafka as a message queue with a react frontend"
  • while abstracting is good and I am all for it - abstracting at such a high level (if you are not staff engineers) is quite detrimental to your growth and the project because there will come a time when you start losing track of your codebase.

    this was termed as "vibe coding" - tbh I am not a fan of it because the term implies there is some "coding" happening.

    but if you use LLMs for stuff like pulling up documentation, code snippets, trying to understand how something works, brainstorming - that's fine, and highly encouraged.

  • "summarize all the methods in the HashMap class for Java"
  • "explain the lambda syntax in python"
  • "what tailwind classes to center a div with flex?"
  • "for this codebase, what are the relevant files for when the user fails to login?"
  • "for this 1400 line JavaScript class file, generate a sumnmarized documentation explaining in brief what each method does?"
  • the above are very good use cases for LLMs where you are not making a knowledge jump but rather trying to actually increase productivity by reducing the time to pull up documentation and going through a 1400 line class file.