Your Job Is to Destroy Your Own Job [Podcast]
Your Job Is to Destroy Your Own Job [Podcast]
What does that mean?
Join the DZone community and get the full member experience.Join For Free
The DevTeam Project is a library of stories from successful engineering managers around the world about growing, managing, and motivating excellent dev teams. Our mission is to help dev teams learn from great engineering leaders about trends today and what’s shaping their industry. To achieve this we’re going to release a podcast episode and a blog post with highlights from the conversation every other week. In each episode we’re traveling to meet a prominent engineering leader and talk about their unique perspective and insights.
You may also like: Google's Approach to Hiring Engineering Leaders [Videos]
For more stories like that check out The DevTeam Project or listen to our podcast using one of the platforms below.
Jacek Migdal is a Director of Engineering at SumoLogic who created the Warsaw office from scratch. I sat down with him to get his thoughts on what engineering is like today vs. a few years back, how to hire, and why culture is critical to mission success.
Short on time? Here are three key takeaways from Jacek on the role of the Engineering Manager:
- Solve problems fast. When issues arise, and they will, nip them in the bud early on, but try not to get in the way of your people.
- Prioritize communication with remote teams. If you have devs split across timezones and offices, you need to put extra effort to connect with your remote team.
- Make solving the hardest problems fun. Establish a reward-based system where players are rewarded for solving complex problems.
What follows is a long-form write up of the key topics we discussed in our interview.
My Parents Were Into Software Engineering
I created my first game around six or seven years old. It was a simple game in Visual Basic, but it was inspiring. When I was a kid, programming in Poland was mostly about algorithmic contests/challenges, but I loved it.
"You could say geek is in my blood"
My time at Facebook was crazy. I was there early on, we were shipping to production and then going live within two days. It blew my mind how fast we could iterate a change. At the time, we had a lot of interns to help us implement those changes, though. I think it was a 7/10 ratio. Seven interns for every ten developers. Today there needs to be a lot of support to make anything work, especially for a company as monolithic as Facebook. If you’re not giving teams enough support, the concepts just won’t work.
We move fast and break things. We were scared we were going to screw up. There were so many people adopting Facebook. The numbers were through the roof. There were fires to put out every day, it was non-stop. Especially as we were developing the chat capabilities. Everyone has to pay their dues.
The biggest thing I remember was testing so many ideas. We’d sacrifice a lot of projects, even the important ones to make sure the right stuff got through. We tested different databases, we tested the speed of releases, reaction times, everything. We pushed a lot of code in those days. Young Facebook was scrappy, but we managed to do a lot and on a fast turnaround.
"I learned a lot about myself during that time and one of the biggest things I learned: it's ok to sleep, and it's ok to ask for time for yourself. We all need a break and should ask for it regularly."
Working at Facebook taught me that I loved working with early-stage companies. Getting in with a company in its infancy gives you the best chance to leave your mark on the product. After seeing how fast Facebook moved on ideas, while a lot was left on the cutting room floor, I wanted to start somewhere where I could control a little more of what was being focused on, rather than see good projects get swept aside.
When I Left Facebook, I Took a Sigh of Relief
I started with a young company analyzing data and eventually developing a tool for data science. I moved from the swanky office with the crazy benefits, to an office in a house. I learned quickly that my work mattered, that I could launch anything quickly.
At startup, the most essential thing is growth, but later it’s more about unit economy (in SF if you’re not growing 100% a year, it’s stagnation) one has to learn what’s realistic in the startup world vs. what’s perceived, it’ll make the job a lot easier in the long run.
I believe in gamification. By establishing a reward-based system where players are rewarded for solving complex problems, we’re untangling a lot of issues that would otherwise get pushed aside. People love chasing a prize, and by rewarding handsomely, it not only strengthens the bond between those who did the work, it obviously helps the company but also doesn’t burn people out through boredom.
Do first and chase hierarchy later. If you start doing things because it makes the flow of the work more manageable, and then realize you deserve a promotion for your efforts, we’ll talk about it. We believe in the team dynamic, but also self-starting.
My team is comprised of 32 people, three managers. The total amount for the company is 150 worldwide and spread across three offices.
"Our philosophy: we run a service. People should own the problems that we're solving, along with the issues that arise."
We believe in Full Stack Ownership. Building ownership is hard because it’s a part of the culture, which is something you can’t force because once you become heavy-handed, it can ruin everything. It’s common in Poland that as a dev you’re seen as some kind of special ops that are called when there is a problem that needs to be solved — but it’s reactive. Startup-minded people love having a broader scope, people coming from “older” companies not so much, and they need to adapt to the mindset.
Software Development Is a Jungle.
Most of the time, you’re gardening and pruning, but you can’t predict a meltdown, so accept that you can’t control it, but you have to manage it. You’re not growing trees, you’re managing the forest.
Sumo Logic creates software for engineers, so we can never forget our core audience. Educating people from the start – even before hiring them, is critical to how we do things. We have Product Managers (also, mini PMs for micro-services) who define, design, implement and maintain features, but the ideal state as a manager is to not to have to do anything. A well-oiled machine is a dream.
We strive for visibility across all channels. From software to how we solve problems, we’re building products for people like us, other software engineers. We champion culture above all because we need to stay focused on keeping who our core audience is and what they want from us as a product, but also a company as we scale into different areas.
"We maintain that hiring for the right fit is more critical than someone with hard skills. We've passed on some top-notch engineers because they weren't a fit."
A good manager doesn’t get in the way of their people. We need to keep an eye on solving problems, handling escalations, but also if things are going wrong, be the gardener early on — don’t let problems grow. Never postpone. Weeds grow, and it’ll only get worse.
Hackathons are essential. We hold two every year, and they last a week. It’s enough time to develop something not only on the developer's level but on team level too, we tried shorter hackathons, and there wasn’t enough time for teams. We look for positive black swans — but do not let chaos affect clear KPIs (cost estimations etc.).
Your first few hires define the culture of the office and the company. You should know 20 people you’d love to come join you, that you already know who you’d like to work with.
After working with remote teams for a while now, I’ve learned a few things: You need to prioritize work from remote workers higher than locals because those in the office are easier to connect with, even it’s just for a Coke and quick check-in. You need to have a system. How do you handle working within different time zones?
Team-to-team relations are easier to maintain than individual-to-individual when talking about distributed teams. There are a lot of tools out there like Slack, Trello, and Confluence that make collaborating straightforward. We’re split between the US and Poland, so we need systems everyone can embrace.
"Working across the world has taught me to be more organized with my thoughts.
How I interact with someone who’s hours behind. We both need to accomplish our goals, so when we talk, it needs to be meaningful. Sometimes you need to stay longer and sacrifice dinner at home to connect with people. You need to understand the interactions, join the discussion early on when something is developing or needs to be fixed ASAP.
For more stories like this, check out The DevTeam Project or listen to our podcast using one of the platforms below.
Opinions expressed by DZone contributors are their own.