Ben Hoyt’s Resume/CV
Go to: Summary | Skills | Experience | Education | About me | PDF
Summary
I’m a software engineer with twenty years of experience developing web applications and services, as well as providing technical leadership for small teams of software developers.
I’m fluent in Go, Python, C, SQL, HTML, and English. I’ve also written a good amount of JavaScript, C++, and x86 assembly. I learn quickly, care about detail, and love computer science and mathematics.
I live in New Zealand, but have dual NZ / U.S. citizenship. I lived and worked in New York City from 2010 to 2019, and I’m open to remote work and some travel.
Skills: what I do…
Software development
- Develop backend web systems and services that perform well and are easy to use. I’ve used various languages and databases, and I’m experienced with microservices as well as the scaling and caching required for large sites.
- Contribute to frontend development: I’m familiar with vanilla JavaScript, React, Elm, CSS, and other frontend technologies.
- DevOps and scripting: configure Kubernetes, create Docker images, develop infrastructure as code, administer servers, and automate complex code deployments on Linux and Windows.
- Contribute to open source projects, for example Python (more here).
Technical leadership
- Work with engineers to design and architect complex systems. Work with product managers to plan and prioritize features.
- Manage hiring of new engineers. Review and interview candidates.
- Mentor developers, review code, and help establish engineering best practices.
- Communicate and document effectively, and relate well to people.
- Give internal technical talks and training. Provide Go and Python expertise from many years of experience with both languages.
Experience
Canonical – Senior Software Engineer and Engineering Manager – Sep 2020 to now
- Led the team and developed code for the Python Operator Framework, a library for writing “software that operates software”.
- Designed and developed features for Pebble, an API-driven service manager written in Go, and its corresponding Python client in Juju’s Python Operator Framework.
- Developed features for and helped maintain Juju, a cross-cloud application deployment tool (and one of the largest Go codebases in the world).
Compass – Senior Software Engineer – Mar 2018 to Aug 2020:
- Helped build Go microservices backed by PostgreSQL, including an API integration to a third party CRM. Wrote a code generator to generate Go structs and methods from a Swagger API definition.
- Wrote code and provided technical leadership for the SEO team, including Python services and Athena log data processing. Our team significantly improved indexation and search ranking for our key pages.
- Managed a team of backend and frontend engineers. Remained very technically involved in system design, architecture discussions, and code reviews of the team’s Go codebase.
- Oversaw development and launch of the Compass CRM, a high-profile project that was heavily promoted to our 5000+ agents.
- Wrote an internal proposal to migrate 200 engineers from using Gerrit to GitHub for code review. The proposal saw fruition and increased developer velocity.
Jetsetter / TripAdvisor – Principal Software Engineer – Jul 2016 to Feb 2018:
- Helped architect a structured content management system and search API using Contentful and Elasticsearch, simplifying and unifying several internal systems.
- Designed and developed a real-time image scaling service using Python and ImageMagick. It’s able to serve hundreds of image scaling requests per second.
- Implemented a duplicate image detector using the dHash perceptual hash algorithm and BK-Tree data structures.
- Managed a small team of engineers. Performed architecture and code reviews. Implemented database best practices on the team.
Oyster.com / TripAdvisor – Software Engineer and Technical Manager – Jun 2010 to Jun 2016:
- Ported a legacy C++ web backend to Python. The change of language and tooling let us develop and release business-level features much more quickly.
- Helped design and implement a structured content management system that let us publish immediately and gave us opportunities to boost revenue.
- Co-developed two mobile apps: a cross-platform iOS and Android app using React Native, and Oyster’s older iPad app written in Objective-C.
- Wrote Python and JavaScript libraries to display real-time pricing via TripAdvisor’s hotel pricing API, resulting in a large revenue increase.
- Implemented the backend for various website features, including a tag-based photo search engine and a hotel booking system.
- Implemented internal tools such as a photo album editor and a workflow system to help salespeople schedule photoshoots at about 1000 hotels per month.
- Wrote tools for our web infrastructure: a new code deployment system using Ansible, tools to translate and localize the entire website, a data analytics pipeline using Snowplow Analytics and Amazon Redshift, and a system to send personalized emails.
- Co-wrote heavily parallelized software to resize and watermark millions of images in many different sizes using Amazon EC2.
- Managed a team of engineers and led hiring efforts. Oversaw architecture decisions and performed code reviews for most of Oyster’s software projects.
Brush Technology – Software Engineer and Co-director – Aug 2006 to May 2010:
- Co-founded and co-developed the microPledge crowd funding platform. Implemented secure financial transactions, Ajax-based voting, and S3 file uploads.
- Designed, implemented, and promoted Gifty Weddings, a website that helps couples make great wedding gift registries.
- Wrote embedded firmware in C++ for Hamilton Jet’s large-scale jetboat control systems. Wrote testing and GUI tools in Python and C#.
- Worked on cellular telemetry firmware and GPS interfaces using Atmel AVR and ARM7 microcontrollers.
- Developed low-latency IP networking software in C and Python for a client in the high-frequency trading industry.
- Managed projects and staff. As a cofounder, I was heavily involved with the company’s business planning and decisions.
Harvest Electronics – Software Engineer – Oct 2002 to Jul 2006:
- Designed and developed the web and admin interface for their solar-powered weather stations. The clean UI and weather graphs really made Harvest’s product stand out.
- Wrote software to interface to GPRS modems. Administered associated databases and web servers.
- Wrote embedded firmware in C and assembler for MSP430 and ARM7 microcontrollers, including low-level boot loaders, serial communications, and I/O control logic.
Education
I have a B.E. in Electrical and Computer Engineering, and graduated from the University of Canterbury in 2002 with first class honors, GPA 7.9/9. For my final-year project I designed a small stack-based CPU in VHDL.
About me
I have also discovered a truly marvelous proof of Hofstadter’s Law, but unfortunately this margin is too narrow to contain it.
My dad taught me how to program by teaching me the Tao of Forth. Two of my first projects were writing a Forth compiler in x86 assembly, and then writing a small 32-bit OS in my Forth. I love things small, fast, and light – and that’s paid off during my career.
Other than that, I enjoy reading and writing, and I once edited a small print magazine. I’m into unicycling, typography, and piano. I love my wife and family. I aim to keep the commandments, but you may find me breaking the conventions.