-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manager interview: João Fernandes - Onfido #137
Comments
Hello João. Can you introduce yourself and talk a bit about your background and what you do? |
Hi there! Let me start by thanking you for the invite. I'm a big fan of the blog! My name is João Fernandes and I'm first and foremost a Software Engineer. I'm a geek at heart, and although my career has been pushing me towards management duties, I love technical work. I'm currently an Engineering Lead at Onfido, an identity verification company headquartered in London, UK, with an office here in our beautiful Lisbon, Portugal. We help making your customer onboarding experience quick, slick, secure. My team is responsible for our Anti-Money Laundering product line, so no pressure! Besides that, I'm also a Lead Teacher at Le Wagon, a coding bootcamp made for everyone, regardless of their academic or professional background. I'm a Instituto Superior Técnico (Lisbon, Portugal) alumni, from where I got my MSc in Software Engineering, with a major in Distributed Systems. I graduated in 2011, and since then I worked in both multinational companies and startups, here in Portugal and abroad. My past companies include Honeywell Aerospace, Coriant and Talkdesk. By now, most of my professional life was spent working for SaaS offers. Talkdesk was obviously special and made me grow a lot in many ways. We were 4 full-time engineers when I joined, 9 people in total. There were over 200 people at the company when I left. I was just a small cog in a large machine, but I'm obviously proud and grateful that I got to witness such growth. I joined Onfido at a later stage, but we almost doubled our workforce in the last year and half. |
From you experience, what are some major pitfalls we may experience when scaling an engineering team? |
Entire books are written on this sole question. I split the major pitfalls I witnessed firsthand into two groups: human and technical. Human pitfalls start right at the hiring phase. A hiring process must take the company's day-to-day operations into context, it must look for skills that applicants will need to succeed. For example, it's crazy to me how little companies assess the written communication skills of their applicants these days. We live in an era where slack, code reviews and commit messages are the most significant communication channels with your team. Yet on the topic of hiring, be flexible towards your candidates, but not soft on them. Does a candidate need a few more days to complete the code challenge? Sure, most of us have full time jobs and families, that's understandable. Is she/he too busy to do a code challenge? Then thanks, but no thanks. Lowering the bar when hiring sends a dangerous message to the entire organization. Beware. Look for people who clearly want to join your team, who show you that they care about their craft. As the deceased Randy Paush said in his famous Last Lecture:
If hiring is extraordinarily difficult, then maintaining people happy and getting the best out of them is next level hard. Humans are unbelievably complex. We all have different drives, expectations, fears. The bigger your team gets, the harder it is to keep a keen eye over everyone. The most common pitfall I've seen when it comes to this are misaligned expectations. You already covered here in your blog a set of practices that I find essential: 1-on-1s, mentoring, growth plans, etc. As a manager, it's your duty to act on the feedback that you receive, to serve those who report to you. I'm sure that we would all love to work full-time on green-field projects and get 20% raises every 6 months, as I'm sure that companies would love to see more done in less time. While that might not be realistic, doing nothing isn't acceptable. Keep expectations aligned, or prepare for a lot of frustrations, and ultimately, for churn. It's impossible not to touch company culture at this point. Company culture is about values; values come from leadership; to lead is to give the example. Set the bar, expect people to follow it. With that said, well-defined company values are an asset! I love Onfido' approach to company values - check https://onfido.com/culture/ - but it only works because its values really are embedded into the fabric of the organization. When it comes to technical pitfalls, I would like to point out the impulse to enforce equal constraints across all teams. We don't force people to write software while standing up, so why do we force them to, for example, use a given programming language? Well, there's a reason for that: cost. With that in mind, stay open-minded about analyzing the cost-benefit of doing something differently. Impose as little constraints as possible to your teams and listen to those who are in the trenches. |
Where should we draw the line on imposing constraints? Development processes (good commit messages, pull requests reviews, unit test)? Scrum/kanban/waterfall? Languages and other tech stacks like databases? How can we prevent silos from coming up and the drawbacks of them? |
No description provided.
The text was updated successfully, but these errors were encountered: