Engineering is a key area at Belvo. These are some of the principles that we follow as a team and that help us maintain our focus on what really matters as we scale.
Belvo’s mission is as ambitious as it gets: Turning legacy banking and financial institutions in Latin America into a set of public APIs and modern developer tools.
We connect consumers and companies with their financial data via public APIs, something that has traditionally been made difficult by legacy players that gatekept, often involuntarily, innovation in the fintech space.
This challenge translates into a substantial Product & Engineering effort. Starting with this post, we want to open a window into our culture, activities, processes and engineering choices. We believe that this is the best way for potential future Belvoers to get a sense of who we are and how we work.
👩🏽💻 Getting things done
One of our cultural values is literally “Getting things done”. That is – the ability to bring value to our customers, no matter the circumstances. This is something that our Founders instilled early on in the company culture, and it’s pervasive and felt in every decision and conversation we have. Bikeshedding is frowned upon at Belvo. So is Analysis Paralysis and chasing perfect solutions for the sake of perfection.
Our reward is the act of shipping software to our customers, more than the architectural perfection. This is not a sentence that you’ll find plastered across our offices – this is actually one of the things we probe for when we hire. You’re going to probably see us adding more logging and automated error recovery, rather than trying to squeeze milliseconds out of a new RPC protocol.
We do like to ship beautiful and solid software, but it’s important to realize that the boundaries and contours of our applications will be in a state of constant change for the foreseeable future as we grow and mature our products. Therefore, flexibility and adaptability are more important than architectural beauty.
📊 Data-driven team
At Belvo, we make decisions based on hard data. This is a pervasive habit that permeates all of our processes and our decision making.
We have come to develop a healthy sense of discomfort when we don’t see hard data backing a decision. This is not something that happened magically, we evolved this cultural trait by asking these very simple question when we interview potential teammates:
- “How do you reconcile these conflicting solutions?”
- “What do you do when you face uncertainty?”
- “You have uncovered a technical debt situation in the codebase you’re working on. How do you make a plan to improve it?”
We look for data-oriented responses and data-minded individuals who base their reasoning and next steps upon an analytical approach.
🔎 Focusing on the differential value
We believe that keeping the engineering complexity under control is key to preserving the development speed and long-term evolution of a platform such as Belvo. We make an explicit effort to solve the problems that we encounter every day leveraging our existing toolbox of technologies, instead of adding more pieces to the puzzle and therefore making it more complex to maintain in the long run.
For instance, we have deliberately chosen to only use two well-established programming languages to build Belvo: Python (for 95%+ of our Backend code) and Javascript (Frontend and certain backend tasks).
We recognize that for some specific tasks or projects, a different programming language or technology might be better. However, we try to optimize engineering choices “globally” as opposed to “locally”. Our goal is to ensure that the team will be able to maintain our technology stack comfortably in the long run, regardless of how we’ll be organized or which individuals will be with us in a few years from now. Sticking to a smaller and familiar stack of technologies makes that easier.
To keep complexity under control, we also make heavy use of managed services. Databases, Queues, Logging, Monitoring, Orchestration, are all solved problems that we can leverage AWS or other vendors for.
🏎 High-velocity & Sustainable product development
Because we are building APIs, SDKs, and other Infrastructural software, we believe that our products have to pass a higher technical bar than the average SaaS platform.
In order to do so, we needed a product development methodology that allowed us to ship new features fast, but at the same time granted bandwidth for the necessary architecture, infrastructure and security work to keep our technical bar high.
We do that by following a fixed cadence of planning and development activities that merges product features, security, architecture and infrastructure priorities.
Following a cadence removes uncertainty and gives us a baseline to improve upon. Each engineering team at Belvo is asked to continuously maintain and prioritize a list of the most important initiatives covering security, infrastructure and architecture. Recent examples of this were improvements in the way we do CI/CD, a cross-service encryption protocol and a new battery of E2E tests using real mobile devices.
Each of these initiatives is evaluated against our business goals and estimated so that we can collectively make a decision as to what are the most important topics we want to focus on in the upcoming quarter. We package our roadmap for the quarter and split it in 2-week iterations.
This whole process stems from the company’s global OKRs, which cascade down to departments and teams. We tend to keep a laser-focused approach to our OKRs. No matter which shiny object flies in front of us, we don’t chase it unless it will contribute to our OKRs. This keeps us focused and removes noise and distractions.
🚶🏾♀️ One step at a time
At Belvo, architectural evolution is done one step at a time. We try to design our solutions to solve our present problems, along with the growth projections that we have for our next quarter. Given our growth patterns, this often translates into solution that have to work at our current order of magnitude, and the one above it.
We tend not to look beyond this 2-quarter window to avoid premature Engineering decisions and optimizations in our platform. The contours of our products and systems are being expanded and challenged every day as Belvo grows, and we believe it’s important to avoid crystallizing architectural decisions too early. In our case, the 2-quarter window has represented the sweet spot between pragmatic architectural decision and long-term vision.
🤗 Interested in joining the Engineering team?
Belvo is growing and we’re looking for teammates who share our vision and cultural values. If you feel aligned with them, we’d love to get to know you!
We’re currently hiring across a number of positions, please visit our careers page to know more.