Time zones: SBT (UTC 11)
, GMT (UTC 0)
, CET (UTC 1)
, EET (UTC 2)
, MSK (UTC 3)
We have an opening for a backend engineer to help us plan and produce top-notch banking products.
We have spent the last four years building a bank for European businesses. We are reenvisonning practically everything, from technology to procedures, and are committed to incorporating thoughtful and creative design throughout.
About the position
The role centers on our Core Banking System (CBS), the heart of our technical infrastructure, which we’ve written in Elixir (~10%) and Kotlin (~90%) and have developed entirely in-house. Your contributions to our CBS will focus on the development of our transaction management system including connection to payment systems (SEPA) and to the ledger, as well as fraud detection, etc.
More broadly, you will work on the APIs that allow our backend to communicate with our apps (desktop and mobile). You will also integrate the third-party services we rely on. You will be the go-to person on the tech side for banking issues, the starting point for our developments.
Our CBS team is also building the infrastructure and the data management tools at the center of our data management platform (DMP). Our DMP retrieves and records the events that happen in our banking system. It’s our system’s memory. The data collected facilitates the fulfillment of regulatory requirements and also helps us manage cash flow. For example, we regularly create reportings and calculate several regulatory ratios (liquidity, solvency, etc.) in order to enhance our risk management capabilities or track our inbound and outbound cash flows and therefore facilitate proper cash flow management.
As a backend engineer, you will alternate between conceptual, discussion-based phases and periods of execution. Of course, you will be writing code, but the scope of your role will not be limited to that. You will also write tests and documentation to help your colleagues follow your progress, etc. You will learn from us, and we will learn from you. You will participate in code review, fix bugs, and help us maintain the quality of our tech.
You will be encouraged to share your thoughts on numerous topics using our dedicated collaborative communication channels: Confluence, a lasting record of searchable asynchronous discussions, and Slack, a tool for quick and informal exchanges.
We believe in peace and quiet for developing both our products and our company. We strive to ensure that everyone has periods of uninterrupted working time in an environment that is designed to promote concentration. The way we organize our work makes it possible to put code into production on a regular basis.
If you’d like to know more about what our engineering team is working on, check out these articles and presentations:
- Web Development at Margo Bank—Benoît de La Forest;
- Why Elixir?—Jérémie Martinez;
- Choosing an architecture—Joan Zapata;
- Nos premiers mois avec Elixir—Raphaël Lustin (in French).
While we are constantly looking several years ahead, we remain curious and open to new ideas. It’s a conscious effort to keep from stagnating or falling into complacency. Would you like to read a particular book? We will add it to our library. Is there a conference you want to attend? We can cover the fees, travel and accommodation.
Generally speaking, you will:
- Write efficient code designed to scale and to last.
- Help define our products’ technical orientation by taking ownership of projects.
- Share your expertise with colleagues by participating in code review, writing documentation or organizing internal presentations.
- Suggest new tools and methods to help us continually improve the way we work.
- Work closely with our product designers and frontend developers at every stage of new feature development, from conception to delivery.
- Write documentation (in English) for the APIs and apps that you work on.
- Think like a customer service rep and incorporate the perspective of our bankers and clients when improving our product offering.
You are an experienced and autonomous developer who values the discussions and compromises that come with adding features to complex apps. You enjoy focusing on your code, but you are also aware that your job doesn’t end when the feature is shipped. You get at least as much satisfaction out of working with product managers and designers to ensure that your creations will remain relevant in the long run as you do from actually making them.
Your efforts are not foolproof, and you don’t pretend that they are. You’ve broken a production environment before and worked twice as hard to fix it—without panicking. You have a solid grasp of the major principles of version control, continuous integration, code review and documentation, and you know how to use Git.
Our strategy is to hire curious, daring, humble people and then to give them a lot of freedom to learn and create. We're much more interested in what you've been doing since you graduated than in your degree. In our experience, properly-thought-out and well-executed projects tell us more than a piece of paper from even the most prestigious institutions.
- have at least five years’ experience with functional and/or object-oriented programming languages—we mainly use Kotlin.
- have software architecture, scalability and performance optimization skills.
- have a solid understanding of relational databases (PostgreSQL for example).
- are accustomed to working collaboratively on code (tests, review, continuous integration, version control, documentation, etc.).
- are interested in product design and have good instincts when it comes to UX.
- care about the people who use the products that you create—you will be in regular contact with our bankers and clients.
- are comfortable expressing yourself in written English—all internal documentation is in English and you will be contributing to it.
How to apply
The initial application
If you’d like to join us, simply send your CV (or your LinkedIn) and a message (in French or English) explaining why you are applying. We don’t expect a formal cover letter, but we do want to know what you can bring to the team and what you expect from us. Don’t be afraid to let a bit of your personality shine through; your future colleagues will be reading.
You don’t get any bonus points for length, and you won’t be penalized for brevity. Leave out any parts we might be tempted to skip over and focus on what’s truly important to you.
We know that we are asking a lot. You likely already have a job and/or other occupations. If you are willing to take time out of your busy day to write to us, we genuinely appreciate it. The ball is in your court. We hope to hear from you.
The interview process
Here’s what you can expect if your initial application is successful:
- A phone interview with our recruitment team (30 minutes);
- A technical exercise to be completed offsite at your convenience (expect to spend about 1 hour);
- A series of video-conference interviews with members of several different teams (3 hours).