The 7 Habits of Great Product Engineers Sponsored
I’m Brian White, a Director of Engineering at Intercom. We’re sponsoring the Intercom Track at Webcamp this year, and I’ll be in Zagreb with five of our team to attend and learn from the amazing event that's in store.
Why are we sponsoring and attending?
- It’s an event for community and by community this resonates with us at Intercom, we host & help dozens of meetups and groups in our offices
- We have 3 Croatian folks on our team who speak with immense pride about their country and its people, specifically its developers, so we knew we had to check it out :) Mario Kostelac is coming along for the journey.
- We care deeply about learning from the best and brightest. At Intercom we strive to become a team of truly exceptional engineers. So any chance to learn from smart folks is always exciting.
I spend a lot of time thinking about what it means to be a truly exceptional product engineer. Working at all sizes & stages of companies has exposed me to all types of engineers, from junior to senior, backend to frontend, language specific to language agnostic, and much more. Over my career I’ve learned the following traits to be incredibly positive signals:
1. Exceptional people are ambitious and determined
- They’ll dream big and push themselves, you, and your team, towards bigger achievements than you initially thought possible.
- They have a growth mindset . They crave feedback, and new challenges that will push them to grow, they persist in the face of setbacks, they see effort as the path to mastery, they learn from critical feedback, and they’re inspired and learn from the success of others.
Why this matters
Ambition is a ceiling to success, great companies have huge ambition – which initially comes from awesome founders, but is sustained, and thrives with the addition of ambitious people you hire. Ambitious and determined people will fight for impact and push for greatness. Ambitious and determined people will outperform, and grow higher and faster than people who are perhaps more talented, but lack self drive. Bet on them, and spend your time helping ambitious people grow.
2. Exceptional people habitually simplify
- They make the code they own or touch simpler, clearer, easier to work with and faster to change. They do this out of habit, opportunistically and continuously.
- They help their team, and those around them do the same.
- They always have some long term vision of where the technology they own should evolve to, they bring others in and get them excited about that vision, and they drive towards it step by step.
- “Any fool can write code that a computer can understand. Good programmers write code that humans can understand” Martin Fowler.
Why this matters
The default path for growing and evolving software is that it becomes more complex over time. Every single change will probably make your system more complex, unless you’re deliberate at simplifying. More complexity > higher cost to change + higher risk of a breaking change > harder to innovate > harder to grow > less satisfying > more :( etc.
3. Exceptional people can debug anything, quickly
- Not by guessing – they shun superstition.
- Instead, guided by instinct, but with rigor and process, they will narrow in on the root cause from different angles. They’ve a wide arsenal of sources and techniques to gather information; from the code & tests, the network, the OS, the DB, and from logs and metrics. They won’t stop till they’ve found the actual root cause.
- They’ll reproduce it and narrow in on the problem using techniques like the “saff squeeze”.
- They’ll fix the problem well, and learn about how it ended up broken, and adapt to avoid similar failures in future.
- They can do this because they are deeply connected to the details – (not an architecture astronaut)
- You won’t hear them say “I’m a Java guy, I cannot debug this web page”, or “that’s someone else’s code”
- Debugging is a fun challenge for them, and a learning opportunity, and an opportunity to simplify.
Why this matters
Things will break. Spending time fixing is opportunity cost. The quicker you can fix, the more time you can spend building value, and the less trust you lose with your customers. The better you fix, and simplify, the more time you free up in the future which may otherwise have been spent fighting further regressions. Good fixes come from those who deeply understand the problem.
4. Exceptional people help others be great
- Great engineers are engineers that everyone wants to work with.
- They understand that they can have more impact by helping those around them to learn / improve / thrive, and they get joy from that. They understand that “Productivity = Σ of talent * teamwork” and they naturally raise both talent and teamwork on a team.
- They take care of the unglamorous or mundane quickly and effectively, and without fuss or huff.
- They aren’t selfish with all the hard problems, they know that others need challenges to grow, and they support them well, but at the same time they regularly demonstrate their ability to solve hard problems well/quickly.
- They are good teachers, they’re patient and good at adapting to support the different learning styles of those around them.
- They hold high standards, but bring others there with joy, not conflict (they are ‘kind to the coder, not to the code’).
Why this matters
Companies that aren’t growing, die. Companies that are growing, thrive. The same is true of people, and teams. Hire people that fight for growth in those around them.
5. Exceptional people know what’s valuable
- Ron Jeffries says “keep it simple, make it valuable, build it piece by piece”. But value comes in many many forms. Typically, as a company, we value features that sell. But we also value feedback, we value speed and quality, we value people’s happiness, we value creativity and innovation, and we value the ability to move fast. A great engineer has good judgement on what matters most at any point in time.
- They’re customer focused, not just technology focused.
- They’re ambitious, they make sure they’re solving big valuable problems.
- This applies not just to what they choose to do, but also to how they do it. They weed out inefficiencies in process and communication – they act like they’re spending their own money.
Why this matters
A company can scale if you can trust and empower teams and units to be autonomous around their area of ownership or objectives. At any point in time, there are literally multiple firehoses of ideas to explore, things to fix or iterate on, but you’ve only got a small bucket to fill. Trust comes when you know your people fill that bucket with the right things.
6. Exceptional people are creative and positive
- When things are difficult, they give everyone hope and courage.
- They encourage possibilities, instead of saying “that will never work”, they will understand the problem and what’s valuable, and give those around them options.
- They are leaders, not victims.
- They push and encourage innovation both in the product they’re building, and in the way they are building it.
- Their positivity is balanced with healthy skepticism – they’ll be more paranoid about whether what they create works properly – rather than celebrating victory once it appears to work.
Why this matters
The default path for startups is towards failure. A team that thinks it’s going to lose, will lose. Positivity is infectious, and brings the best out in people. A team that has belief and is constantly creative in its efforts to succeed has a chance.
7. Exceptional people are always looking to learn...
Which leads me to my last point. We’re coming to Zagreb to hear from some of the smartest folks in Europe.. And... we’re giving away 9 free tickets to make it easy for you all to attend.
I’m excited about my first trip to Croatia and our whole team is looking forward to sharing how we work. Mike Stewart, one of our engineers, will be giving an extended version of a talk that was very well received at our recent event in Dublin.
We look forward to seeing you all there.
How to get a free ticket to WebCamp Zagreb
Simply email firstname.lastname@example.org with a habit that you see in great product engineers and we’ll pick a few of our favourite responses, which will get a full conference pass.