In the later years of my undergraduate studies I was lucky enough to have surrounded myself with mentors and peers who taught me not to chase after thin desires, to not become the machine, to cultivate confidence, invest time in forging relationships, invest in updating your mental models and be equanimious. By giving me frequent feedback I was able to learn more quickly than I could have starting out on my own, not so unsurprisingly an analogy of this exists in agentic coding models like claude code, opencode, codex, etc where agents get execution trace of the programs as context allowing them to reflect on their actions and perform much better. When you do this enough times you build a world model of the people that you interact with either consciously or unconsciously, some thought processes like “How would vignesh think through these trade offs?”, “How would nikhil approach this?”, etc starts to go around when you confront difficult choices in your life
A couple of years passed by and I had to invariably face the fact that I no longer have access to my mentors and had to rely on my own mental models as we had split ways and I choose the local optima and became a part of a team where I come across as a very technically opinionated engineer in absolute terms. My team’s primary tasks were cost optimization and codebase improvement, so I was assigned to improve our infrastructure for STT models. This means I had to make a couple of high stakes decisions on my own but because the stakes are higher it takes a long time to see results, all these decisions require conviction: a belief that your ideas are worth spending the time and effort on, you need to be very confident before you actually commit to your actions. I had a lot of ideas to work on in this but I did not had access to the verifiers/reward models that I had in the past. I started spending a significant amount of time thinking through each of my ideas and actually implemented each of them. Some of them turned out to be failures like the confidence aware router using an LLM models internal activation signals to access the models confidence in answering a query but some of them worked surprisingly great like building a better scheduler for scheduling STT queries based on expected completion time. The important thing that happened consciously or unconsciously is I started building world models of the problems and not my mentors. I believe this cycle repeated across multiple iterations is what gives rise to/develops conviction
I have to do a lot more thinking when making architectural decisions myself rather than relying on more experienced engineers in my team, turns out this is very effective in internalising the mistakes and learnings in my decision making process to ensure I never repeat it again. Also unsurprisingly another similar analogy exists when training LLMs, progress stagnates with SFT where you train the model on full generations of human conversation, imitation can only take you so far (oppenheimer!), and you have to do RL post training where you enable the model to learn which of it’s generations actually worked and which ones did not
Before the world can realize your ideas, you have to realize it in your subjective reality, this belief is not something that arises as an eureka but has to be wielded. You have to earn the right to have your conviction. This kind of conviction can’t be learned from mentors, people or books it has to learned from one’s own mistakes. Now it turns out this is very hard to do. It’s very hard to actually sit down and face the chaos in your head and churn them into clarity and conviction which you can act on. People by nature take the path of least resistance, don’t be like them. It is very easy to build things at the surface or have a surface understanding but the right infrastructure, mental models or investment compounds in weird and interesting patterns that gives rise to long term moats. It is that by doing hard things that you go deeper and gain massive advantage over others