BatvoiceAI is looking for a Confirmed Backend Engineer to increase our operational capacity. We have ambitious ShapeUp projects coming up in the line and would like to be able to tackle more of them per cycle, without compromising on our core Infrastructure concerns and investigation. As such, we’re looking for someone that’s going to be comfortable with code (as you will be doing more Dev than Ops), but doesn’t shy away from Ops work either.
You will collaborate with:
The rest of the Application team (Backend focus). You will be leading projects that you have the competencies for, and participating in projects where you have some bring-up to do (so that eventually you can lead those as well).
The Operations team, who you will be helping out with investigative (BUILD phase) and maintenance (RUN phase) Infrastructure tasks, but you won’t be leading entire projects in this space (unless you want to!).
The Data team, who you will solicit when interacting with our data processing and machine learning components.
Put differently, this job is made for you if you like to think about programs from many angles: functional, design, implementation, deployment, and infrastructure. You don’t have to be competent in all of them, but you need to be interested. This is the place for you if you want to understand how the whole thing works.
Mutualisation : up to now, the solution has been tweaked for each individual client, leading to sprawl. Now that we have a solid footing, we want to start unifying bits and pieces. Away from a monolith that swaps out entire parts depending on who the client is and towards a system that’ll work for everyone and won’t incur different maintenance cost for each. For example, instead of searching text using Postgres’ FTS and indexing based on trigrams, we’d like to move to ElasticSearch, which would run faster and serve everyone’s needs better, without the need for per-client transforms. You’ll participate in figuring out what the best solution is (on both the Code and the Infra sides) in each case and then participate in implementing it.
Modernization : while we were rushing to get established, there wasn’t much time for upkeep, while the world kept moving on. We’re now stuck on an old version of python, an old version of django, and can’t take advantage of new developments in the field. We want to move to using uv, dividing the monolith into workspaces rather than one big codebase, update to a newer python (we’d love to get to 3.14 to get both the new JIT and the free-threaded interpreter), and more. We don’t just want the application to work, and we don’t just want the application to work well : we want it to be pleasant to work on too. We love engineering, and hopefully, if you apply, you do as well.
We are a fully remote company, though we do make physical offices available if you prefer those.
We do not measure seniority by years of experience, but in terms of results and ability, leading to rapid advancement opportunities.
We offer comprehensive healthcare coverage through Alan for you and your family (50% participation).
From their second year onward, team members who demonstrate strong commitment and motivation may be granted stock options, reflecting their contribution to BatvoiceAI’s long-term success and journey.
Research has shown that having strict quantitative requirements discourage applicants that would have otherwise performed well at the position from applying. As such, instead of experience, we define skills you should have. Important: even though this offer mentions some tools, having a skill does not mean knowing a specific tool. Combined with our public definition of Confirmed, as well as our company Values, we encourage you to apply if you believe you are a good fit for our needs, provided you can justify it in some way. We document how we make hiring decisions in our public Interview Process document, which should similarly give you an idea as to whether you are likely to be selected.
VCS: we use Git and GitHub, and we appreciate well-formatted, well-written atomic commits that turn into clear and consistent pull requests. If you follow the Linux Kernel’s Patch Guidelines, you already exceed expectations.
Software development: our codebase is in Python with Django. If you have never used either, that is fine, but then you will have to show that you will not have any issues getting good at them quickly.
Databases: we currently use PostgreSQL with TimeScaleDB through Django’s ORM with the intent of moving data to another storage engine, e.g. Elasticsearch. Therefore, you should be comfortable with SQL and open to other kinds of databases.
Infrastructure and deployment: we use AWS with OpenTofu, Kubernetes/EKS with Helm and Flux CD. We’re looking into on-premise deployments as well. You won’t be working on these directly necessarily, but you need to have a solid understanding of what these things are and how they work in order to interact with them (or at least to be willing to learn quite quickly).
Data processing: the core of our business is processing data; we currently leverage Argo Workflows and intend to move to another solution in the future. You should understand the concept of a data pipeline (whether it’s ETL, ELT or any other approach) and be able to reason about the pipeline as a whole.
Teamwork: our Engineers should not silo or work silently, an importance that is ever greater in a fully remote company. This position requires a mix of autonomy, discipline, cooperation, and communication.
Human languages: English is our working language, but our clients speak French — being proficient in both languages is definitely an asset.
Bonus ultime: experience with ASR (Audio Speech Recognition) and scikit-learn. If you have these, you’ll be able to help the Data team out as well, if that interests you.
We’re aware that the Venn diagram of “Software Engineering” and “Infrastructure” is not very big. The original point of “DevOps” was to merge the two practices partly, to avoid Engineers that write things that cannot ever run well, or Sysadmins that don’t know how to do any capacity planning (for example, giving an IO bound application 500 CPUs and 1GB of RAM). As such, we’re really going to be looking out for two kinds of profiles:
People that are software engineers, but are comfortable with infrastructure and are conscious of deployment processes.
People that are the modern definition of “DevOps”, but aren’t afraid to get their hands dirty writing code (this position is predominantly more Dev than Ops).
The entire recruitment process (including the steps we take internally) is documented in our Public Handbook. The short version looks like this:
1. Your CV and Cover Letter are reviewed by Engineers. This will take 1-2 business days at most.
2. Bidirectional technical interview. If you’re selected for this step, you will be contacted to schedule this. It can happen as early as the day you’re selected, or within the next couple of days.
3. HR interview and Culture Fit with Maxime, our CEO. This step depends on his availability, but should not take more than a couple of days to organize.
We expect to finish the selection process by October 17th, at least for the first batch of candidates. Also note that while the start date is marked as November 3rd, if you’re a good fit, we’re willing to wait (significantly) longer for you.
Meet Maxime, CEO
Rencontrez Julie, Project Manager
These companies are also recruiting for the position of “Software & Web Development”.