A snapshot of my opinions, so I can laugh at them in 1 year.
A view from my favourite office nook at my first job, 2020
It has been 650 days since I began my career as a software engineer in “the industry”. This essay is a collection of my revelations, prejudices, and disjointed thoughts on my journey so far.
On creating value
Having a fulfilling career is difficult. It is an ideal that most fail to achieve because of the practicalities of life, fraught with pecuniary levies, death, and social eccentricities.
Due to said practicalities, it’s not realistic for everyone to have a fulfilling career. Fortunately for me, a lot of these practicalities don’t apply to me. For me, the opportunity of having a fulfilling career is mine to lose. There are two main reasons for this:
- I absolutely love computers. I write code not only for a living but also for recreation.
- My field is (in)famous for, what they call in the streets, “the dough”.
I am set up for having a career in being paid for what I love. I am not a musician who is coding to make ends meet. Or a writer, grinding away in a day job until he makes it big. I am a tinkerer who likes tinkering with computers and gets paid to do it.
But, there is but here. These were my thoughts during the first 6-8 months of my career. They have changed a bit since. I have started contemplating about the “value” created as a factor contributing to having a “fulfilling” career. I have put value and fulfillment in quotes because I still don’t know what either of those words mean. They are just proxies for the meaning I lay upon them. These are the interpretations of a 23-year-old pretentious software engineer and wannabe brewer. Salt to taste.
(Only) Writing code and creating sophisticated software isn’t fulfilling for me anymore. It has to be in the context of creating value. But what is value? Currently, my brain is not developed enough to fully appreciate the second, third or fourth-order value-creating effects of what I do. That means I find “value” in only first-order value creation. For the purpose of this essay, first-order value is
- Making investing easy for all (Zerodha)
- Making payments easy for business (Stripe, Razorpay, Juspay)
- Making knowledge accessible (Wikipedia, Coursera)
These are just a few examples of first-order value creation. I find this class of value easy to understand. There is an elegant simplicity to it. It should be noted, however, there are hidden complexities and a books’ worth of caveats in this too; Facebook has created boatloads of first-order value, but at what cost? Second and third-order side-effects of first-order value is a complexity that I decided to completely ignore, unless glaringly obvious (as in the case of Facebook).
For the purpose of this essay, second, third, or fourth-order value creation is:
- Trading in complex financial instruments (Investment banks, independent trading)
- Venture capital
- Tobacco commerce
- Think Tanks
It’s worth clarifying that I don’t look down on higher-order value creation. I believe it’s more prone to not providing enough “value”, and by extension, “fulfillment”. The sheer complexity creates an environment ripe for paper-pushing, and at worst, fraud (looking at you, credit default swaps). When it works, higher-order value creation is a thing of beauty, but when it doesn’t, it really really doesn’t. But this is not a commentary on the ills of higher-order value creation, but a commentary on how I don’t understand it enough to find fulfillment in it. My mental model of having a “customer” for my work inherently doesn’t allow for higher-order value creation.
Until I develop a better way to visualize value, my “value” will be derived from servicing a direct “customer”, whoever it may be. And transitively, a career that enables me to use my skills (specifically tech skills) in the service of creating first-order value would be fulfilling.
Pride and Naivety
Software engineers are a self-indulgent people. There is immense pride in enjoying the purity of writing elegant code. Consequently, they are also a gate-keeping people. I also used to think me writing code somehow meant that my role was somewhat better than those who didn’t. What I naive fool I was. This thinking is at odds with my mission of creating value. A part as, if not more, important than writing code is the resource management and logistics of creating software-driven value.
This realization truly set in when I heard an ex-founder and investor talk about having the ability to scale yourself. The ability to scale your technical ability is highly decoupled from your technical ability. Because I joined an early-stage startup on an exponential growth trajectory, I could see this need to scale people firsthand. A lot of these realizations around scaling my ability came from first principles aka blunders.
My theory is that if I genuinely want to pursue a fulfilling career (as defines earlier), just writing beautiful code won’t cut it. It was a sad realization because I love it so much and I thought doing it full time would be enough to lend me a “fulfilling career”. But the sadness was misplaced. There is as much beauty to be found in managing processes, marketing, and fostering an environment for innovation.
Working at an early-stage startup for much of my career has made me appreciate what really goes into making value commercially viable. Having a great product is good, but success is majorly a function of market, sales, and evangelization. This is more so when the product you build is disruptive.
I work on some really great tech. Yet, the product can’t be carried by its tech alone. The success of a product lies in the logistics that carry it. Even if you don’t like these supporting functions like sales, market, or operations, learning to manage resources is absolutely essential even as a developer. Spending time organising is one of the best uses of your time. Good tech is also a function of the environment it’s built-in. I believe that it’s almost impossible for a good product to come out of a sweatshop. Fostering this environment for innovation is a non-tech skill that is the catalyst for being a great engineer.
Let me make a simple analogy.
If your excellent tech skills are the dosa, your non-tech skills are the palya and the chutney. Even the best plain doses gets you only so far; they at least need some nice benne or ghee.
On hating big corporations.
If you know me at all, I am quite vocal about my dislike for big corporate entities. Even during my undergrad, I drew the ire of my placement department for not going through with my college Internship+PPO at GE Healthcare. My dislike for working there motivated me to seek employment elsewhere off-campus. To this day, my friends speak of how salty I was during the day of my campus placement.
My disparaging of these corporates often results in me not giving them credit where due. Big corporations like the FAANGs provide meaningful employment to thousands of people. They provide a wealth of resources and allow some of the world’s smartest people to work on interesting problems while providing job security and amazing benefits.
I dislike the idea of working in them because more often than not, you don’t get to learn a lot there. Your decisions will get bogged down by bureaucracy. For the lack of a better word, the verve is missing. The difference between working at a late-stage start-up (in my case, Traveloka) and an early-stage startup is a world of a difference. I can imagine how the downsides of working at a late-stage startup would be magnified at the scale of a giant corporation 1 Because of this, working at smaller organizations is definitely the path I would take unless of course I am struck by the aforementioned practicalities of life.
On why these big tech companies are risky for our society, I will bite my tongue. It is not the subject of these musings. ↩