“‘Really, sir,’ the arcanist said, appalled. ‘It is every man’s job to improve himself. A man without the benefits of education is hardly more than an animal.’”

— Patrick Rothfuss, The Wise Man's Fear

shilin typing...

i hated coding, but i learned to love it again

I quit my software job in October, two years ago. I was tired and extremely frustrated. Things that I enjoyed in the past no longer satisfied me. Those things were mostly related to coding. But like any fire, I started as a slowly burning dumpster until I hit a critical point and exploded. And when it happened, I quit.

on the way to a burnout

I always loved programming. When I was in high school, I set up a wireless networking infrastructure for the school building. Nobody paid me to do so. And few people said thank you. But I did it because I liked doing what most kids would turn their noses away from — tinkering with bits, packets, and a big mess of wires (for a wireless network, ah-ha).

And when I came back from school, I would spend evenings compiling my first Linux Gentoo. Not Ubuntu, not even Arch, but Gentoo. I remember being bored looking at the black screen of my CRT monitor that took most of my desk, waiting for two days, so LibreOffice could finish compiling. Fun times! Ah, god bless binary packages.

But the fun didn’t last long as my school — and later university — was over, and I had to start making money. I knew I could do that by building software for other people, but I had little knowledge of many ways in which it was possible. Because of the traditional script we all grow up with (school → university → stable job → retirement at 65 → death), I did what I knew best at the time — I got a stable job at a big software corporation.

“The university system, once an intellectual crossroad for ideas, is now the largest confirmation bias on the planet, where mass cast opinions are sheathed in “safe spaces” as undebatable truths.” ― M.J. DeMarco, UNSCRIPTED: Life, Liberty, and the Pursuit of Entrepreneurship

Eight years and five companies later, my view of the software world took the most unexpected shape. What I once saw as a fun and thriving environment, full of people living days and nights playing with Arduino, turned out to be one enormous mess, guarded by folks with an ego bigger than Everest.

Instead of shipping a small bug fix at 2 am, like I would normally do back in the day, I would now spend two weeks getting approvals from at least two teammates. And if my change, god forbid, impacted more than a single file of the codebase, it would cause additional reviewers, meetings, and days of delay. C++ codebases meant a twenty-years-old legacy nightmare, with classes lost in the infinitely nested polymorphism. Modern languages were better, but they faced another issue — nobody knew what they were doing. There were too many frameworks and ways of producing the same result.

But at the beginning of my career, I fell into the trap of my own inflated ego. And so did I reap what I had sowed. Instead of going into the field that gave me most pleasure — frontend and building apps and websites for customers — I chose what made me look the smartest. Graduating from the top-tier technical university in Russia was no small thing, and I decided my resume had to live up to the name of the university I put in it. When I applied for a job in a performance optimization department, I did it not because I wanted to, but because the department was the hardest to get to, and it seemed totally badass. Knowing PHP is one thing. But knowing — and, of course, showing other people my knowledge of — data structures, linear algebra, probabilities, and discrete mathematics was a whole different story. It meant I wasn’t just cool, I was also smart. And smart meant I was even cooler.

Unfortunately, my first job optimizing Oracle databases was followed by a series of other lower-level jobs touching C++, Java, and Linus knows what else. This wasn’t fun at all. It was the opposite of fun. Thankfully, things got a little more interesting later as I dove into machine learning competitions. That naturally led me to a research job at Gameloft. Unsurprisingly, not because of my ML experience and a Kaggle Master title — who cares about that anyway, — but because I was exceptional at cracking C++ algorithm questions. At Gameloft, I was severely underpaid but happy. I enjoyed the experimentation, the flexibility, and the freedom of art. Anybody in game dev will understand me. As for the rest of you — you really aren’t losing much.

In the end, Gameloft laid off the entire research department because research doesn’t make money, and you need money to publish more games. That’s what game dev is about, after all. This opinion is strictly my own and doesn’t represent the view of the company, obviously.

After Gameloft kicked me out into the abyss of unemployment, getting an ML job was harder than getting a backend job because ML wasn’t really a big thing back in 2019. Above all, I was underqualified for it because gold medals in machine learning competitions didn’t account for anything in recruiters’ eyes. Tell me about how to feel smart and stupid at the same time. So I went back to more C++ jobs because that’s what I could do, and that was the story my resume told.

recovery

If a flower doesn’t bloom, you fix the environment in which it grows, not the flower. ― Alexander Den Heijer

October 2022, and I finally quit the job. Looking back, it wasn’t a tremendous hit by any measure. I didn’t get depressed, neither did I fall sick for 3 months. But one thing has happened ― I developed a sense of utter distaste for any corporate job in technology. I didn’t know what I wanted to do for work. But I knew a few things. First, trying to fit into corporate culture failed every time I got a new job. It was like being slapped on the face, and with every slap I would lose memory, only to turn my head back and get slapped again. Second, having a big team was a no-no. One developer — great. Two — fine. Three is ok, but I’d rather not. More than that and you can review your own code, thanks.

Finally, legacy codebases. I’d rather troubleshoot my grandma’s printer remotely than deal with that mess again. People that choose to maintain ancient systems are heroes we don't deserve. You have to be either madly in love with what you do or get paid outrageously well. Ideally, both.

Over the first few months, I slowly got back to coding. I took on some personal projects that I had left due to lack of time and motivation. But now I had all the time in the world. Little by little, I started building fun things. Small apps and programs here and there, mostly to satisfy the craving of doing anything at all. Around the same time, I started reading more about startups and entrepreneurship. It seemed alien at first, but the idea grew in me. Why build a product for someone else if I can do it for myself and still get paid for it? Although not by my employer, but by my users. I remember my friend Alain gifted me an audio version of “How to Be a Founder” on the New Year’s Eve, and I was like “Whoa… I guess I can do it?”. Then I listened to it one more time and applied to a startup incubator.

The year 2023 was my personal version of the Man’s Search for Meaning, with me meeting a hundred other founders and trying myself in a handful of exciting ideas. Not only was I learning about this new world with my eyes wide open, I was doing what I never thought I'd do again — I was coding. And was I having a blast doing it, too! Spinning up infrastructure in the cloud for the new project. Putting together API endpoints overnight to make the MVP work. Publishing an app on Apple Store and Google Play. Those are the things I’d never done in my previous corporate jobs, but it was the most satisfying thing to do.

Since April last year, I’ve been building my own startup. I have customers, and they pay me for the product I’ve built. As it is often expected in smaller teams, I also do sales and marketing, and I deeply enjoy it. But most importantly, I’ve finally rebuilt my relationship with programming. It is no longer frustrating. Quite the opposite, it’s greatly rewarding. Like the moment you run a migration on the production database, the change goes live, and you open the customer page to see the new feature you’ve spent the last week building. That moment is priceless. Or when your customer emails you “Thank you, we love you guys!”, and you rush to reply “We love you toooooooo!”, only to stop mid-way. This is better than any drug. It is the drug.

Before finishing, I have two quotes from Naval Ravikant to share. He doesn’t have just two, he has the whole book full of wisdom in the form of his quotes. But these two are what made me stick to it and trust the process. I hope it inspires you, too.

1. “If you can’t see yourself working with someone for life, don’t work with them for a day.”

2. “I’m always ‘working‘. It looks like work to them, but it feels like play to me.”

— Naval Ravikant


So, go make work your playground. Then you can’t lose.

#entrepreneurship