Software Engineer — Data
About the position
The role involves developing 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.
You will compile the events related to our accounts, our clients and the loans we grant them. The record of events you create will allow us to have a single data source for all of our services and all of our clients, an approach that differs greatly from that of most other banks. This centralized inventory will make it possible to know exactly where we stand at any given moment, greatly enhancing our risk management capabilities. You will use this core record to create regulatory reports automatically at the drop of a hat. This will save our finance teams, who would otherwise spend hours compiling Excel spreadsheets by hand, considerable time and effort. In addition to producing reports for the banking authorities, you will calculate several regulatory ratios (liquidity, solvency, etc.) which are essential to proper cash flow management.
Since our DMP will also serve as our data source for accounting, you will convert the recorded events into accounting entries which can then immediately be sent to our accounting software. This means that our accounting information will always be synced to our banking data. Eliminating the lag in data assimilation in our accounting will again be instrumental in monitoring our cash flow effectively.
In due course, after our commercial launch and once we’ve collected enough banking data, it is highly probable that you will work on the following projects:
- Datamarts: for example, to address the specific needs of our accountants and bankers.
- Dashboards: for example, to monitor the financial health of our bank in real time.
- Data analysis: for example, to help bankers make sure we are diversifying our risk when granting financing.
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).
We're all working from home for the time being, obviously. But here's our remote work policy in "normal times": several members of our engineering team work from home several days a week. We encourage remote working and communicate in writing most of the time. That said, you must be able to be in Paris on Mondays and Tuesdays. If you live outside of Ile-de-France, we will cover the cost of your train tickets (between Paris and your city of residence) as well as a hotel in Paris as needed.
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 lodging.
Generally speaking, you will:
- Manage the data pipelines including regularly monitoring the data streams passing through them.
- Prepare regulatory reports that assist our bankers and the banking authorities in evaluating the financial health of our bank.
- Work with our backend developers to improve how data circulates within our organization.
- Develop data entry and display interfaces (for internal use only).
- Writes tests to check your work and to safeguard the integrity of our data.
When it comes to data engineering, you put the emphasis on engineering. In other words, you have a solid understanding of the fundamentals of backend development and a good grasp of frontend, too. You love creating and testing data streams, but you are equally capable of using the data you retrieve to pull together useful reports. You know that you cannot enjoy experimenting with large amounts of data until you put robust infrastructure in place to compile and store it.
You are an experienced self-starter 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 object programing language since we use Kotlin.
- have a solid understanding of relational databases and are accustomed to writing SQL as we use PostgresSQL.
- have specific experience with Java and/or Kotlin given that we use a Java virtual machine (JVM).
- have previous experience with Java frameworks like Spring or Hibernate.
- are accustomed to working collaboratively on code (test, code review, continuous integration, version control, documation, etc.).
- are interested in doing frontend development from time to time to bring your data to life and to make data entry easier for your colleagues by creating simple interfaces.
- 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 and returned to us via email (expect to spend about 2 hours);
- A series of video-conference interviews with members of several different teams (4 hours).
You’re interested? Tell us about your projects, your experience, and what you would like to bring to the team.
Hear from the Engineering team
Working & learning2 videosXavier Van De WoestyneData EngineerJérémie MartinezSoftware Engineer
Structure & process2 videosChristophe JunietCTOJérémie MartinezSoftware Engineer
Environment & flexibility1 videoXavier Van De WoestyneData Engineer