Senior Software Engineer
Jun 2025 — Jan 2026
RANE (Risk Assistance Network + Exchange) · Boston, MA
Architected high-performance data systems and vector search pipelines, and scaled the retrieval architecture
behind the platform.
- Built the vector search proof of concept that made the case for the approach internally. It was adopted
into the production retrieval stack, where the team took it further — reranking results on document date to
favor more recent sources.
- Worked in small, demonstrable increments so non-technical stakeholders could follow progress and redirect
early, while the underlying platform work continued between checkpoints.
- Wrote the custom internal tooling I use day to day in Go, a language I picked up on my own.
PythonGoFastAPIFalconAWSMongoDBOpenSearchMilvus
Software Engineer
Jun 2021 — Jun 2025
RANE (Risk Assistance Network + Exchange) · Boston, MA
Built and maintained the advanced data systems behind the platform, from ingestion through to search.
- Implemented the company's first production use of an LLM — a RAG pipeline that summarized the documents returned by an OpenSearch query, so users got an answer alongside their results.
- Helped migrate authentication from a hand-rolled system to an industry-standard identity provider without disrupting users. Consolidating accounts in one place made managing customers markedly easier afterwards.
- Turned OpenSearch aggregations into network graphs and other visual representations, so users could see the shape of a result set instead of only a list of hits.
- Mentored an intern over several months as they built an internal monitoring system, with dashboards covering user activity on the site and traffic across our APIs.
PythonFastAPIFalconAWSMongoDBOpenSearchMilvus
Software Engineer
Nov 2018 — Jan 2021
Waycom · Bordeaux, France
Developed and maintained a business-critical internal management system, streamlining cross-departmental
workflows from Finance to Network Engineering.
- Built the platform's Elasticsearch backend and the stack around it, after what Django REST Framework offered stopped being enough for the search the product needed.
- A use case that landed on it later grew into one of the bigger things I shipped there: an inventory built with another developer for the network engineering team — VLANs, LAN and WAN addressing, the hardware itself. What they recorded there fed the existing tool that generated router configurations and pushed them onto physical routers before they shipped to customers.
- Searching by IP address and range was what made it work for them, and my introduction to what Elasticsearch could do beyond plain text.
PythonDjango REST FrameworkPostgreSQLElasticsearchRabbitMQGrafana
Software Engineer Intern
Mar 2018 — Sep 2018
DEXSTR
Implemented high-performance NLP workflows for automated file annotation, focused on scalability and
throughput.
- Profiled the pipeline to find the critical path, then optimized it for a gain of over 10% end to end.
PythonFlaskCeleryRabbitMQ
Data Scientist
May 2017 — Nov 2017
iGEM Competition · IECB, Pessac
A bioinformatics pipeline built with two other students and an IECB researcher, quantifying differential expression of spliced mRNA isoforms in C. elegans from next-generation sequencing data. The ratios matter: different splice forms can drive different cellular responses, and can act as markers for some conditions.
- Worked directly with the IECB researcher, understanding the biology behind the question and reporting progress back to him as the pipeline took shape.
- Profiled and optimized the pipeline so the team could iterate on results faster — this is where I learned the difference between threads and processes, and why Python pushed the answer toward multiprocessing.
Python
Android Developer
Feb 2017 — May 2017
Université de Bordeaux · Bordeaux, France
AirMov3D, a five-person project letting users rotate 3D molecules in PyMOL from a phone. I wrote both ends of the link: the Java data transmission in the Android app, and the Python PyMOL plugin that received the rotation data and applied it to the molecule on screen. The sensor handling was someone else's.
PythonJavaAndroid