This post was discussed on HN: https://news.ycombinator.com/item?id=33518657
I was born in 1981, so I turned 40 last year. According to Wikipedia, that is the last birth year that still qualifies as being a Millennial.
Millennials are commonly associated with entitlement — I can totally relate to that! My parents told me countless times how they had to “work hard” and “make sacrifices” so I could get a good education.
So I better study and work hard, which I did (thanks for the advice, mom and dad ✝)! Here’s what I learned.
Studying Computer Science in the early 2000s
More than 15 years ago, I graduated with a master’s degree in Computer Science from the Swiss Federal Institute of Technology. It was a great time to be in CompSci — the Internet was taking off, people were building things, the Google founders even paid us a visit for a lecture about information systems. The sector was mostly unencumbered by privacy, security and usability concerns — the Wild West, basically.
At one point I participated in a programming contest where I wrote a JIT compiler that emitted Sparc Assembly for a stack-based virtual machine. I had a copy of the SPARC Instruction Set with me at a boring Christmas family reunion, where I tried to figure out how to make my code run faster by using smarter instructions. I enjoyed deep-diving into software, peeling away the layers. I was a nerd.
I finished my studies in the allotted time and because I didn’t have any money on the side, I immediately went out looking for a job. I proudly filled my resume with the insane knowledge I had acquired during my studies. The Python 2.x skills that I acquired during the odd side jobs that paid the rent for my tiny apartment were actually more valuable than Oberon and SPARC assembly (big surprise there!). The resume was written in LaTeX.
Even back then, it wasn’t hard to find a job in IT. There was still some lingering pain from when the Dotcom bubble burst, but it was already fading into memory. The financial crisis of 2008 hadn’t happened yet.
First Job in the Industry — Welcome to the real world
I got hired more or less instantly as a “Middleware Software Engineer” and learned the ropes. It was an interesting position, involving low-level web security engineering (C/C++, Apache, OpenSSL, …), chasing memory leaks and generally working in high-stakes environments with talented people.
There I learned that Software Engineering is about a lot more than just coding — the firm was an early adopter of build and deployment automation (hand-written, this was before Jenkins existed, back then known as Hudson) and had a strong engineering culture.
Overall, a great place to start and learn about all aspects involved in writing production-grade software. But, my inner millennial was starting to get bored.
Pivot to Mobile In 2009, my boss (then CTO) made a fatal mistake. He encouraged me to learn about iOS programming and apply it to a project that he was doing pre-sales work for. This was the time when iOS was still called iPhone OS.
So I grabbed a book from O’Reilly and fired up a now-ancient MacBook Pro and wrote a small location finder app for a Swiss car rental company. It used GPS to tell the user where the nearest rental point was, how far away it was, and what kind of cars were available there. The app did not have a backend — I had a script that turned an Excel file into an Objective-C module exposing an array of all the locations. But it did the job and it was eventually published in the App Store.
What fascinated me was that I could write software that normal people would consciously interact with, even touch! Running on a device that even my mother would eventually become familiar with — consumer smartphones.
Unfortunately, smartphone apps were still a bit too early in the technology lifecycle for my employer to pursue in earnest, it was seen as a “fad”. The unwillingness to become engaged more deeply with it, coupled with organizational changes that affected me in negative ways, made me look for a job again.
Next Job — Physical Things are Fun, too Lucky for me, in 2009 I was able to attend the first iPhone Developer Day conference in Zurich, where somebody actually gave a speech about Android that piqued my interest. It was a relatively small company that had nonetheless co-authored the core Android libraries for Google. That sounded pretty cool to me, so I sent my application and a couple of weeks later I had a new job.
In the following months, I entered a completely different field, mobile app development, and Embedded Android development. At one point, I wrote an app running on the onboard computer of an AMG SLS (an overpowered supercar). It allowed the driver to record race tracks (strictly for off-road usage, of course) and later race them. And it was running on Android! It had fancy graphics, algorithms like Dead Reckoning, and best of all: you had to get into an actual car to test it.
It was one of the most challenging and fun projects I was ever part of, and I met a lot of very cool people there. Of course, not every project was like that, but it was a completely different culture to the previous firm and a totally worthwhile place to work.
Self-Employment
Organizational changes again, and maybe a little bit of personal insanity led to me changing jobs again after two years. I had just turned 30 and I decided it was time for a major change.
Working at a smaller firm, where employees have to take on more responsibility and interact directly with customers, made me realize that I had a relatively uncommon combination of skills: I was technically proficient but I could also talk to customers, understand their needs and design solutions that solved their problems.
So I thought — why not do it all by myself and cut out the middleman? Freeing myself from the shackles of employment and becoming my own boss? My inner millennial rejoiced.
I was a solo operation for five years and managed to grow my network, customer base, and revenue consistently. I won’t bore you with another list of accomplishments but it was an interesting time, full of learning. The accomplishments also felt more meaningful, because being solo, I could truly take credit for them.
Later I partnered up with a friend to be able to attract larger projects (which we did) and even hired some employees.
What then followed was a period full of remarkable events that had nothing to do with technology. I met my future wife, we married, had two kids together, and bought a house.
The Limits of Growth
As I approached 40, I was steadily taking on more and more responsibilities — for my family, my relationship, my business… I started to question things, and slowly but surely, I ran out of time for myself.
I was trying to be everything at once — an involved parent, a loving husband, and a successful business owner. At the risk of sounding like an entitled Millennial, I forgot how to be myself and have fun.
What I’ve slowly come to realize, is that I had an ingrained expectation that growth and personal development are a never-ending series of upward movements, that there is always the next step to take, and that it has to be in some way “more” than before.
The reality is that eventually, something has to give.
Tough Questions
During the pandemic, I was going through a period of reflection, which I only half-jokingly referred to as my mid-life crisis. I began asking myself tough questions, such as:
Can you genuinely say that you are happy with what you are doing? Are you doing what you’re doing mostly because people expect it from you? Do you feel worn out sometimes? Do have trouble sleeping? I came to the conclusion that my work situation was the primary contributor to stress in my life. All the responsibilities that my company brought with it started to weigh on me, and I wanted to be free of them.
Scaling Down
I made a difficult choice — one of the hardest I’ve ever had to make: to tear down my own company. It took me a while to arrive at that point, but once I got there, my mind was made up and the path was clear. My business partner, unfortunately, did not want to continue running the business without me, so it was time to wind down the company.
There are a million guides to starting your own business, but nobody tells you how to end one. What followed was a difficult and emotionally taxing year, full of insecurity, feelings of failure, and awkward conversations. Not to mention the administrative hassle involved in scaling down a business.
Hard Truths
Today, more than a year later, the transformation is nearly complete. I feel that for the first time in years, I have time to think about what’s next for me. But some hard truths remain:
At 40, I am no longer as agile as I would like to be. I still have plenty of responsibilities: kids to feed, a mortgage to pay off, etc. I do think that experience has made me much better in identifying opportunities and discarding dead ends.
My mind is not a sponge anymore. I still love learning, but it does not come as easily as it used to. Take programming languages, for instance. I’ve come to accept that after almost two decades of writing code, I am not really an expert in any single one. The knowledge I acquire degrades, and at a quicker rate than it used to. Instead, I now like to think of programming languages as drill bits. There are ones you use more often than others, there are the really specialised ones you seldomly use, and maybe you even have a few lying around that you’ve never used for any actual work. But if you know how to operate a drill, the bits don’t matter that much. The concept extends beyond programming languages.
It is harder to build something today than it used to be. This has nothing to do with myself, but more with the general environment in the technology sector. Big corporations with near-infinite resources suck up talent and their insane compensations make them hard to compete with. “Frontier technologies” such as AI or ML are hard to get into if you’re not already sitting on a pile of data and cash. End users are accustomed to everything being free or cheap, sustained by a decade of advertising-based business models.
Age discrimination is a thing. What?! Why are you still coding? That question is real and it’s out there. Most of the time, people don’t even mean it in a bad way. It gets a bit old. ;-)
So, just throw in the towel, or what?
Why I’m Optimistic
After all the doom and gloom, I sometimes need to remind myself that all is not lost after 40.
I love learning new things — Someone once told me that in Computer Science, you never stop learning. That is quite true, and I love it. I also read a lot of books that have nothing to do with IT.
I know what I’m good at— I don’t have anything to prove to anybody. I know how to market myself and the value I can provide. Also, I know what I’m not good at.
I’m efficient — With age comes experience. Experience for me is the art of taking the minimum amount of wrong turns.
I’m still passionate — When I do something, I want to do it well. My attitude towards work has not changed. I just try to work smarter.
Apart from core-dumping my thoughts into this article, I’m busy building a new company called Pixelverse, which explores the intersection of IT and the art space and writing a computer vision product called STRICH that I intend to launch soon.
If you enjoyed this read, and maybe have a similar tale to share, let me know.