Being fast and nimble is important to us at Shutterstock, and one way we accomplish this is by working in small teams. This approach has yielded tremendous benefits over the years, but it comes with its own challenges: Shutterstock now has over 300 people and dozens of teams. How do we coordinate everything with so many different groups?Continue
We recently sat down with Daniel Dubrovkine, head of engineering at Artsy to chat about some software engineering good practices, and to learn from Daniel what tips he can share from his experience building Artsy from day one to its present size of around 50 employees.Continue
Lately, I've been advising numerous software developers and helping them consider appropriate next steps in their careers. Based on the current tech bubble I believe we're in, I'm finding that many engineers are thinking about leaving more established companies and considering venturing out to either: a. work at startups, or b. work on their own startup.
During my own career, I've been fortunate to have found myself in engineering roles at both larger companies as well as startups. Regardless of which path you personally choose, there are some basic skills that every engineer must acquire if they desire to put themselves on the path of engineering leadership (CTO, VP/Dir of Engineering, Engineering Manager, etc.). Of course, not every engineer wants a leadership role, and that's ok, too.
If you're the type of engineer that knows (or thinks) you want to move into a leadership role you can do it either at an established company or at a startup. And the truth is it can happen quite quickly in either scenario if you focus on learning and exhibit the right skills for the job.
This post is an intro to a roundup of articles that we're preparing to publish full of advice given by engineering leaders that we highly respect. They've agreed to share their wisdom with the Hakka Labs community and I'm thrilled that so many super-smart engineering managers have agreed to participate.
But first, I'd like throw some of my own ideas at you. Some of this advice is based on my experience in both working on development teams as well as having been in a founding role at several tech startups. But some of it is simply opinion so feel free to take it or leave it, as I hope you would with any free advice.
Without further ado, here a couple of key thoughts I think every engineer desiring a leadership role should consider.
Decide if you really want to be a manager
You might think this step goes without saying, but I believe this is the very first step that any engineer needs to be clear about. The truth is, some engineers think they want to be managers since that's the only way they believe they can advance in their careers (it's not) and yet they never really come to grips with whether or not they really want to be a manager, or learn the skills required to do it.
I've spoke to many engineers that take management positions, only to discover that there's too much non-technical, process oriented "stuff" that they need to do all the time, and they end up not taking to their new role.
Sometimes these engineers leave the management world for good and never look back. Other times they temporarily go back to the trenches - realizing that they're happier writing code for a few more years - and then pursue management opportunities later in their career once they know it's something they want and are now ready for.
Either way, be sure you have the interest in learning management skills. Managing people isn't like managing servers. If you want to know how they're different from a practical perspective, kick off your learning by asking your current manager about his/her experiences in managing tech teams in general, not to mention his/her experience in managing you!
Prepare for team building now
People who are far wiser than I have made the observation that management (tech or otherwise) involves three things: planning, hiring and retaining the right team, and dealing with emergencies (which is, in reality, the result of a broken plan).
By that standard, half of any serious leadership role is likely to be made of team building/retention issues - that means people management!
If you want to find yourself in a position of leadership, start working on your people skills now. Especially the ones that directly relate to team building and hiring.
If you were the manager of your own team right now, and you needed to fill an open position, where would you start?
How do you define the role? What's the ideal profile of the person you'd most like to find to fill the role? What are the essential skills required? What skills are non-essential? (Then ask yourself again: what skills are really essential? It might seem self-evident, but often one still needs to be reminded of the simple truth - the more essential skills you require, the longer it's going to take to find the right candidate.)
How are you going to get them excited about joining your team now?
The implications of attracting, hiring and on-boarding the right person for an open technical role are staggering. When you find them things are awesome. But if you can't find them and the vacancy goes unfilled you really start to feel screwed in a hurry.
The most important thing an engineer in leadership can do in order to attract the best people to their team is to learn to tell a story that will be completely compelling to an engineer you're trying to recruit. And you can practice doing that now, whether you're actually in a position to hire or not.
Whether you're working as part of a larger organization or at a startup, these are some key things you'll want to consider as you prepare for engineering management. Stay tuned for additional articles in this series as other engineering managers share their wisdom on how you can prepare yourself for engineering leadership. Continue