Software Developer Co-op @ Zaber

January 2017 – April 2017

  • Member of Firmware and Electronics team developing software to interface with Zaber's high-precision motion control products.
  • Created autocomplete text field allowing users to quickly send instructions to Zaber devices.
  • Developed automatic-update feature when implementing a new installer for Zaber Console.
  • Built crash reporting system including client and backend logic to collect error metrics.


Users can communicate with motion devices using Zaber Console's built-in command-line interface. I created an autocomplete library that integrates with Zaber Console. Autocomplete shows a list of possible device-specific commands and filters the list as the user types. Additionally, it supports tab-completion for Zaber's ASCII command syntax.


Installer / Automatic updates

Zaber has three installers for Zaber Console (Windows application) from which customers can choose depending on their system and success using one of the other installers. I created "one installer to rule them all" which will eventually replace the three existing installers. The installer is based on Inno Setup with custom features inside Zaber Console for automatic updating. Zaber Console now polls a remote server through a REST API to check if an updated version is available, and downloads the update in the background if available. The installer and automatic updates support Windows XP to Windows 10.


Crash reporter

As a third project, I developed a crash reporting system. If Zaber Console encounters a runtime exception, the user will be asked if they wish to send a report. Zaber Console now collects anonymous system data (if the user consents) and securely sends the data to an internal backend.



I was tasked with drawing a snowman using some of Zaber's motion control products.