About Me
I am a polyglot developer who likes simple solutions to difficult problems, living documentation, just-in-time design and the principles of software craftsmanship.
I believe I owe my success to a habit of ensuring I always have a deep understanding of the technologies I work with.
Before joining the tech industry my background was in music, and I have always felt that software engineering is an art too - fundamentally a creative and collaborative activity.
Experience
DAACIhttps://daaci.com
Senior Frontend Software Engineer, 2022 - pres.
- TypeScript
- Node.js
- React.js
- Redux
- Sass
- PostgreSQL
DAACI creates composer-focused generative music composition systems using machine learning techniques informed by musicology.
I have been building out prototypes of an AI-assisted browser-based digital audio workstation, using TypeScript, React, Web Audio and Web MIDI, Next.js, Drizzle ORM and PostgreSQL.
I have also been supporting the frontend of a web-based registry for DAACI VST plugins, and UI design and implementation in the plugins using C++20 and the JUCE framework.
Tripteasehttps://triptease.com
Senior Software Engineer, 2021 - 2022
Software Engineer, 2020 - 2021
- TypeScript
- Node.js
- Terraform
- React.js
- MongoDB
Worked on the Targeted Messages product, including the UI of the messages themselves, a rich content editor with live preview for message creation, content database and CDN, event tracking and analytics platform.
Previously, my team built a feed of hotel prices and scaled it from scratch to serving a million prices a day from over 1,000 hotels. The prices were sourced from user tracking, screen-scraping and algorithmic inference.
Triptease engineers work full-stack, including all development, ops and SRE, in small autonomous squads.
Codurancehttps://codurance.com
Software Craftsman, 2019
Apprentice, 2018 - 2019
- C++
- Java
- PostgreSQL
Worked in a team of consultants at a fintech, setting up CI pipelines, modernising existing C++ server-side infrastructure, and helping to build new Java microservices to replace PostgreSQL stored procedures.
As Apprentice, completed a three-month paid Academy program learning essential skills in software design, Extreme Programming practices, Clean Code, and Domain-Driven Design.
FilmLighthttps://filmlight.ltd.uk
Software Developer, 2017 - 2018
Intern, 2016 - 2017
- C
- C++
- *nix
Worked on button-mapping software for hardware interfaces on a film post-processing system. Worked across the full stack from usability testing and UI implementation down to optimising the display drivers. Also wrote an xUnit-style unit test framework for the in-house scripting language to aid in testing my code.
As an intern, built automated testing harnesses, helped maintain the FilmLight intranet, and built developer workstations.
Education
Open University
Mathematics modules, part-time, 2022-present
MST124 Essential Mathematics 1: Distinction (2021-22)
MST224 Mathematical Methods: WIP (2023-24)
University of Oxford
BA Music, 2013 - 2016
First-class honours; academic scholar, 2014-16.
Skills
Languages & Frameworks
JavaScript, TypeScript, Node.js, React, Java, Kotlin, C++, Python, Clojure
Databases
PostgreSQL, MongoDB, Google BigQuery, Elasticsearch
Infrastructure
Amazon Web Services, Google Cloud Platform, Terraform, Airflow
Methodologies
Extreme Programming, Software Craftsmanship, Continuous Discovery
Projects
This website!https://github.com/nawhi/nickwhite.cc
Built with Astro and Tailwind CSS, based on the devfolio template by Ryan Fitzgerald
jq-tutorialhttps://github.com/nawhi/jq-tutorial
Interactive exercises for learning jq, a command-line JSON processor
WebStorm Golfhttps://github.com/nawhi/webstorm-golf
A golf-themed way of learning to use the JetBrains WebStorm IDE