Aaron Muir Hamilton
Senior Software Engineer with over 8 years of Experience
+1 313 240 2152 (Verizon) +1 307 365 7527 (AT&T) aaron@correspondwith.meWork Experience
Contract — Xilem
2024-01 — Present | Researcher/Developer
Developing and characterizing open source UI middleware and libraries in the Rust ecosystem; focused on power management, performance, accessibility, mixed layout including rich text with variable fonts, advanced input method integration, and Android platform integration.
This work is part of an effort funded by Google Fonts, involving four contractors.
WealthyPlanet
2018-10 — Present | Co-Founder, R&D
Leading the software engineering practice and financial model development; I set cornerstones for every technical project, from our backend and data storage architecture, to each frontend application and webpage. I also co-developed the initial financial model, and managed/directed a full-time modeler thereafter.
The backend is written entirely in Clojure, and uses streams and futures to coordinate a system of command (strictly sequential, can mutate) and query (random access, can not mutate) reducers with embedded aggregates over immutable append-only logs. This system communicates with client applications through a custom resumable JSON RPC channel over WebSockets. Clients include numerous web applications written with Preact in TypeScript, administrative tools written in Javascript on Node.js, and also with some pages written with Next.js+React.
Hamilton Professional Services of Canada Incorporated
2017-04 — 2018-10 | Owner, Software Engineer
I created this corporation to house contracts I was taking, while looking for a new nine-to-five. I dealt in small and medium contracts across multiple languages (C, C++, Elixir, JavaScript) including:
- Distributed stochastic simulation for casino games modeling on Google Compute Engine with NATS-based message passing.
- Custom high-performance WebGL data visualization.
- Straightforward, well-behaved business data entry and display applications.
- An application merging a web interface with a Unity WebGL view; import tools and processes to bring a library of more than a hundred thousand geometry assets into the application, on contract.
Rangle.io
2014-08 — 2016-10 | Software Developer
Delivering state of the art web applications, ahead of schedule and under budget for multinational online retailers, financial services companies, and media syndicates. Working on the official Angular 2 debugging tool, Augury.
Among other technologies, I used JavaScript, TypeScript, ES6, AngularJS, PhoneGap/Cordova + Ionic, React.js, Objective-C (iOS), Ramda, Express, and PostgreSQL in my time at Rangle.io
Open Source
Linebender
For the Linebender project I was employed through a grant from Google to work on a variety of platform libraries for graphics and user interfaces in Rust, especially Xilem (UI reactivity layer) and Parley (text layout and interaction library).
Miscellaneous small libraries
- grapheme-iterator (JavaScript) — A simple Unicode Extended Grapheme Cluster segmentation library for JavaScript.
- je.suis/lbx (Clojure) — A relatively fast XML emitter for Clojure with a similar API to hiccup (HTML emitter), focused on emitting compact UTF-8 XML with self-closing tags and the bare minimum of text escapes.
Miscellaneous drive-by contributions
I have made modest contributions to a variety of public open source projects that I have used over the years, including:
- originating the current maintenance branch of Anthy, a Japanese input method — I did this in 2013 as a user of Anthy, because the upstream version had source and data files in a JIS encoding rather than UTF-8, and was throwing compiler warnings; I converted the source files to UTF-8 and fixed the compiler warnings and build issues. The authors of Anthy forked my Github repository and now maintain it at https://github.com/fujiwarat/anthy-unicode
- fixing ICC color profile loading and profile embedding for PNGs in the SANE command line utilities — I did this in 2017, as a user of SANE (scanner drivers and utilities) relying on color profiles of my scanner.
- fixing WebSocket connection upgrade detection in Aleph HTTP — This was causing issues with Firefox users accessing our WebSockets at WealthyPlanet.
- fixing font variant selection in the iBus input panel — I was an iBus (input method system) user, and I was frustrated that a Japanese input method window was displaying Taiwanese-variant fonts, the changes herein ask the library selecting the font to consider the advertised locale on the input method.
- adding missing properties to Preact TypeScript defs — We had use for this event on
<details>
This is nowhere near exhaustive, but my point is: I am well accustomed to making upstream contributions to open source projects in the course of work and leisure; and I am ready to do so across a variety of languages and disciplines.