A reflection on 9 years of software development, mistakes made, lessons learnt, and understanding what is important.
I started my career as a junior developer like most! However, we do have to talk about what counts as developer from one of the thousands of engineering colleges in India. What do you mean, learning how data structures work? What do you mean, learning how to write code? What do you mean, learning how to debug?
Just memorize the syntax and the algorithms and you are good to go! No wonder, we have the most engineering graduates but few who understand the fundamentals.
The only path that is left for most of us is to learn on the job. Either find a mentor or pray that you find some good blogs to teach you.
Here begins the journey of reading the blogs, learning about the frameworks, actually seeing how data structures and algorithms actually fit into solving real problems. I swear beyond a point its almost like a game you are playing and you can’t seem to stop till you progress to the next level. (which obviously never ends)
So, that’s what I did. I read blogs, read documentation, watched videos, went through lines and lines of code. In all of this, the only thing that I am truly grateful for is having someone who pushed us to work hard.
“Work and learn hard in your initial years, forget about 8 hour work days. Just study, absorb and apply!” Thank god I listened to it!
The mantra was to dive deep into any codebase, start at main and then just keep following the code.
As time went by, it just started to click. I could create mental models of the entire architecture. Debug issues in minutes and develop features in days if not hours.
But as they say, “It’s never enough!” I knew all the basics. I could eat CRUD for breakfast, lunch and dinner but where was the challenge. Soon, I rarely had to spend nights trying to debug. I was just getting by.
Coding/Development became BORING!
I built custom trading interfaces, systems that could handle 1m events a day, background processing systems handling hundreds of crucial files and more.
But it was the same old work, same old problems, same old solutions. It was no fun. There was no challenge and unfortunately there was no one(mentor) who could challenge me to get better. So, I tried to find meaning in the impact of my work.
I was working at an HFT making more money than most of my peers but there was no satisfaction. My obsession with impact was growing and I felt like I had to leave before I get stuck there.
I wanted to work on problems that mattered, solutions that could change lives of people, bring a real change.
So, I moved to a startup which provided opportunities to blue collar workers. It was a great learning experience, yes! I learnt a lot about structure, handling a large codebase, building systems that play well with each other and it was fun till I was learning.
The problem with being impatient and joining a new organization? People are not really ready to hand you the keys to the kingdom and let you loose on their most technically challenging parts of the codebase yet! You have to grow into that role, show you can handle the pressure, that you can lead the way.
Wish someone told me that then!
So, I jumped again foolishly. Running after the impact, the impact, the impact! I wanted to be a part of a company that wanted to bring the poorest section of the society into financial mainstream. Provide them with access to organized credit. Make their lives better. (That’s all I needed to hear!) The opportunity to lead the team and own the entire product was the cherry on the cake!
Each of these roles taught me something new, have patience, put in the work, look beyond the vision and the product, look for mentors, find the right team! I was optimizing for the wrong variables while blaming my luck.
At a certain point, I was FED UP! I was growing in my technical skills but I was not happy, not satisfied. Not growing fast enough! I felt I was not at the cutting edge of technology. Not building the most innovative products.
After years of jumping between companies, something clicked. I realized that a lot of my frustration wasn’t with the technical problems - those were fun. It was with: the endless meetings about meetings, the constant context switching, too much premature discussions, not being able to do the work that you actually enjoy doing.
We were drowning in “work about work.” I honestly never thought I would be a founder. I was just looking for a team that I could be a part of. A solution that I could be proud of.
The desire to fix this problem was too high and I had to build Twing. The mission was simple: build the platform that actually help people be more productive and less stressed. No more apps that demand constant attention. No more platforms that fragment your workflow. Let the AI take care of the mundane tasks and you focus on the work that requires your creativity and thinking.
The journey led me to build:
Building Twing gave me something that I never expected. It gave me the confidence to be able to build anything I could ever want to build. No problem was scary enough. No idea was too big. When you’re responsible for everything - from the database architecture to the deployment pipeline to the user experience to talking to user and getting feedback - it’s overwhelming but you learn quick.
But startups are hard. While the technology worked and users loved the products, the business side proved more challenging than I anticipated. The startup didn’t work out, but the learning was invaluable. I built products that real people used, got honest feedback from actual users, and worked with some incredibly smart people who challenged my assumptions daily.
I learnt so much about myself. The biggest of them all, Patience! I was in a hurry all my career. I didn’t stop and reflect on what was actually missing. Some guidance? Some stability? The right people around me?
Yes to all of the above!
Now, as I re-enter the job market, my priorities have completely shifted.
I’m looking for the right teams.
I am looking for people who will help me grow into a better developer. I am still looking for people solving the hardest of problems but I want to work with people who are truly passionate about what they’re building. I want to be part of a team’s success, not just solve isolated technical problems. I want to contribute to a product, a company, and a culture that I believe in.
The questions I ask now are different:
Technical skills are just the entry fee. After 9+ years, I can pick up any language, framework, or tool. That’s not what makes the difference.
Impact comes from alignment. The biggest impact I’ve had wasn’t from writing the most elegant code - it was from understanding what the team needed and delivering it reliably.
Culture beats compensation. I’ve been on teams where I dreaded Monday mornings and teams where I lost track of time working on problems. Guess which ones produced better results?
Mentorship matters. But more on that in my next post.
Today, I’m being much more intentional about my next role. I’m taking time to understand not just the technical challenges, but the people, the culture, and the mission.
The journey from a self-taught junior dev to a founder and back to job seeker has taught me that the most important skill in software development isn’t coding - it’s choosing the right problems to solve with the right people.
Now I just need to find them.
If you’re building something interesting and need someone who goes deep, loves complex problems, and actually cares about the human impact of technology, let’s talk.