ITP Award Winner 2023 - Engineer of the Year / Tom Buil
Introducing Tom Buil, the winner of the 2023 Engineer of the Year award. Not only has Tom excelled as an individual engineer but he has also dedicated himself to enhancing processes and meticulously documenting solutions. Tom's commitment to fostering a zero-ego culture has instilled a mindset of continuous improvement and excellence, not just within himself but also among his colleagues on the engineering journey. With a unique blend of technical aptitude and contemporary leadership, Tom stands out as a rare talent in the field and a truly worthy Engineer of the Year for 2023.
We took the opportunity to talk to Tom about his career in Software Engineering and what winning this award means to him!
1. Your journey from a Trainee Software Engineer to your current role as a Technical Leader has been impressive. What pivotal moments or lessons have you encountered along this career path that significantly shaped your approach to engineering?
Earlier on in my career it was possible to know almost everything about full-stack web development from either the Microsoft or open-source side. This was hugely empowering however, it did not last long as web development tools and technologies advanced quickly. This rapid advancement meant there was soon a vast amount I did not know, and that knowledge gap has been growing ever since. Being comfortable not knowing was a lesson I learnt around that time.
For me it is important to stay curious when it comes to new ideas and technologies, then making a measured decision about which of these you should ‘deep-dive’ into. When team members (who are often more junior) bring amazing ideas and tools to the table, take the time to listen and embrace their contributions rather than fearing them.
Another important lesson is to try and lose your ego and be aware of your biases as much as possible. It’s not about you. It’s about the customer, the business, the team, and the platform or product. Collaborate with the team on problem-solving and soundboard your ideas with others. In my experience, an idea is always improved when shared.
It is natural to try to align a new problem to an existing known pattern and make a snap decision to solve it there and then. Try to hear out the full problem before thinking about possible solutions.
Finally, if a lot of team members are saying the same thing, don’t fight it, they’re most definitely right.
2. The anomaly detection mechanism you designed for billing source data is a unique aspect of your work. How did you come up with this idea, and how has it enhanced the reliability of customer billing?
The idea came after seeing how unreliable the source billing data (used in our billing migration project) could be. Integrating with a third-party billing system gives us a stable platform with a lot of powerful features, but it rightly prevents us from tampering with billing data once it is loaded into the system. We needed a way to stop the incorrect data being loaded in the first place, without needing daily manual intervention. The anomaly detection mechanism is essentially a medium-term shield against unreliable legacy processes and data, until they are completely replaced in later phases of our billing project programme.
Incorrect data may sound trivial, but should this data make its way into the third-party billing system, many customers could end up with bills which are significantly incorrect. Of course, these ‘mistakes’ could be rectified manually afterwards through customer credits/debits. However, doing this too frequently puts the business at risk of reputational damage, so this approach is always a last resort.
My path as an engineer started out as a web developer, and a golden rule of web development has always been ‘never trust the client’ i.e., the backend code should never trust what the browser is sending it, as this data could easily be different to what is expected. This defensive thinking was something me and my team applied to the billing platform: ‘never trust the data,’ hence the daily anomaly/integrity checks.
Since implementing the mechanism, the reliability of our daily data synchronisation has improved greatly. Whenever the mechanism spots a significant change in the metadata associated with the day’s billing data, it immediately alerts the operational team and pauses the sync process. This has happened several times recently, which has prevented significant customer billing impact. However, fine-tuning the tolerances of the mechanism is ongoing as we seek to improve things further.
3. The nomination mentions your role in empowering engineers with ‘T-Shaped’ ownership of new services. Could you elaborate on this approach and how it contributes to the success of your team and projects?
As an engineer I have often felt empowered when a leader has delegated an area of a system for me to ‘own,’ an area to be the expert on, whether this responsibility is my own or shared with others. I am very keen on owning our work as individuals and as a team.
Having access to good documentation that enables team members to work on any module is important to me, but combining this with deep knowledge of specific modules is essential, particularly on complex systems. It is, after all, impossible to be an expert in every area. Engineers who are experts in a particular area, who also have the technical freedom to exercise their creative problem-solving skills find this highly rewarding. To mitigate the risk of widely differing technology choices, a level of governance is needed. That is partly where I see my role.
Using the t-shaped knowledge approach for my team has certainly improved the quality of our work. I see more innovative solutions, engineers are more invested in their work, and there’s a definite boost to team morale. We have a good spread of knowledge across the team and enough experts so that we have resilience through holiday and sickness periods, which helps to prevent blockers as we move forward with projects.
4. Managing an agile team of 10 developers and Quality Assurers requires effective leadership. How do you foster a zero-ego culture within your team?
For me this starts out with having a good view of what a healthy development team looks like. In my eyes, this means cultivating a friendly, safe space to challenge each other, in which people feel motivated to achieve the team’s goals.
Admitting mistakes as a leader is something I have always respected in others, and it is something I try to do myself. I hope it normalises being fallible, which can help reduce defensiveness and ease the pressure to be perfect. The important thing here is that lessons are learned, and improvements are made.
I also try not to take up too much space in meetings, which largely means listening more than talking and refraining from controlling the agenda. This gives others in the team the opportunity to contribute more to our discussions.
5. In addition to your technical responsibilities, you've actively participated in mentoring and mental health training. How do you balance your technical leadership role with the human side of management, ensuring your team's well-being?
This is probably the most challenging part of the role for me i.e., trying to deliver on technical tasks, being empathetic and flexible with team members, but also remaining focused on our goals as a team and the need to deliver results.
I try my best to be responsive to the team’s needs, particularly as mental health issues can impact suddenly, or can become apparent over time. Making time to check in on people through informal conversations, having regular scheduled time together, and having an awareness of personal circumstances helps me to support my team’s wellbeing and signpost when needed. Building trust and open communication is important for this, which can take time, but it is incredibly valuable.
Context-switching between scheduled meetings, management tasks, and technical tasks is not particularly efficient. I automatically block out ‘focus time’ in my calendar, which gives me space to focus on technical tasks throughout the week. That said, I do have an agreement with my team that I am always available to be contacted if support is needed.
6. The nomination mentions your advocacy for mental health, particularly for remote developers. How do you create an inclusive and supportive virtual environment for your team, ensuring they feel connected and supported despite working remotely?
Virtual pair programming is a common practice that I encourage within the team. Not only does this have the benefits of an improved solution and shared knowledge, but there is also the benefit of building peer-to-peer support, and along with it, personal connections for team members. It’s amazing to see the team independently reaching out and offering support to each other throughout the day on various technical tasks.
Relying on other members of the team like our Scrum Master and Business Analyst to bring people together for scrum ceremonies has been invaluable. Our fortnightly scrum retrospective meetings are a particular highlight, in which our Scrum Master has artistic license to invent fun retrospective boards; the latest being a Marvel-themed board with questions for the team like ‘What things made Hulk angry this sprint?’ The sessions are entertaining, and the feedback shared is hugely valuable to me for understanding what support the team needs.
Having done it myself, starting out at a new organisation when working remotely can be isolating, particularly as a developer. It is essential to enable frequent opportunities for connection when onboarding a new starter. I try and do this by setting up a schedule of knowledge sharing/networking sessions with each of the team members, and various key stakeholders. An onboarding ‘buddy’ is also assigned, so the new starter has a go-to contact other than myself. Having more frequent check-in calls in the early stages of the onboarding process is also important.
I like to encourage regular daily technical chatter and knowledge sharing via Teams. This is mostly to chat about the tasks we are working on but it’s also an outlet for any of the team to share their passion for new tools and technologies. This helps make the remote development team feel like it is ‘alive’ and we’re all connected to it. It also gives more opportunities for me and other team members to offer support in the early stages of a piece of work, rather than right at the end when it is code-complete.
7. The ITP is committed to challenging industry perceptions, how can we promote a more diverse workforce in engineering?
The work the ITP is doing around apprenticeships is really nice to see. I am hugely supportive of initiatives that encourage young people from all backgrounds to choose a career in engineering. There are so many talented young people out there who need only to be given the opportunity and mentorship to shine.
As a father of two young daughters, I value anything additional that businesses can do to highlight successful women in engineering roles. Representation is key to inspiring and empowering more girls to choose this challenging yet incredibly fulfilling career path.
8. Finally, what does winning this award mean to you?
It is such an honour and hugely validating to be recognised by the ITP. Like so many engineers, I have spent a large part of my career coding away in the background, wrestling with imposter syndrome on an almost daily basis. It is nice to pause, take a step back, and think, actually I’m ok at this. So, thank you ITP and Giacom for all your support, it has been an incredible journey so far.