Art + Logic |
Pasadena, California [remote] |
July 2019 to present |
- built several neural networks with the Darknet machine learning framework, YOLOv3, and YOLOv3-Tiny for a proof-of-concept linux-based robotic application
- worked with libraries such as ZBar, Zint, and OpenCV to recognize and create several types of barcodes
- audio processing using JUCE, wrote a VST3 plugin for audio sampling product on Windows and Mac
- converted legacy JUCE application into VST3 plugin
- remote work from home office for a California-based company
|
C Code Run |
West Kelowna, B.C. [remote] |
June 2000 to present |
- consulted on many projects, the last few of which are:
- RobroSystems (2020)
- Adappt Intelligence (2020)
- Art + Logic (2019-2020)
- Linux C++ application using Darknet/YOLO and OpenCV for a robot that needs to detect barcodes
- Mac/Windows VST3 audio plugins in C++ using JUCE, both new and legacy applications
- Oroville Reman & Reload (2020)
- EquiNordic Group (2019)
- Linux C++ application using Darknet/YOLO and OpenCV to track shipping containers from a drone
- Unlimi-Tech FileCatalyst (2010-2020)
- UDP file transfer product, see description below
- Gorman Brothers Lumber Mill (2018-2019)
- Gorman Brothers Lumber Mill (2018)
- Gorman Brothers Lumber Mill (2017-2019)
- StyleLine (2013-2018)
- large application for door & drawer manufacturer, see description below
- Fastly, Inc. (2016)
- analyzed and wrote several security reports on current and upcoming IoT vulnerabilities
- focused on Mirai which had just been discovered in early fall 2016
- Turret Labs (2016-2017)
|
EquiNordic Group |
Copenhagen, Denmark [remote] |
April 2019 to July 2019 |
- tracking shipping containers and trucks using fully automated fixed wing drones
- Darknet/YOLO object detection (machine learning, neural network) combined with OpenCV running on Linux
- remote work from home office for a European company
|
MicroSurvey |
West Kelowna, B.C. |
January 2017 to April 2019 |
- update STAR*NET, a 32-bit C/C++ least-square adjustment application for land surveyors
- port MFC application and legacy DOS code from the 1980s & 1990s to 64-bit Windows
- maintenance for MicroSurvey CAD, an IntelliCAD-based C/C++ CAD product for Windows
- combination of maintenance position, working on performance enhancements, bug fixes, and new development using Scintilla, MFC, TFS, and Hoops
|
StyleLine |
Kelowna, B.C. [remote] |
March 2013 to March 2016 |
- Windows and Linux, C++ & SQL, designed and wrote a custom GUI application to run a door and drawer manufacturer
- redundant PostgreSQL database back-end servers, one local and the other in the cloud
- software generates all necessary cut lists and controls automated chop saws
- Beaglebone hardware and USB barcode readers deployed with custom software to track orders on factory floor
- remote work from home office for a Kelowna-based company
|
Pertino |
Cupertino, California [remote] |
July 2013 to June 2014 |
- C++ gateway for cloud-based networking device
- added AES encryption and UDP tunnel support between clients and central network gateway
- performance analysis and many improvements completed with the help of RotateRight Zoom profiler
- audit of existing codebase using Valgrind helped track down and fix several significant memory leaks that had been affecting customer installations
- remote work from home office for a California-based company
|
Unlimi-Tech FileCatalyst |
Ottawa, Ontario [remote] |
August 2010 to present |
- designed and wrote two commercial Linux, Windows, ARM, Mac and iOS C++ libraries for Unlimi-Tech's file transfer products, FileCatalyst and Workflow/Spaces
- transfers files thousands of times faster than popular/traditional TCP based methods
- C++ libraries I designed, wrote, and maintain are commercially sold by Unlimi-Tech
- remote work from home office for Ottawa-based company
|
Strangeloop Networks |
Vancouver, B.C. [remote] |
August 2008 to February 2013 |
- worked on the AS1000 Site Optimizer, a linux-based embedded network appliance used to optimize server-side HTTP communication
- designed and implemented (C++) a centralized configuration system, a new CLI, and a CGI-BIN for web-based configuration
- designed and implemented (C++) a new multi-device clustering system which automatically shares relevant portions of complex configurations between many clustered devices
- clustered devices communicate over encrypted channels using Blowfish and OpenSSL
- implemented SNMP MIB-II as well as a custom MIB in C++ using net-snmp AgentX
- brought the appliance up to PCI Data Security Standard v2.0, which included designing and implementing both multi-user support and AAA:
- remote authentication (LDAP)
- authorization (each config item maps to a half dozen user levels)
- audit logs (remote syslog)
- remote work from home office for a Vancouver-based company
|
VM86/CinematX |
Kelowna, B.C. |
December 2007 to May 2008 |
- productized/re-designed in C++ a remote desktop X-Windows prototype written in C
- designed and implemented a simple client-facing Web portal using ActionScript 3
|
Packeteer, Inc. |
Kelowna, B.C. |
April 2001 to December 2007 |
- C++ development: two different real-time embedded network devices: one running Linux 2.2.14-2.2.25 (AppCelera) and the other running pSOS (PacketShaper)
- designed and implemented some Linux kernel networking changes for the Linux 2.2.14-2.2.25 device (TCP/IP stack modifications for source address spoofing)
- C development: Linux 2.2.14-2.2.25 kernel changes and parts of the pSOS appliance
- team lead and project lead for small group of developers tasked with both maintenance and small feature support of large C and C++ code base
- responsible for top-level customer support; some travel to customer sites located in U.S., Canada, and Europe
- supervisor to customer escalation team from 2004-2006
- mentor to several junior developers
|
CNC Global |
Vancouver, B.C. |
April 1999 to April 2001 |
- contract position in the financial sector (HSBC)
- C++ (PMWin , GPI, IBM VisualAge C++ with OCL), Java, MQ Series & GSO
- system design, development and deployment
- WAN- and LAN-based applications and local system tools for OS/2 and Windows 9x/NT
- extensive GUI design and development using VisualAge C++
- object-oriented analysis, design, and development; extensive use of Rational Rose and UML for system design
- post-production system maintenance and Rexx scripting
|
Intelligent Medical Imaging |
Palm Beach Gardens, Florida |
April 1998 to April 1999 |
- 1-year NAFTA TN1 visa contract to work on a medical device
- maintenance and new development related to the Micro21, a robotic slide microscope
- capable of many procedures, FDA approved in the U.S. for 9 specific procedures
- C++ and Rexx maintenance, design, prototyping and development (IBM VisualAge C++ with OCL)
- serial communication programming (RS-232)
- real-time multi-processor system using OS/2 Warp Server SMP on custom-built imaging workstations
- extensive GUI design and development using VisualAge C++
- elaborate use of custom makefiles and version control system based on RCS
|
CNC Global |
Vancouver, B.C. |
October 1997 to March 1998 |
- contract position in the financial sector (HKBC, now known as HSBC)
- C++ (IBM VisualAge C++ with OCL) object-based prototyping for a new banking front-end between OS/2 and legacy AS/400 systems
- GUI design and development using VAC++
|
LGS Group Inc. |
Vancouver, B.C. |
April 1997 to September 1997 |
- contract position to work on automated trains (London Underground's Jubilee Line Extension)
- C and C++ (PMWin, GPI, and IBM VisualAge C++ with OCL) programming for a real-time OS/2 system used in transportation automation (SkyTrain, LRT, LUL)
- introduction of C++ and OCL/IUICL objects to traditional C environment
- GUI design and development using VisualAge C++
- recipient of 'Employee Recognition Award' for design and integration of C++ and OCL to legacy C code base
- elaborate use of custom SCM tools based on CVS
|
InfoMedQue Inc. |
Sherbrooke, Québec |
May 1996 to March 1997 |
- custom OS/2 & Linux programming (Rexx, C++, Java)
- socket programming (C++ & Java) for TCP/IP client-server applications distributed and sold via the internet
- network and web site consulting
- TCP/IP and NETBIOS network installations
- hardware and software installation and maintenance
- web site installation, maintenance & programming
|
Ministry of Natural Resources (Government of Canada) |
Sherbrooke, Québec |
January 1996 to April 1996 |
- contract position
- C++ design and implementation of a web-accessed reservation tool running on a SunOS-hosted (Solaris 2.5) intranet web server
- assisted in the design and implementation of the Ministry's intranet
|
Bishop's University (Continuing Education Dept.) |
Lennoxville, Québec |
September 1994 to April 1996 |
- part-time work
- design course outlines and teach basic, intermediate and advanced internet topic courses
- implement OS/2-based Rexx/C++ internet access tools for the University's computer labs
|
IBM Canada Limited |
Markham, Ontario |
December 1994 to January 1995 and May 1995 to August 1995 |
- technical support member for IBM's OS/2 Warp operating system
|
Pixel Productions |
Toronto, Ontario |
September 1990 to September 1993 |
- junior software programmer for DOS platform, using C and x86 assembly
|
C.A.P. Services |
Markham, Ontario |
May 1988 to September 1990 |
- self-employed while completing high school
- provincially registered sole-proprietorship company
- programming contract with ABC Ontario, completed using dBase 3+ and Pascal
- programming contract with Northern Telecom, completed using dBase 3+ and Pascal
- programming contract with university PhD student working on thesis, completed using Pascal
|