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.
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:
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.
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.