Phil Hagelberg
Email: phil@hagelb.org
Pronouns: he/him
Timezone: US Pacific (-0700 or -0800)
Programming Languages and Technologies
- Expert in:
- Fennel,
Clojure,
Emacs Lisp,
and Lua.
- Experienced in:
-
Erlang,
Racket,
OCaml,
Elixir,
Forth,
Go lang,
and Scheme.
- Other technologies used:
- Git, Debian packaging, Docker, Object Capabilities (OCaps),
SQLite, PostgreSQL, systemd, GPG, Caddy, RabbitMQ, Iocaine.
Free Software Contributions
- Contributor:
-
Emacs,
Clojure,
TIC-80,
GotoSocial,
Pleroma,
Clojars,
Microscheme,
Ruby,
Magit, and more
- Creator:
-
Leiningen,
Emacs Starter Kit,
antifennel,
Atreus,
Grenchman,
Bus Scheme,
and several games
- Maintainer:
-
Fennel,
Logplex,
Swank Clojure,
Clojure Mode, and
package.el
Full Project List
Spotlight: As the lead developer of the Fennel
compiler, I took the project from being a quick prototype to a
language with an active,
vibrant
community. I
prioritized user feedback, writing detailed
documentation. Growing the
language has been a careful and deliberate process where I have
collaborated with users to consider every alternative and cost before
introducing features.
Work Experience
CircleCI Staff Engineer Yefreitor
December 2016 - present
- Replaced a flat-rate billing system with a metered usage
system which more accurately reflected the value that customers received
for their money. Architected data flows across a distributed
system using queues to ensure reliable delivery of events.
- Led migration to a more reliable billing provider, reducing bugs
related to charging and allowing the engineering team to focus on
shipping features instead of tracking down discrepancies.
- Mentored new hires including training several people with no
Clojure experience to be able to contribute
productively to systems written in Clojure.
Atreus Keyboards Founder
December 2014 - January 2020
- Created
and documented
a design for a small ergonomic keyboard to be constructed from readily-available DIY parts.
- Wrote
three USB
keyboard firmwares
for the ATMega32u4 chip.
- Started and ran a small business selling and supporting kits and
keyboards to a worldwide customer base which I later sold.
Heroku Senior Engineer
October 2011 - December 2014
Sonian Senior Engineer
April 2009 - September 2011
- Helped design and implement a document parsing, indexing,
and archival pipeline in Clojure which functioned at petabyte
level.
- Developed Leiningen project
automation tool originally for our in-house needs, which got turned into
a public project with hundreds of contributors and hundreds of thousands
of users.
Other
Voraciously self-taught. Currently working
thru the nand2tetris course.
Presented at several professional conferences and
local meetups.
Bachelor of Science degree in Computer Science, Magna Cum Laude.
Spoken languages: English (native), Indonesian (intermediate),
Mandarin (beginner), and Thai (beginner).
Fully remote since 2009.