Stefan du Fresne
Hello! I'm Stefan, a software developer with 19 years of experience. Originally from New Zealand, I currently live in the sprawling suburbia surrounding London, England.
I am:
- A pragmatist with a strong track record of building practical solutions to complex problems
- An exuberant team player who believes that everyone has something to contribute
- Committed to building ethical software that improves our world, nation or community
- Equally proficient working with clients, leading teams and mentoring teammates as I am building software
- Experienced in working remotely across multiple time-zones, disciplines and cultures
- A fan of functional programming, but more interested in the problem being solved than the language it's solved in
Recent Technologies
70% backend, 30% frontend.
- Typescript, Javascript, Node.js, Terraform, Docker, HTML, CSS, React, Angular
- SQL (PostgreSQL, BigQuery), NoSql, DynamoDB, CouchDB, PouchDB
- AWS, GCP, PubSub, SQS, Kafka, AWS Lambda, k8s, Datadog
- Less recently: Scala, Java, Clojure, Python, Ruby
Experience
(2022-present) Principal Engineer @ OVO
OVO is a UK energy supplier, with a mission to "Power human progress with clean affordable energy for everyone."
Currently, in the "Core Tech Energy" (CTE) platform group, reinventing OVO's core services. CTE is small group of the most senior engineers at OVO, focusing on high impact initiatives to reorient the company around API-first Domain Driven Design, setting the technical direction for the rest of the company.
- Delivering OVO's first organisation-wide Customer API, to bridge the dozen or so customer entity representations and decouple the company from its legacy systems, enabling the company to ask such questions as "how many customers do we have?" :-)
- Delving into complex legacy systems and providing clean abstraction layers to the rest of the business
- Leading and contributing to ADRs to standardise approaches between dev teams, such as REST API standards, Data Product capture, and eventing strategies and usage
- Frequent collaboration with teams outside of CTE, assisting with everything from ensuring their projects align with company strategy, to lending principal engineer expertise to help them design their services
- Typescript backend, PostgreSQL, REST APIs, Google PubSub, GraphQL, Kafka
Previously, in Zero Carbon Living (ZCL). ZCL is the domain responsible for initiatives to enable customers to reduce their carbon footprint.
As principal engineer:
- Responsible for the technical design, coordination and mentoring of engineers working on Charge Anytime, OVO's smart EV charging addon
- Worked with the HoD and other principals to establish technical coherency and standards across ZCL
- Paired with other principals engineers to help them hone their designs, participating in design reviews, residuality theory sessions, and other architectural discussions
- Mentored and coached senior engineers
Other projects:
-
EV Charger Installation journey
- An important journey that processes 10s of thousands of pounds a week, integrates with less robust external systems, but is not traditionally considered high traffic
- NodeJS deployed to AWS Lambda to optimise for "fast enough" cost efficient compute, using SQS to create a fault tolerance between lambdas, and between external systems and our processing, with data archived to BigQuery via Kafka autocapture
- Highly reliable, with only one notable production fault in 2 years (bad terraform merge). So reliable we have been able to backfill and restore data multiple times when the less robust third party failed
- Aided third party in ensuring their webhook interface was secure, helping them design a message signing strategy
-
Smart Thermostats shipping provider automation
- Rescued the project to automate shipping, as unclear historic designs, legacy systems, confusing external APIs and tight deadlines meant the project was in danger of collapsing a large planned marketing push
- Redesigned the multiple existing attempts to produce a single scalable solution that allowed the marketing push to go ahead, resulting in a 20x increase in sales
- AWS Lambda, SQS, DynamoDB, integrating with external SOAP service
(2020-2021) Personal Growth: Voice Coding
- Proactively worked on mitigating my RSI
- I learnt how to effectively use hands-free computing as a complete keyboard replacement, building Sanremo to ensure that this approach scales to the demands of real world usage
- Talon, Cursorless, Typescript, React, Redux, MUI, Websockets, PostgreSQL
I still use my hands frequently, but voice coding means I am not required to, and voice coding is often faster.
(2015-2020) Senior Software Developer & Engineering Manager @ Medic (UK remote)
Medic is a non-profit that "designs, delivers, and supports world-class, open-source software for health workers providing care in the world’s hardest-to-reach communities."
- Senior software developer, later promoted to engineering manager
- Worked remotely, collaborating with co-workers in a dozen different time-zones
As engineering manager, I managed engineers and led the QA and DevOps teams
- Managed about a dozen engineers (1v1s, quarterlies, annual reviews, adhoc technical and personal support), while also continuing to contribute as a senior software developer (see below)
- Brought effective backlog management to the devops and QA teams. This enabled devops to finally clear their exploding support backlog, more reliably provide timely support going forward, and find time to work on improving core infrastructure
- Led a large engineering hiring round (and co-ran others): designed the take home coding exercise, reviewed hundreds of CVs, dozens of take home results, and performed a dozen or so interviews with candidates.
As senior software developer:
- Responsible for maintaining and improving a complex and highly configurable application with severe design, performance and user education constraints, often as part of a very small dev team, supporting tens of thousands of users with millions of monthly interactions in 16 countries
- Responsible for design, coding, PR reviews, planning and scheduling, etc, from conception to production
- Travelled to Uganda, Kenya and Nepal, working with local team mates and users to make sure the software accommodated their unique situations
- Javascript, AngularJS, Node.js, CouchDB, PouchDB, Enketo, XForms
2013-2015: Software Developer & Team Lead @ Movio (NZ, UK remote)
Movio produces "data-driven marketing solutions for the film industry".
- Senior software developer and team lead
- Primarily worked on and was team lead of Movio Cinema's in-production stack. Movio Cinema is an analytics and email / sms marketing platform for cinemas. Scala / Akka based, with legacy LAMP stack components
- Additionally: led the prototype for their second product: Movio Media, a analytics platform for studios; was rewarded a fancy dinner for my partner and I for working especially hard; was rewarded a trip to Rarotonga for my partner and I for working even harder
- Scala, Akka, JavaScript, Java, PHP, MySQL
2012-2013: Software Developer @ Foster Moore (NZ)
Foster Moore are "the world experts in electronic registries."
- Java developer supporting registry deployments in The Cook Islands, New Zealand and Canada
- Helped modernise development methodologies (agile, branching strategies, reproducible environments etc )
- Led and worked on a team to develop a small custom registry from scratch using modern (at the time!) Java technologies
- Java, Spring, Hibernate, Maven, etc
2008-2012: Java Developer & Implementation Consultant @ Orion Health (NZ, US, ES)
Orion Health is "an award-winning, global provider of healthcare information technology advancing population health and precision medicine solutions for personalised care across the entire health community."
- Java Developer working on various modular (OSGi) applications built to manage sensitive patient data, including a custom configurable clinical data repository
- Implementation Consultant based first in Santa Monica, US then Majorca, Spain. Responsible for working on in-production implementations of Orion's products, building prototypes / pre-sales
- Additionally: led 2012's Connectathon team; won a duck (!) spiking a web component framework for an internal competition; blogged and wrote internally; built a 20% time code search tool that ran orders of magnitude faster than their existing tooling
2006-2008 Software Developer & Solnet Solutions (NZ)
Solnet Solutions is "a leading provider of technology innovation for government and private enterprise, specialising in the development of solutions using open source technologies."
- Java / .NET / Eclipse RCP / Ruby / VBS (!) developer working on a range of products and solutions for a large variety of clients, mostly insurance or government departments (education, health)
Work Samples
(2021) Sanremo, A Recent(ish!) Personal Project
Sanremo is a voice-coded React / Redux / MUI based offline first web app, written in JS / TS. It uses PouchDB on the front end and a combination of custom sync code and websockets to sync data with a PostgreSQL db on the backend.
Goals:
- Build a simple tool for personal use, inspired by aviation checklists
- Stress test coding with my voice, using Talon and Cursorless
- Investigate some performance and stability issues between the legacy and upcoming IndexedDB PouchDB adapters
- Use some tech I had not yet used professionally (React and TS mostly)
(2015-2020) Medic
My work at Medic was almost entirely open source: code, PRs, tickets and many design documents (if linked in tickets) are available.
Examples:
- Increased phone performance via client side document purging (ticket)
- Created flexible outbound data events to allow 3rd parties to react to data changes (ticket)
- Improving PouchDB by implementing native find in their upcoming indexed db adapter
Education
- BSc Computer Science, University of Auckland, 2003-2005
Anything Else?
References available upon request.
I'm not on social media much, but there are more links to me around the web at https://sdufresne.info.