Engineering - 09 Aug 2021
Building Successful Engineering Teams
I recently celebrated my first anniversary at Irembo as Director of Engineering after spending fourteen years working in Silicon Valley as a software engineer at various levels. The opportunity to move to Rwanda and join the Irembo team presented itself as a learning curve and a breath of fresh air from my own norm. I have had a rare opportunity to both travel to Rwanda, work, and build a great team. When I joined the Irembo engineering team, we started with approximately nine engineers. We have increased our engineering team to twenty engineers over a year. Although hiring has been crucial when building our engineering team, it has not guaranteed a successful output.
The conversation has changed as the team has grown and the question has now become, ‘How do we build and successfully run an engineering team?’ We are still adaptively learning as a team, but It has been valuable to share the lessons that we are learning as a way to also be receptive to new ideas, and begin to mold ourselves for the next leg up, and further successes test.
“It doesn’t make sense to hire smart people and then tell them what to do; we hire smart people so they can tell us what to do.” – Steve Jobs.
When looking to expand your team, Steve Jobs said it best to build out a hiring process that correctly identifies engineers who have the right prowess and positively contribute to the team while improving on existing inefficiencies. To successfully achieve this has been crucial to build a rigorous vetting process for candidates, which similarly assigns the right level of responsibility according to a candidate’s career level and expertise. As with any company vertical, it is equally important to have a clear path to success as engineers grow and expand within the engineering organization.
Once there is an engineering team, that team requires a structure that directly supports the business use cases and delivers products and services that are aligned with the business’ vision. Irembo focuses on democratizing access to digital services, and our team should be organized in a manner that supports product delivery. The “how” is the focal point. Ideally, the team structure needs to create scalable and repeatable processes that deliver services to citizens and concurrently foster individual growth. Individual contributors understand where they are in the engineering ladder and how they can grow. They understand the process to be difficult, but fair and open for all to participate. Successful Individual contributors require engineering leads that anchor the team and provide necessary mentorship to junior engineers as they grow within the organization.
Engineering teams and leads need to operate from a position of trust and passion for the products they are building. Trust gives space for risk-taking and the desire to think outside the box to solve the company’s immediate and future needs. It provides the space for engineering to think more deeply about the classes of problems they solve and how to solve them broadly. When engineers work on software designs that they are passionate about, it doesn’t mean that all your problems will go away. It doesn’t mean that you have the right abstraction, but what it does mean is that engineers will be willing to go the extra mile to make sure the product is fixed when there are problems.
“Choose your battles. If rapid development is truly a top priority, don’t shackle your developers by insisting on too many priorities at once.” – Steve McConnell.
It probably cannot be emphasized enough how vital it is for the engineering team to focus on projects that support the corporate strategy while also considering that less is more. A successful engineering team must maintain focus and ruthlessly prioritize the projects that it takes on and allocate resources accordingly. Fighting on too many fronts with engineers exhausts the team and leads to dejected engineers racing to meet their deadlines. Engineering leads need to save their most prized assets for the company’s hardest and most important problems to solve.
Everyone identifies with a strong brand, and good brands are not built overnight, it is an amalgamation of engineering culture conducive to productivity while encouraging personal development. Building a successful engineering team implies that we can attract and retain some of Africa’s top engineering talent. Those who move on to work at other organizations should feel that they have gained invaluable work experience as part of the Irembo engineering team. At the heart of branding, I firmly believe that an excellent engineering team gives existing and future engineers an understanding of the qualities that we are looking for in the team as we grow.
The software engineering landscape is mercurial, technologies are ever-evolving, and projects have moving goalposts. Building a successful engineering team is a lot like coaching any team. There are wins and losses, there are good days, and bad days, however at its core a good engineering team, inclusive of management, needs an unshakable determination to find and solve hard problems.
Product - 31 Dec 2021
IremboGov in 2021
In September 2020, we completed the migration of IremboGov to a brand new 2.0 version: a major overhaul of the
Engineering - 08 Oct 2021
Customer experience engineering
Any great business only exists because of its customers. Without our employers (customers), there is no business. Smart businesses are very customer-centric and Irembo is no exception.