Bruno Oberle

Hello, I'm Bruno 👋

I'm a Software Engineer with expertise in Python and React. Over the past decade, I've navigated diverse challenges, from academic research to startup environments.

I spent three years as a Natural Language Processing researcher at the University of Strasbourg (France), where I worked on labelling data and fine-tuning BERT, one of the first LLM, for coreference resolution in French. My work resulted in several peer-reviewed scientific papers (see Google Scholar).

In the last five years, I've focused on developing SaaS applications for two B2B cybersecurity startups, Cogiceo and Mantra. At Cogiceo, I built tools for automated analysis and vulnerability scoring of Android apps and browser extensions. At Mantra, I've developed systems for real-time email analysis to detect phishing attacks.

My work involves typed and tested Python (FastAPI, Django, Flask) alongside TypeScript and React, with a commitment to clean, maintainable code following Domain Driven Design.

I'm always eager to explore new technologies and enjoy tackling challenges that push me to learn and grow.

Outside of work, I enjoy creating open-source tools that are useful to me (and hopefully others too). You can check out my work on the project page.

If you'd like to connect or discuss a project, feel free to reach out at bruno@boberle.com.

Relevant work experience

Software Engineer
Aug 2022 — present
Tech stack: Python Mypy Pytest FastAPI Django JavaScript TypeScript React Redux GCP Docker Git Gitlab Sentry
  • Real-time analysis of emails to detect and prevent phishing attempts (Office 365/Gmail Workspace)
  • Displaying banners with user-friendly explanations on suspicious emails
  • Developed with Python, FastAPI & React, in an Event Driven Architecture hosted on Google Cloud Platform
  • Clean code, Domain Driven Design, Hexagonal architecture, fully typed Python using Mypy
  • Monitoring and alerting with GCP and Sentry
  • Customer support when technical insight is required
Developer (Python & Web)
Oct 2020 — Aug 2022
Tech stack: Python Flask PostgreSQL Pytest Selenium JavaScript Bootstrap Git Gitlab Java Linux
  • SaaS application for automatic analysis and vulnerability scoring of Android apps and browser extensions
  • Saas application for collaborative edition of pentest audit reports
  • Complete SaaS Human Resource solution for internal use (paid leaves, expense claim, transit pass, meal voucher...)
  • Backend coded with Python/Flask and frontend with JavaScript/Bootstrap/jQuery
Computational Linguist Researcher (Natural Language Processing)
Oct 2017 — Sept 2020
Tech stack: Python TensorFlow Jupyter Pandas NumPy Java Google Colab Linux
Teaching Assistant in Language Technologies (Master level)
Sept 2019 — May 2020
Tech stack: Python Linux R
  • Courses: Introduction to Python, Linux command line, Statistics with R, XML
  • Small groups of 10 to 15 students
Teaching Assistant in Linguistics (Bachelor level)
Sept 2017 — Aug 2019
  • Courses: Syntax, Morphology, Discourse analysis, Sociolinguistics
  • Large groups of 50 to 100 students

Languages

French flagNative
British flagFluent
German flagBeginner

Projects

I enjoy creating open-source tools.

Check out them here.

Scientific Papers

I have published peer-reviewed scientific papers and presented my work at several conferences and workshops.

Check them out here or on Google Scholar.

Skills

Python
Python
Mypy
Mypy
Pytest
Pytest
Pydantic
Pydantic
FastAPI
FastAPI
Django
Django
Flask
Flask
JavaScript
JavaScript
React
React
Redux
Redux
TypeScript
TypeScript
Google Cloud Platform
Google Cloud Platform
Golang
Golang
Git
Git
Gitlab
Gitlab
Sentry
Sentry
SQL
SQL
Linux
Linux
Perl
Perl
Jupyter
Jupyter
Pandas
Pandas

Education

Master Degree (Master 2) in Natural Language Processing
2017: University of Strasbourg

Thesis: Developed an end-to-end rule-based coreference resolution system in Python

Published at the conference TALN-RECITAL (Association française pour l'Intelligence Artificielle) in 2019

Master Degree (Master 2) in Linguistics
2017: University of Strasbourg

Thesis: Statistical and linguistic analysis of coreference chains in research articles

Published in the journal Discours: A journal of linguistics, psycholinguistics and computational linguistics in 2020

Bachelor Degree (Licence) in Classical Studies / French Linguistics
2015: University of Strasbourg

Language and Linguistics of French, Greek and Latin

Degree (DEUG) in Philosophy
2005: Marc Bloch University (Strasbourg II)

Analytic philosophy, Logic (predicate and propositional calculus), Epistemology, French philosophy

© 2025 Bruno Oberle
legal notice