What's next (Part 1)

Almost 11 years have passed since people started paying me for my work. In 2010, freshly out of the university, I was lucky enough to start working first in Android and then iOS. From then on my career was, for better or worst, carved in the iOS ecosystem. I, for a long time, was an one trick pony. With Babylon Health in 2016, I was exposed to the management side of things, which lead me to become a two tricks pony. The tricks are not what I am capable of doing, but rather what I am capable of selling. And this distinction is what's making me, in 2021, 11 years later, to appreciate the somewhat dead-end where I put myself.

Now, this is a rather dramatic way to start a post. Let's put things in perspective.

Working in iOS is what lead me to have a somewhat successful professional career. The amazing people I worked with, the products I created and ultimately the problems I have solved were mostly as an iOS developer. If my career ended tomorrow, it was a good one. The question is what's bothering me after all these years?

There are a bunch of nitpicks, like developer experience and constant annoyances within the ecosystem. Others are too big to ignore. Most of what I do these days is what I was doing a decade ago. Sure, fancier APIs, new language, but at its core, it is the same run-of-the-mill stuff. Fetch something from a server, parse it, show it to the user. It has become a chore and not something I am excited to do on a daily basis. In a way, it reminds of: do you have 10y of experience, or 1y multiplied by 10? There's a mix of indignation towards myself, stagnation regarding my career and uncomfortable boredom. Another problem is how bad the ROI is. Comparatively to a new field, say distributed systems, one year worth of my time would be a much wiser investment compared to iOS or even mobile in general. Not just knowledge, but career wise.

Going back to the beginning, why does such situation puts me in a dead-end? Besides theatrical reasons, I have options. But said options need to be bound to reality: I have bills to pay, a son to raise and a career that I want to continue growing.

1. Continue doing iOS and hope this is a phase.

After months of thinking about this, there is a very slim possibility I could continue doing so. That chance, would have to be in a company that I believe so much, that whatever I do there becomes almost inconsequential. There are few companies where I would dive heads first. The one I have the most interest, not only is in the US, without remote openings, it also has no interest in hiring me (I know because I tried). There's another one in Sweden, but unfortunately, it's not a country I am planning to move to in the near future, so that's also out of the equation.

For now working on Dash has given me an incredible amount of joy and satisfaction. I am able to play with Apple's latest technologies and keep myself up-to-date. Very few companies provide such opportunity, if they are supporting older versions of iOS. These days I see iOS as an hobby: a somewhat fun thing to do from time to time. But that doesn't provide the meaningful satisfaction to do it 8h per day that once has. Maybe this is just a phase and I will enjoy doing iOS at a later point. The future will tell.

2. Start doing something that sparks my interest as an IC engineer. Either in Distributed systems, or Automation & Robotics.

Now this is where the ponies and tricks come about. I am capable of doing backend work if I have to, but the reality is that I have no professional experience to back it up. This leads to a gap between what I am capable of doing, versus what I am capable of selling. As an experiment, because a good friend of mine thinks I am full of shit, I sent my CV to four companies for a backend engineer role. These were mid level IC roles. I didn't get a single reply. It all might just be due to chance and I could keep trying, but I have a lot of years worth of experience to swim against.

A couple of hypothesis popped in my head as for what's going on the other side of the trenches:

  1. The CV was sent by mistake. Why would a person with a decade of experience in X apply for a mid level position in Y?
  2. It wasn't by mistake and likely the candidate is desperate for a job. Desperate candidates are most of the time rejected.
  3. The candidate is not desperate and it's not a mistake. The company is not willing to take a chance, since an "old dog doesn't learn new tricks". A younger candidate, with less years of experience, is both cheaper and more mouldable.

Of course, applying to only 4 companies makes it difficult to prove any of the above points. Still, in the unlikelihood that would get said role, it would mean a pay cut, which is something I can't afford right now.

There are other tactics. I could for instance, try to get a job doing iOS at a big company (e.g. Facebook, Amazon, Spotify) and slowly move to a different team. A plausible strategy that would keep me working in iOS for a period of time, which is something I am trying to avoid (specially in big companies).

3. Switch over to Engineering Management and continuing building on that vertical.

Now you may all be thinking:

Rui, but you stopped being an Engineering Manager on purpose! Why the hell would you want to go back to it?

The easy conclusion was that I hated the role. In reality, I hated that role within the context of company where I had it. Not for the reasons that you might suspect, but because I was a glorified HR person, with way too many people directly reporting to me. When you have back-to-back 1:1s for a full week, you start to question your sanity. After conversations with other engineering managers in different companies, I realised that management can be done in a healthy way with a good split between technology, product and people. There's also enough literature on the topic to support those conversations.

These days what excites me is the intersection between tech and product. Or rather tech as a means to achieve something of value. iOS has become an immaterial detail, that is not more important than any other piece of the puzzle. Building a team, hiring and coaching engineers was something that gave me a lot of satisfaction in a past life. Because of Sphere's current structure, number of people and where it's heading, there's no such position on the short term that allows me to do all those things, either as a manager, or as an engineer outside iOS.

All this translates into me leaving Sphere.

It also means that the next step in my career is as an Engineering Manager.

Ending thoughts

As I said some years ago, most of the time, we don't need to think about our career. Everything falls into place. We are a privileged bunch, compared to other sectors and industries. Nevertheless, there comes a point where feelings, motivations and where we want to go next are misaligned. Sometimes it means saying no to a promotion that could lead us astray. Other times that means starting over. These decisions have real, long-lasting consequences. Where do I want to be in the next 3 to 5y? What about technology, what do I want to learn next? Do I want to continue as an IC or move to management? Should I become a farmer? There's nothing wrong with not knowing the answers. Asking the question can actually be more insightful than getting a definitive answer.

At this point in my life, the best thing I can do for myself, is to be honest about what makes me happy and relentlessly pursue it.