I interviewed a senior engineer with over 25 years of experience. At the time he had been writing software longer than I’ve been alive. He brought a hard copy of my Linkedin profile and began asking questions about my background. He asked me why I picked engineering, why I choose this startup, and what I wanted out of my career. The whole process felt like he was interviewing me.
He even gave me career advice.
He drew two boxes and wrote two names Tom and Jerry.
He pointed to the boxes and asked, “Do you know these people?”
“What do you mean?” I had no idea what he was talking about.
He nodded and drew arrows connecting to another box with my name. Instead of using my name, let’s assume you’re in the scenario.
“I sincerely hope this never happens to you.”
He’s observered many young graduates destroy their career by picking the wrong company or job. They become boxed in. They take Tom’s output, work on one little component and pass it to Jerry. They do not gain true understanding of all the systems or have a say in directing future projects.
Literal cog in the machine.
I thought about his career advice. Even if you took a job promising “growth potential” at hot tech company – if all they did was have you fix test scripts then that’s all the experience you picked up. You would be good at fixing test scripts years on the job. Unfortunately, you may have a difficult time convincing a hiring manager your potential to work on other things.
Picking the right team
I’ve thought about this issue and here’s advice I pass onto all junior engineers I work with. You might work for the right company. Joining the right team can be a gamble.
Here’s one suggestion to help you during the interview process.
For every person you encounter during the interview, ask what they worked on when they first joined. Then ask what they’re working on today. If they’ve been working on the same thing for awhile, you should dig in and ask more questions.
You must evaluate if each member has been growing in project scope or skills.
I see why some managers box their team in. This makes defining input/output very easy, and simple to track progress. Replacing employees is easy too. If one leaves, there’s no huge impact. One engineer working on a little widget. Or if someone’s doing a great job in one area, some managers will keep this person on the same role forever. Why meddle when nothing’s broken?
Always be expanding
For every individual member of my team, we work together and determine the scope of all projects they can take on at once. Here’s what senior engineer Tom’s allocation could look like.
Tom’s splitting his time equally among Atlas, Beale and Wotan. Let’s bring you into the picture.
You started off working on Beale, but as you’ve demonstrated the ability to ramp up, project Chornos is under your domain.
Everyone works on multiple projects connecting to other team members. Some of the projects start off as siloed projects and the intent is they will connect to other systems.
All engineers are encouraged to expand up and down the tech stack. Everyone is shown a similar diagram so they know where they can expand around the current architecture. Maybe you have a frontend engineer that can expand towards improving API latency. You need to figure out what areas an engineer would like to cover.
One former intern started off writing scrapers as his first internship out of school. He later returned to a full-time position and was very curious about the indexing system I wrote a year ago. He got time to tinker with my code and over the next two years, he’s refactored everything and deployed a new Elasticsearch cluster to handle the full Twitter firehose stream.
I was amazed at the results – you too will be pleasantly surprised if your team gets to work on projects they care about.
I also ask everyone to be on the lookout for improving the efficiency of the team. If they don’t want to go up and down the stack, that’s totally ok. They can work on automating parts of their work so they can free up time to construct more systems in their domain.
By providing freedom and ownership, I watch my team grow in ways I can’t even predict and we can accomplish more with the same team.
[1] Project names are Netrunner references
Leave a Reply