I like to make stuff that interacts
with the world around us.



Resume

About Me

I'm an experienced software developer with over 12 years of experience in everything from microcontroller development to mobile apps and cloud services (and everything in between). I have a passion for embedded systems, and excel at diving deep into new technical topics.

Skills

  • Experience working at all layers of the stack - from low-level microcontroller code, through kernel and BSP development to scalable cloud services.
  • Passion for diving deep into new technical fields and becoming a subject-matter expert.
  • Extensive JavaScript, Go, Java (Spring), C and C++ skills.
  • Experience with reverse-engineering and pushing the limits of low-power embedded hardware.
  • Familiarity with hardware design, including schematic drawings, PCB layout techniques, mechanical design and 3D printing, and more.

Work Experience

Miovision Technologies(2017-present)
Software Architect, June 2022 - Present
Senior Software Developer, Feb 2021 - June 2022
Software Developer, April 2020 - Feb 2021
Software Developer (Co-Op & Part-Time), Jan 2017 - April 2020


I've worked at Miovision since January of 2017, first as a co-op, then as a part-time employee during school terms, before joining full-time in April 2020. Since then, I've become a Software Architect, responsible for distilling new features into technical work items and planning out our technical roadmap.

I've loved the opportunity to work on something very real. At Miovision, we're working to make traffic networks more efficient, and the products I generally work on are installed in traffic cabinets across North America. It's very fulfulling to see something you've built get used every day and have a meaningful impact on everyone using roadways.

I've worked on a number of major projects during my time at Miovision, including:

  • Designed and implemented a method of running first and third-party "apps" on devices securely, turning Docker containers into microVMs and offering controlled access to hardware peripherals and software features of the host system. Tight controls on networking and image integrity provide a safe operating environment for even untrusted code.
  • Planned and executed porting our product to a new generation of hardware, including increased security and new capabilities. Learned a lot about the inner workings of TPM 2.0, and designed an attestation scheme to prove credentials reside on the secure element. Worked at a software layer to port functionality, at a firmware level to dig into kernel bugs and propose solutions, and in the cloud to make modelling changes.
  • Designed and helped implement a new safety-critical feature to allow our existing hardware devices to provide signal priority for EMS, fire, police, and transit vehicles in coordination with a corporate partner.
  • Reverse-engineered proprietary hardware devices to provide monitoring and analytics beyond what our competitors are capable of.
  • Designed and developed remote-access tool still used by a majority of our customers.
  • Planned and implemented an improved cloud VPN solution for our devices, reducing our ongoing costs by nearly 50%.

and have kept a number of responsibilities as well:

  • Doing deep dives on new technology, learning everything there is to know and becoming a subject matter expert. Then, using that new knowledge to build product features and teach others.
  • Refine product ideas into actionable work items for engineering teams.
  • Work at a code level within individual teams to take on complex tasks and accelerate engineering teams.
  • Served as primary escalation path for complex customer support issues, often directly engaging with customers to solve problems.
  • Mentor junior team members to bring up their skill levels and instill good habits.

Milq(May 2016 - Aug 2016)
Android Development Intern, May 2016 - Aug 2016


I worked as the sole developer for Milq's Android app during a product pivot, involving rapid prototyping and close coordination with stakeholders. My efforts to rapidly turn around proof-of-concept versions of proposed features allowd us to iterate quickly and make decisions about the direction we wanted the product to go into. While at Milq, I introduced automated testing, which ran a test suite across a fleet of devices to prove the app worked as expected across different Android versions and screen orientations and resolutions.


MagmaStone(2012-2015)


I created MagmaStone to work as a freelancer on many contract programming jobs during high-school. I built more than 12 applications from basic specifications into deliverable products for a variety of customers from corporations to individuals.


I think that freelancing is one of the best ways to get started in the software industry - you quickly learn the value of good communication skills and the importance of laying out requirements (and tests, so that you don't give clients broken software). I worked with customers of a variety of technical skill levels to bring their vision into a real, shippable product. In the process, I developed strong communication skills and developed a strong foundation of development skills.

Here are some of my recent projects

Garage Door Hackery

Taking control of hardware I own.

Custom Firmware for Alarm Controller

Reverse-engineering my way around terrible firmware.

Rain Capture

Watering vegetables with solar power, rain and a PLC!

Whole-Home Audio

A dive into analog circuit design.