My first student job was more than I had hoped for. The atmosphere was laidback, yet the passion for doing quality work was clearly there. Working with people turns out to be super easy when people talk to each other as equals, and when an idea coming from a senior developer is just as valuable as an idea coming from a student intern. I was given the guidance I needed early on, and I appreciate the effort and patience that was invested in my growth.
At the time I was settling in, Microblink was making changes in the way it approached computer vision problems. New people were coming in to help support the switch to machine learning but we were still small enough to solve cross-functional team issues by shouting across our open office.
Today, all of our products are built on top of our AI platform and we’ve formed focused teams that deal with specific steps in the pipeline. The open office didn’t turn out to be such a good idea, though.
As Microblink grew, I became interested in some of the ‘soft’ problems the new teams were facing. The thing is, you can have the best intentions at heart and still struggle with communication problems. Legacy processes need scaling. Ownership needs to be clear. I realized that I wanted to solve problems at a higher level of abstraction, and that my knowledge in the field can help me get there. With time, I transitioned into a role of a project manager, working at the junctions of our AI, C ++, mobile and web teams.
After a year of improvements in product delivery, communication skills, and prioritization, Microblink has outgrown its "wardrobe" again. We needed to define a clearer product strategy, set long-term goals and break into new markets. A new product management team was formed with a goal of leading this change in a sustainable, scalable way. I was tasked with managing the development of a brand new product that would solve a previously unexplored problem.
Taking on the new role meant taking on new responsibilities. I had more autonomy in setting product goals, doing market research and talking with clients, all of which are things that tie in well with what I did at Microblink up to that point.
From development to management
If you are thinking about moving from development to any kind of management, there are a few things you need to consider. Don’t go in expecting a simple and predictable schedule. You will have a lot more autonomy, but you’ll also have a (sometimes overwhelming) responsibility of specifying what needs to be done and when.
An engineering background will no doubt come in handy in your daily work. Programming will allow you to build a variety of small tools to help you get work done faster. Divide and conquer, refactoring, translating an abstract description of a problem into a concrete strategy, testing your assumptions — these are all concepts that a good programming job teaches you, and you keep them forever.
But the most important thing you need to keep in mind is nurturing empathy for the people you work with. As a senior developer, you need to have empathy in reviewing pull requests from junior developers. You need to have empathy for your boss asking you to justify your need for a month of refactoring because he has to do the same for his boss.
When you’re in development, the vast majority of your co-workers will share the same way of thinking with you. They’ll understand the problems of a specific framework, CI system or software architecture. That’s not the case when you’re in management. You’re likely going to work with teams that don’t speak the same language as you do. And this goes beyond mixing UX with UI when talking with design, or googling acronyms marketing loves to throw at people. All of your work will be based on cross-team communication. To learn the ins and outs of a new domain, you first need to understand the motivation of other teams, their problems and strategies.
That is why it is important to work in a company where communication is open and constructive. Today, I don't care what my title and job description is. It is important for me to work on big problems, with ambitious and open people, in a company that encourages and rewards my growth.