250 986 0250 |sandy@sandymaguire.me| Senior Software Engineer

Summary of Skills

Programming Experience

  • C++(decade)
  • Haskell(7 years)
  • C#, JavaScript, Lua, PHP, Python(5 years)

Work Experience

Project Lead» Wingman for HaskellOctober 2020 → ongoing

  • Wrote tooling that interactively synthesizes Haskell code.
  • Wingman saves Haskell developers roughly 20 minutes of programming per day.

Senior Software Engineer » TaktSeptember 2016 → January 2018

  • Led a team of four to reimplement a core subcomponent of the product – increased the cadence of new feature development from months to days.
  • Directed a team of three to implement a high-throughput, low-latency brokered streaming library. Resulting library is slated to become the company's core interservice communication protocol.

Engineer (Identity and Access Management) » GoogleSeptember 2015 → September 2016

  • Led the architectural design effort of a user-defined permission model for the cloud – the team's only project for the next quarter.
  • Took ownership over an unmaintained, service-critical internal compiler; improved compile times by 96% and test coverage by 65%.

Engineering Intern (Ads Ranking) » FacebookJanuary → April 2014

  • Analyzed the advertising platform's spending behaviors and subsequently implemented algorithmic changes resulting in a 0.5% revenue increase.
  • Parallelized the backend graph ranker, resulting in site-wide response time gains of 0.4%.


Algebra-Driven DesignSeptember 2020

  • How to discover leak-free abstractions, and to automatically derive implementations.

Thinking with TypesOctober 2018

  • Take yourself from a competent programmer to one whose compiler does the work for you.

How These Things WorkNovember 2017

  • A technical and philosophical journey into how computers work, starting from first principles.

Formal Education

Honors Software Engineering2010 → 2015

Bachelor of Software Engineering, University of Waterloo, ON

Relevant Courses

  • Adaptive Search – stochastic means of approximating global maxima for chaotic functions
  • Compilers – resulting Java compiler was most correct from class of 50 students
  • Networking – socket programming; robust protocol design; routing principles
  • Numerical Computation – computational error correction; solving differential equations



music, functional programming, compilers, robotics, skateboarding, electronics, math pedagogy