As I find myself looking for a new role, after some effort picking the right company, I wanted to revisited the basics. This TLDR answer the what, but it doesn't provide much insight into the why. Let's fix that.
I have enough experience and evidence that I can do a decent job at both. I plan to continue on the management track. Right now it's where the biggest room for improvement is. This doesn't imply that I don't like coding, which I do. Or that I couldn't be an IC. But to code again, would have to be for the right reasons: improve my knowledge horizontally. Continuing doing iOS is a vertical investment.
I struggle in slow paced environments, partly because I am impatient. I like to see movement and work progressing. I feel at home when working with highly driven individuals. Management is a role that requires patience, and it's something I often have to remind myself of.
Smaller companies, or at a growth stage, usually have more opportunities, compared to well established companies. It also allows me to do things outside my remit, because the role is more fluid. I am quite attracted to the ambiguity and the figure-things-out that smaller companies inherently have. Having a well defined role can work, but I prefer to ware many hats.
Being in the office or online can act as a function of optics. I prefer to focus on the outcomes of my work. The same applies to producing a lot of otput (e.g. code, done tickets), rather than business impact.
I wrote about it here.
Part of my job as an Engineering Manager is to grow, coach and guide engineers. I tend to gel better with individuals that regurarly ask for feedback and have a growth mindset. Ideally, these ideals should be encouraged within the company.