Dr. Bertrand Caron, PhD

Dr. Bertrand Caron, PhD
Technology Leader | Full Stack Software Engineer | Data Scientist

Brisbane (Australia)

Profile

I have a PhD in Computational Biochemistry with 9+ year experience in Software Engineering, DevOps, Data Science and Technology leadership. I have a passion for being part of, or leading teams, that write great software that solve hard problems, in simple ways. I have co-founded Bloom Impact Investing, and single-handedly developed the Bloom Impact Investing mobile application. I am very active in the local MeetUp scene, where I love to give talks on my favourite topics: automated testing, and strongly typed languages (especially TypeScript).

Experience

Chief Technology Officer (CTO) at Sustainable Investment Exchange (SIX)

August 2023 - December 2023, Brisbane (Australia)

As the Chief Technology Officer, I was responsible for designing, developing, deploying and maintaining all technical aspects of the Sustainable Investment Exchange product. This includes developing a serverless backend (AWS), a React (TypeScript) web front-end and all associated systems and tooling.

Tech Stack

  • React Web application (TypeScript)
  • Node.js back-end (TypeScript)
  • Back-end end-to-end testing: Jest

Infrastructure

  • Continuous Integration and Deployment: GitHub Action
  • Cloud provider: Amazon Web Services
    • Serverless: API Gateway, Lambda, DynamoDB
    • Authentication: AWS Cognito

Chief Technology Officer (CTO) / Co-founder at Bloom Impact Investing

January 2021 - July 2023, Brisbane (Australia)

As the Chief Technology Officer & co-founder, I was responsible for designing, developing, deploying and maintaining all technical aspects of the Bloom Impact Investing product. This included our Mobile Application (React-Native), back-end (AWS Serverless) and all associated systems and tooling.

Tech Stack

  • React Native Mobile application (TypeScript)
  • Node.js back-end (TypeScript)
  • Front-end end-to-end testing: Detox (mobile), Playwright (web).
  • Back-end end-to-end testing: Jest

Infrastructure

  • Continuous Integration and Deployment: GitHub Action
  • Analytics: Amplitude
  • Cloud provider: Amazon Web Services
    • Serverless: API Gateway, Lambda, DynamoDB
    • Authentication: AWS Cognito

Tech Lead | Product Owner | Team Lead at Fugro(Manager: Dr. David Raffelt)

June 2020 - May 2021, Brisbane (Australia)

As a Tech Lead, I was responsible for the development of an internal software product that provides solutions for Fugro's data management and data lineage issues. As part of this role, I was also managing up to four innovation engineers (Team Lead), and responsible for stakeholder engagement and prioritisation of the product backlog (Product Owner).

Tech Stack

  • Express Node.js backend (TypeScript)
  • React front-end (TypeScript)

Team Lead at Fugro(Manager: Dr. David Raffelt)

November 2019 - June 2020, Brisbane (Australia)

As a Team Lead, I was managing a team of four data scientists and innovation engineers to write Cloud Automation software that delivered value to our clients. I was responsible for providing technical leadership to the team and ensuring Agile best practices were utilised by the team (Scrum Master).

  • Stack: Julia / Python (numpy, opencv, tensorflow) backend, AWS Lambda and AWS Fargate integration

Innovation Engineer at Fugro(Manager: Dr. David Raffelt)

December 2018 - November 2019, Brisbane (Australia)

As an Innovation Engineer, I was responsible for developing software and/or algorithms to support Fugro products, data processing automation and client services delivery.

  • API design (Golang, PostgreSQL 10+)
  • Implementing software best practices: automation pipelines (CI/CD), continuous testing and deployment

PhD Student at The University of Queensland(Supervisor: Prof. Alan E. Mark)

April 2015 - October 2018, Brisbane (Australia)
During my PhD, I have developped the following skills:
  • Software Engineering I have written code for more than 30 projects, some of them open source and available on my Github. They total tens of thousands of lines of code and span areas ranging from graph matching to combinatorial optimisation.
  • Communication I have presented my PhD work at conferences in multiple countries: Germany, The Netherlands, Switzerland.
  • Project Management and Collaboration I have led multiple international collaborative projects: Bennion Brian (LLNL, USA), Engler Martin (HHU, Germany).
  • Writing I have co-authored multiple scientific papers and wrote a thesis (120 pages and counting).
  • Data Analysis I have analysed large datasets in search of patterns.

Research Assistant at The University of Queensland(Supervisor: Prof. Alan E. Mark)

January 2015 - March 2015, Brisbane (Australia)
As a Research Assistant (and later during my PhD), I was helping with the development of the Automated topology Builder and Repository (ATB, atb.uq.edu.au), a python-CGI website backed up by an MySQL database and sitting on an Apache server. By the end of my PhD, it had 180,000 submitted molecules, more than 6,500 users and up to 2,000 page views per day. My contributions involved:
  • Database Refactoring: Shrinking the database by 95% by moving files from the database to the file system.
  • MVC Refactoring: Refactoring of the code to comply to the Model - View - Controller paradigm. Heavy use of Jinja2 templates
  • Implementation of a RESTful API: Both as a way to integrate new features as well as standardising old ones.
  • Search Engine Optimisation (SEO): Implementation of a SEO strategy with Google Analytics, tracking of download and topology generations with custom-labeled events

Experimentally-guided coarse-grained RNA folding at Laboratoire de Biochimie Theorique (LBT), Institut de Biologie Physico-Chimique (IBPC)(Supervisor: Prof. Samuela Pasquali)

February 2014 - July 2014, Paris (France)
  • Development of SAXS-CG, an Ab-Initio Small-Angle X-ray Scattering (SAXS) profile prediction tool written in Fortran

Properties of Model Regnum-Specific Lipid Bilayers at School of Chemistry and Molecular Biosciences, The University of Queensland(Supervisor: Dr. David Poger)

February 2013 - July 2013, Brisbane (Australia)
  • Advanced shell scripting (awk) and data visualisation (gnuplot), Python programming (Quantum Mechanical output text parser)

Introduction to Protein Dynamics at Laboratoire d'Ingénierie des Systèmes Biologiques et des Procédés (LISBP)(Supervisor: Dr. Sophie Barbe)

June 2012 - July 2012, Toulouse (France)
  • Discovery and use of scientific software: Unix Environment, Shell Scripting (Bash, Zsh)

Skills

Computer Languages

Limited experience
Extensive professional experience

Javascript / TypeScript

Extensive professional experience (5+ years) with all aspects of Javascript and TypeScript, including common libraries (fetch), frameworks (Express) and runtimes (Node), writing both front- and back-end code, entirely in TypeScript.

Python

Extensive professional experience (5+ years) with all aspects of Python, including major libraries (subprocess, sciPy, numPy), module development and advanced features (lambda functions, named tuples).

Go

Extensive professional experience (3+ years), including having written multiple production services in Go, and advanced features: goroutine / multithreaded code, memory and CPU profiling (gprof), testing.

Unix shells (Bash, Zsh)

Extensive professional experience (8+ years) , including functional programming in bash, development of large libraries (2k+ lines), and multithreaded scripts.

Ruby

Experience (2+ years) building personal WebApps for side-projects with the Ruby on Rails framework.

Julia

Professional experience (1+ years) writing production data science pipeline.

Haskell

Personal experience (1+ years) writing basic Haskell, including static typing, currying, pattern matching, and guards.

Objective-C

Personal experience (1+ years) writing simple Objective-C apps with the Cocoa framework and XCode for various side-projects.

Fortran

Professional experience (1+ years) on ,ultiple big projects, including development of modules, derived types and operator overloading.

Front-end Frameworks

Limited experience
Extensive professional experience

React-Native

Extensive professional experience (3+ years) building beautiful, performant, accessible, cross-platform mobile applications from start to finish, including all aspects of deployments to both App stores.

React

Extensive professional experience (3+ years) building beautiful, performant, accessible, single page application (SAPs) with React; using hooks and functional components.

Cloud Providers

Limited experience
Extensive professional experience

AWS

Extensive professional experience (5+ years) with AWS running all production services in AWS, including advanced use of the AWS CLI and AWS Cloud Development Kit (CDK).

Azure

Personal experience with basic use of container-based compute services for side-projects.

Markup - Typesetting - Data Visualisation

Limited experience
Extensive professional experience

HTML/CSS

Extensive professional experience (9+ years) with modern HTML/CSS, including experience with popular libraries (Bootstrap) and icons (Font Awesome).

Data Visualisation

Extensive professional experience with advanced scientific plotting experience: matplotlib (Python), flot.js (Javascript), Recharts (React).

LaTeX

Extensive experience typesetting large, complex documents with a robust, programmable and version-controlled approach.

Databases

Limited experience
Extensive professional experience

DynamoDB

Extensive experience (3+ years) running DynamoDB in production (Bloom API, SIX API).

MySQL - MariaDB - SQLite - PostgreSQL

Extensive professional experience (5+ years) with running PostgreSQL in production, including with large tables (millions of rows), and extensive experience with advanced techniques (table refactoring, query and index optimisation).

Neo4j

Professional experience (2+ years) with running Neo4j in production.

Redis

Professional experience (2+ years), including use as a key/value store for implementing memoization cache.

Workflow Tools

Limited experience
Extensive professional experience

Git

Advanced git worklow: branching, merging, rebasing, submodules

VIM

Mouse-free productivity, most advanced features : syntax highlighting, code folding, key mapping

Makefile

Automated data-driven workflows.

Programming Paradigms

Limited experience
Extensive professional experience

DRY (Don't Repeat Yourself)

Extensive professional experience (9+ years) with writing clean code and refactoring large, legacy codebases.

Functional Programming (FP)

Extensive professional experience (9+ years) with functional programming patterns and best practices (functional over imperative, limiting control flow statements, limiting in-place mutations, writing pure and total functions).

Test Driven Development (TDD)

Extensive professional experience (9+ years) with automated functional and regression testing (front-end and back-end), at all levels (unit testing, integration testing, end-to-end testing).

Continuous Testing and Integration

Extensive professional experience (9+ years) with Gitlab CI, Jenkins and GitHub Actions.

Coding Techniques

Limited experience
Extensive professional experience

Code Optimization

Experience with profiling tools: Apple's Instruments, GDB, Python's PDB.

Code Parallelization

Experience with both OpenMP and MPI, subprocess (Python), Cluster (JS).

DevOps

Limited experience
Extensive professional experience

Docker

Extensive experience (5+ years) running container-based services, including advanced Docker features (multi-stage builds, BuildKit, layer optimisation).Dyna

Linux Distributions

Extensive experience (8+ years) administrating Linux servers, both personally and professionally.

Hosting - Web Servers

Extensive experience (8+ years) hosting web-accessible services, including DNS Records, Apache HTTP, NGINX, CGI (uwsgi, Flask), HTTP/HTTPS.

Education

PhD (Doctor of Philosophy) in Computational Biochemistry at The University of Queensland

April 2015 - October 2018, Brisbane (Australia)
  • Thesis title: "Improving Automated Force Field Parametrisation for Molecular Simulation: A Graph Approach" (Link)
  • Funded by a UQI scholarship.
  • Dean's Award for Outstanding HDR Theses (2019)
My thesis focused on the use of graph-based approaches to develop new automated parametrisation paradigms which can exploit large data sets to simultaneously develop and assign parameters for empirical force field used in Biomolecular simulations. Many of the tools developed as part of this thesis have been open-sourced on Github (github.com/bertrand-caron) and have been made available to the scientific community.

Master of Science and Technology in Analytical, Physical and Theoretical Chemistry at École Normale Supérieure (ENS) - University Pierre and Marie Curie (UPMC)

2012 - 2014, Paris (France)
Relevant courses: Multi-scale modelling of complex systems, Modelling principles and methods of molecular properties, Molecular modelling: applications, Elementary processes in chemical reactivity: from simple to complex systems.

Bachelor of Science and Technology in Chemistry at École Normale Supérieure (ENS) - University Pierre and Marie Curie (UPMC)

2011 - 2012, Paris (France)
Relevant courses: Cell Molecular Biology, Chemical Kinetic and Reactivity, Intermolecular Bonding.

"Classe Préparatoire aux Grandes Écoles" in Physics, Chemistry and Engineering Sciences at Lycée Henri IV

2009 - 2011, Paris (France)
Two-year intensive Chemistry (12 hours/week), Mathematics (12 hours/week) and Physics (10 hours/week) courses to prepare for a two-month national examination. Received at the École Normale Supérieure ULM.

"Baccalauréat Scientifique", English European Section, magna cum laude ("Mention Très Bien") at Lycée Louis Thuillier

2008 - 2009, Amiens (France)

Presentations

In this talk, we will look at the fundamentals of event sourcing, how it compares to traditional, mutable data models, and how it can be used to build resilient, compliant backends by leveraging immutable, append-only data structures. We will then demonstrate how to use these concepts by building and deploying a toy serverless Node/TypeScript REST API.

Panel Discussion: All Things Typescript

ReactBris, Brisbane (Thursday, 20 April 2023)
Other panellists: Liam Di Dato (Senior Full Stack Software Engineer, CertCrowd), Rhys Jones (React Native Developer, Entain). Moderated by Cameron Pavey (Technical Lead at Rexlabs).
ReactBris, Brisbane (Thursday, 21 July 2022)
In this talk, we will take a look at the fundamentals of testing (why, what and how) and how it ties together with other software engineering best practices like static typing, continuous integration and staged deployments, to reduce “surprises” in production. We will demonstrate how to apply all of this in practice, with a toy React Single-Page App (SPA) that we will end-to-end test using Playwright running on GitHub Actions. We will also mention end-to-end options for react-native projects.

Writing modern (3.8+) Python Code

Brisbane PyLadies, Brisbane (Thursday, 4 March 2021)
Make sure you are aware of (and using!) the latest Python features, so you can get the most out of your code. Included will be things like type hinting, f-strings, named tuples/dataclasses and the infamous walrus operators!

Writing modern (3.6+) Python Code

Brisbane PyLadies, Brisbane (Thursday, 6 February 2020)
Included will be things like type hinting, f-strings, names tuples/ dataclasses and maybe some tooling!

Awards

Dean's Award for Outstanding HDR Theses

2019, Brisbane (Australia)
The Dean’s Award for Outstanding Higher Degree by Research Theses gives formal recognition to outstanding PhD and MPhil graduates who have been commended by their thesis examiners.

HealthHack BNE (3rd place)

November 2017, Brisbane (Australia)
Andra: A robot conversation with patients to encourage healthy lifestyle choices

Tutor Award – School of Chemistry and Molecular Biosciences (SCMB)

October 2016, Brisbane (Australia)
Awarded to top 10% tutors

Shortlisted for the 2015 Lush Prize (Young Researcher Category)

August 2015, London (UK)

2015 CTCMS Symposium Poster Prize

May 2015, Brisbane (Australia)
Awarded first prize for 'Insights Into the Structure and Order of Bacterial Membranes'

UQ International Scholarship (UQI)

April 2015, Brisbane (Australia)
Scholarships awarded competitively, based on merit, to outstanding international students undertaking a research higher degree.

XXVth French Chemistry Olympiads (2nd)

2009, Paris (France)
Medaled by the French Academy of Science for ranking Second.

Referees

Founder and CEO of SIX (Sustainable Investment Exchange) | Founder of Future Super
Innovation Director, Asia-Pacific at Fugro (Australia)
VC Senior Research Fellow, School of Chemistry and Molecular Biosciences, The University of Queensland (Australia)