Garage Door Hackery
Taking control of hardware I own.
I build software.
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.
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:
and have kept a number of responsibilities as well:
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.
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.
Taking control of hardware I own.
Reverse-engineering my way around terrible firmware.
Watering vegetables with solar power, rain and a PLC!
A dive into analog circuit design.