Aug 2014 - Nov 2014 |
Software Engineer
InboxApp, Inc., San Francisco, CA, USA
- Information Security
- Develop credential storage & proxy server to prevent compromise of plaintext passwords in authenticated IMAP & SMTP connections.
- Identify security issues and risks, and develop mitigation plans
- Technology: Python 3, Flask, Docker, Ansible, NaCl/libsodium, protobufs, capability-based access control.
|
Jul 2012 - Aug 2014 |
Software Engineer
Dropbox, Inc., San Francisco, CA, USA
- Design, implement, and deploy performance, usability, and privacy improvements to the Dropbox desktop application software.
- Development of best practices for managing the complexity and engineering cost of maintaining a large code base.
- Security reviews of software, processes, protocols, use of cryptography, etc.
- Cross-platform Python software development.
- Experience working with large-scale distributed systems.
- Technology: Python, Pylons, C, Objective C, Go.
|
Nov 2008 - Jun 2012 |
Software Developer, Research and Development
PatientWay (Infonium Inc.), Ottawa, ON, Canada
- Patient self-service technology for hospitals and other health-care organizations.
- Designed, developed, and maintained several key pieces of PatientWay's products, based on the needs of patients and hospital staff, internal objectives, and technical constraints
- Designed and implemented back-end integration technology—using a variety of HL7 messaging, scriptable terminal emulation, Windows GUI scripting, and SQL access—depending on customer needs and the existing, site-specific configuration.
- Developed a scriptable terminal emulator from scratch, with customer usability, fail-safety, and auditability in mind. An old version is available on GitHub.
- Developed flowchart-based workflow engine and language, designed to enable multiple people with varying levels of technical and domain expertise to create and modify the same program.
- Received training and familiarity with agile software development methodology.
- Technology: Ruby on Rails, running on Glassfish/J2EE using JRuby.
|
May 2007 - Apr 2008 |
Information Technology Analyst
Open Systems Canada Limited, Regina, SK, Canada
- Provided IT consulting to OSCL's customers; Developed internal systems.
- Developed a robust rsync-like customer data backup system.
- Recovered customer data manually after hardware RAID failure.
- Isolated a deadlocking bug in Paramiko (a Python SSH implementation).
- Discovered cryptographic weakness in random number generator in Paramiko.
|
Jan 2006 - Apr 2008 |
Self Employed
Ice Pillar Computing, Regina, SK, Canada
- Developed software and provided advice to serve the needs of my customers.
- Installed and maintained LAMP servers. Performed Drupal 5->7 migration.
- Wrote screen-scraping software in PHP for a mobile application platform. (Bluepulse)
- Developed an assortment of free/open-source libraries in PHP.
- Wrote software to process SHOUTcast streams and MP3 files.
|
May 2005 - Aug 2005 |
Embedded Systems Software Developer, Operating Systems Group
Research In Motion, Waterloo, ON, Canada
- Developed and maintained BlackBerry operating systems.
- Ported the BlackBerry bootloader/firmware loader to new hardware.
- Wrote and analyzed security-sensitive code in BlackBerry operating systems.
- Implemented an entropy-gathering cryptographic random number generator.
- Most work was done in C and ARM Thumb assembly language.
|
Sep 2004 - Dec 2004 |
Protocol Tester, Systems and Interoperability,
Research In Motion, Waterloo, ON, Canada
- Performed protocol testing and wrote test automation software for GSM/GPRS BlackBerry handhelds.
- Refactored a portion of the control software for automated testing of BlackBerry handhelds.
- Assisted in the design of a more comprehensive automated testing framework for BlackBerry handhelds.
|
Jan 2004 - Apr 2004 |
Engineering Assistant, Research & Development,
SaskTel, Regina, SK, Canada
- Worked with TRLabs on several research projects.
- Improved an existing ultrasonic position-tracking system.
- Designed a (different) ultrasonic position-tracking system with a focus on increasing flexibility and lowering per-unit costs.
- Constructed a working prototype of a low-cost ultrasonic sensor device.
|
Sep 2001 - Apr 2003 |
Systems Analyst, Operations,
LFC Hosting, Regina, SK, Canada
- Performed various programming, troubleshooting, system administration, and customer support duties.
- Analyzed, designed, proposed, and implemented software automation changes to address internal and customer needs.
- Provided technical leadership in software and infrastructure development.
- Developed hardware keyboard access control system using iButton key fobs.
|
Summer 2001 |
Network Security Administrator, Operations,
LFC Hosting, Regina, SK, Canada
- Designed new LAN with Linux firewall for improved resilience against attack.
- Worked with customers and employees to resolve various technical issues.
|