• Platform

Growing an effective tech team

20 January 2022
Quote by JUMOnaut, Fábio Matos saying

JUMO is always looking for ways to innovate and to enhance our banking technology platform. Chief Technology Officer, Fábio Matos, reflects on some of the systems, tools and processes we’ve put in place to ensure JUMO runs one of the most evolved tech teams in the sector.

‘It seems like it was just yesterday that I joined JUMO as VP of engineering, when in fact, it was 2019. It’s been a bumpy but fulfilling ride. I knew I was joining a team of dynamic, experienced professionals and that the expectations were high. Looking at how much we’ve been able to achieve over the past years, I am proud of what we’ve done amidst a challenging global pandemic. Here’s what we worked on the hardest.

How we make decisions

After taking some time to get to know the ins and outs of the business and their people, it was time to get to work, and the first task we tackled was to define a decision-making process that could enable us to make the big decisions needed to move forward. We adopted an approach that did away with committee-based decision making and allowed for broad visibility and feedback. This model has become applicable for a wide range of current and future challenges.

The challenge

We had to create an inclusive plan that gave all our team members a voice and an opportunity to make their opinions known.

After all, teamwork plays an integral role in the success of our tech strategy.

The solution

To get everyone involved, we chose to go with RFCs (Request for Comments), where we use simple Google documents, created using a predefined template. Each document covers: background, scope, a review of the current situation, problems with the current situation, potential solutions, and a proposed solution. 

Each document is compiled by a few people that are close to the specific topic and is then shared for open commentary from all team members. The RFCs have a turnaround time of around two weeks before they are closed. The final selected solution is therefore peer reviewed and then implemented. 

This simple yet powerful distributed review process can be used for almost anything – architecture, processes, tech stacks, etc. It gives us the right balance between formality, ownership, visibility, participation and pragmatism.

How we stack up

One of our other commitments was to look at our tech stack and choose the best option available for each major use case. We looked at all the integral parts, from infrastructure to programming language and framework, and everything in between. We then selected and started using a new tech stack for all new services, whilst migrating existing services to it over time.

After the successful implementation of new services and the migration of existing ones, we ended up with the right tools to allow us to do our jobs in the most efficient and seamless way. Below, for those interested, were what we deemed critical for our work:

  • SCM: GitHub
  • IaaS: AWS
  • IaC: Terraform
  • Container: Docker
  • Container Orchestration: Kubernetes (AWS EKS)
  • Relational Database: PostgreSQL (AWS RDS Aurora)
  • NoSQL: AWS DynamoDB
  • In-Memory Cache: Redis (AWS ElasticCache)
  • Data Warehousing: Amazon Redshift
  • Data Analytics: Apache Spark (Amazon EMR)
  • Message Broker: Apache Kafka (Amazon MSK)
  • CI/CD: Jenkins (CI), Spinnaker (CD)
  • Observability: Datadog (Metrics, Logs, Tracing, Alerts)
  • On-Call: OpsGenie
  • Programming Languages: Kotlin (Backend), TypeScript (Web and Mobile)
  • Application Frameworks: Spring Boot (Backend), React (Web), React Native (Mobile)

How we hire

With the right tech stack  in place, we started looking at getting the right people to do the right jobs.

The challenge

We wanted people with the know-how and a demonstrated ability to help us take the department to the next level.

The solution

This meant that we had to look at all our existing roles to identify and appoint the right talent needed for specific areas. Today, everyone in the engineering team fully owns their domain and possesses the relevant expertise. I am extremely impressed at the level of dedication and valuable knowledge my team members possess and share.

How we structure effective teams

To create a manageable and effective way of working, we had to create lean teams that know their domain. Collectively, they need to get the ball rolling and deliver within specified times, but most importantly, come up with long-lasting and informed solutions. Each team has the following structure:

  • A Tech Lead who was previously a Senior Software Engineer i.e. they have technical expertise and can still code. This person facilitates team and inter-departmental discussions.
  • A Product Owner that manages the team roadmap and timelines with the Tech Lead.
  • 4-8 Software Engineers, with multiple experience and skills levels that own their domains end-to-end, that is, from ideation to production. They report to the Tech Lead.

We don’t have any other support roles outside of the teams, by design, so it’s clear to everyone who owns what.

How we efficiently manage workflow

Our workflow management has improved tremendously since our decision to use Scrum as project methodology, with a few customisations, and Jira as support tool. I can comfortably say we are now expert users of both, and our goal is always to make the day-to-work as seamless as possible. This in turn has led to improved predictability of delivery over a longer period.

How we create a culture of inclusion and transparency

Our commitment to fostering the right culture where company objectives, performance and decision-making processes are available for everyone to see and comment on, was the motivating factor behind all our hard work. Whilst we are aware that not everyone will agree on everything, the expected minimum is that the reasoning process is known, and it makes common sense to all. 

If a team member thinks something is not working and strongly believes it can be improved, we encourage pointing it out and also helping to fix it.

Although we have managed to achieve a lot as a team so far, I realise that this is just the beginning of our journey together. We have built a strong base, but bigger and better improvements are on the horizon. Now we are ready for whatever comes our way.’

Connect with Fabio