Résumé for Stéphane Charette
West Kelowna, British Columbia, Canada
Residence: 250-769-2759

Internet

Résumé http://www.ccoderun.ca/stephane/
Portfolio http://www.ccoderun.ca/
LinkedIn http://www.linkedin.com/in/scharette
E-mail stephanecharette@gmail.com

Languages

English spoken and written
French spoken, intermediate written

Career

I'm a senior software developer with more than 30 years of commercial software development experience working with networks, embedded devices, and desktop software.

I work from an office in West Kelowna, BC, Canada. I'm willing to travel or temporarily work in other locations, but due to shared custody of my children, I'm not looking to permanently relocate.

Computer Skills

Languages and Software Development Tools

Recent C++, C, g++/gcc, Visual Studio, ddd/gdb, valgrind, cmake/ctest/cpack, GTest, SQL/PostgreSQL, JUCE, Wireshark, doxygen, subversion, git, Boost (ASIO, regex, system, thread, log, program_options), OpenCV (computer vision), barcodes (Code39), regex, pthread, Munin, RRD (round-robin database), PCI DSS, KDevelop, Bash, Fish, CGI-BIN, HTML/CSS, XML/XSD, NSIS, IoT, Beaglebone
Past SNMP (MIB-2, custom MIB, traps, AgentX), RotateRight Zoom profiler, Python, PHP, VisualAge C++, C/Set++ (IOC/OCL/IUICL), MFC, Rexx, MySQL, Eclipse, ActionScript 3, Delphi, Pascal, Perl, Java, IBM MQ Series, IBM GSO, RS-232, Rational Rose/UML, Perforce, cvs, dBase
Academic x86 and 6502 assembly, Smalltalk, Lisp/Scheme

Operating Systems

Recent Linux (Ubuntu: x86, AMD-64, ARM7), Windows 7 & 10
Past Linux (Debian, LFS, Redhat/Fedora, Slackware), Windows, OS/2, DOS, pSOS, BeOS/Haiku, SunOS/Solaris

Networking

  Wireshark, tcpdump, UDP, TCP, IP, link layer (ethernet frames, MAC), internet layer (IPv4, ICMP, some IPv6), transport layer (TCP, UDP), application layer (http, ftp)

Encryption

  AES (cipher block chaining aka CBC), Blowfish, OpenSSL

Environment

Education

Scott Meyers Kelowna, British Columbia
June 2006 one-week course on advanced C++ topics
Canadian Management Center Toronto, Ontario
July 2004 one-week course on "Management Skills for Supervisors"
Software Productivity Center Inc. & Scott Meyers Vancouver, British Columbia
February 2003 two-day seminar titled "High Performance C++ Programming"
Construx & Steve McConnell Bellevue, Washington
June 2002 three-day seminar titled "Steve McConnell's Code Complete"
BC Institute of Technology Burnaby, British Columbia
January 2000 to January 2001, part-time attended part-time night classes to upgrade project planning, design and development skills (project estimation, software cost, Rose/UML, rapid GUI prototyping using Delphi)
Bishop's University Lennoxville, Québec
September 1993 to December 1996 B.Sc., Computer Science; completed 3 years of 4.
All required 3rd and 4th year Computer Science course requirements were completed in first 2 years.

Employment

MicroSurvey West Kelowna, B.C.
January 2017 to present
  1. update STAR*NET, a 32-bit C/C++ MFC least-square adjustment application
  2. port main application and legacy DOS code to 64-bit Windows
  3. had to learn several technologies and tools, such as Scintilla, MFC, TFS, and Hoops
  4. combination of maintenance position, working on performance enhancements, bug fixes, and new development
StyleLine Kelowna, B.C.
March 2013 to March 2016
  1. Windows and Linux C++ & SQL GUI application to run a door and drawer manufacturer
  2. PostgreSQL database back-end
  3. software generates all necessary cut lists and controls automated chop saws
  4. Beaglebone hardware and USB barcode readers with custom software to track orders on factory floor
  5. remote work from home-based office for a Kelowna-based company
Pertino West Kelowna, B.C.
July 2013 to June 2014
  1. C++ gateway for cloud-based networking device
  2. added AES encryption and UDP tunnel support between clients and central network gateway
  3. performance analysis and many improvements completed with the help of RotateRight Zoom profiler
  4. audit of existing codebase using Valgrind helped track down and fix several significant memory leaks that had been affecting customer installations
  5. remote work from home-based office for a California-based company
Unlimi-Tech FileCatalyst Ottawa, Ontario
August 2010 to present
  1. designed and wrote a commercial Linux, Windows, ARM, Mac and iOS C++ client library for a proprietary file transfer product
  2. uploads and downloads files thousands of times faster than popular/traditional TCP based methods
  3. commercially sold by Unlimi-Tech
  4. remote work from home-based office for a Ottawa-based company
C Code Run West Kelowna, B.C.
August 2010 to present
  1. consulted on many projects, the last few of which are:
    • Gorman Brothers Lumber Mill (2018)
    • Gorman Brothers Lumber Mill (2017)
    • StyleLine (2013-2018)
      • large application for door & drawer manufacturer, see description above
    • Unlimi-Tech FileCatalyst (2010-2018)
      • UDP file transfer product, see description above
    • Fastly, Inc. (2016)
      • analyzed and wrote several reports on current and upcoming IoT vulnerabilities
      • focused on Mirai which had just been discovered in early fall 2016
    • Turret Labs (2016-2017)
Strangeloop Networks Vancouver, B.C.
August 2008 to February 2013
  1. worked on the AS1000 Site Optimizer, a linux-based embedded network appliance used to optimize server-side HTTP communication
  2. designed and implemented (C++) a centralized configuration system, a new CLI, and a CGI-BIN for web-based configuration
  3. designed and implemented (C++) a new multi-device clustering system which automatically shares relevant portions of complex configurations between many clustered devices
  4. clustered devices communicate over encrypted channels using Blowfish and OpenSSL
  5. implemented SNMP MIB-II as well as a custom MIB in C++ using net-snmp AgentX
  6. brought the appliance up to PCI Data Security Standard v2.0, which included designing and implementing both multi-user support and AAA:
    1. remote authentication (LDAP)
    2. authorization (each config item maps to a half dozen user levels)
    3. audit logs (remote syslog)
  7. remote work from home-based office for a Vancouver-based company
VM86/CinematX Kelowna, B.C.
December 2007 to May 2008
  1. productized/re-designed in C++ a remote desktop X-Windows prototype written in C
  2. designed and implemented a simple client-facing Web portal using ActionScript 3
Packeteer, Inc. Kelowna, B.C.
April 2001 to December 2007
  1. 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)
  2. some simple kernel modifications were necessary for the Linux 2.2.14-2.2.25 device (TCP/IP stack modifications, not device driver changes)
  3. C development: Linux 2.2.14-2.2.25 kernel changes and parts of the pSOS appliance
  4. team lead and project lead for small group of developers tasked with both maintenance and small feature support of current C and C++ code base
  5. responsible for top-level customer support; some travel to customer sites located in U.S., Canada, and Europe
  6. supervisor to customer escalation team from 2004-2006
  7. mentor to several junior developers
CNC Global Vancouver, B.C.
April 1999 to April 2000
  1. contract position
  2. C++ (PMWin , GPI, IBM VisualAge C++ with OCL), Java, MQ Series & GSO
  3. system design, development and deployment
  4. WAN- and LAN-based applications and local system tools for OS/2 and Windows 9x/NT
  5. medium exposure to TCP/IP socket-based programming
  6. extensive GUI design and development using VisualAge C++
  7. object-oriented analysis, design, and development; extensive use of Rational Rose and UML for system design
  8. post-production system maintenance and Rexx scripting
Intelligent Medical Imaging Palm Beach Gardens, Florida
April 1998 to April 1999
  1. 1-year NAFTA TN1 visa contract
  2. C++ and Rexx maintenance, design, prototyping and development (IBM VisualAge C++ with OCL)
  3. serial communication programming (RS-232)
  4. real-time multi-processor system using OS/2 Warp Server SMP on custom-built imaging workstations
  5. extensive GUI design and development using VisualAge C++
  6. elaborate use of custom makefiles and version control system based on RCS
CNC Global Vancouver, B.C.
October 1997 to March 1998
  1. contract position
  2. C++ (IBM VisualAge C++ with OCL) object-based prototyping for a new banking front-end between OS/2 and legacy AS/400 systems
  3. GUI design and development using VAC++
LGS Group Inc. Vancouver, B.C.
April 1997 to September 1997
  1. contract position
  2. 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)
  3. introduction of C++ and OCL/IUICL objects to traditional C environment
  4. GUI design and development using VisualAge C++
  5. recipient of 'Employee Recognition Award' for design and integration of C++ and OCL to existing code base
  6. elaborate use of custom SCM tools based on CVS
InfoMedQue Inc. Sherbrooke, Québec
May 1996 to March 1997
  1. custom OS/2 & Linux programming (Rexx, C++, Java)
  2. socket programming (C++ & Java) for TCP/IP client-server applications distributed and sold via the internet
  3. network and web site consulting
  4. TCP/IP and NETBIOS network installations
  5. hardware and software installation and maintenance
  6. web site installation, maintenance & programming
Ministry of Natural Resources (Government of Canada) Sherbrooke, Québec
January 1996 to April 1996
  1. contract position
  2. C++ design and implementation of a web-accessed reservation tool running on a SunOS-hosted (Solaris 2.5) intranet web server
  3. 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
  1. part-time work
  2. design course outlines and teach basic, intermediate and advanced internet topic courses
  3. 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
  1. technical support member for IBM's OS/2 Warp operating system
Pixel Productions Toronto, Ontario
September 1990 to September 1993
  1. junior software programmer for DOS platform, using C and x86 assembly
C.A.P. Services Markham, Ontario
May 1988 to September 1990
  1. self-employed while completing high school
  2. provincially registered sole-proprietorship company
  3. programming contract with ABC Ontario, completed using dBase 3+ and Pascal
  4. programming contract with Northern Telecom, completed using dBase 3+ and Pascal
  5. programming contract with university PhD student working on thesis, completed using Pascal

Volunteer Work

Open source software projects Founder, designer, contributor
2013 to present
  1. vz::Imagination, image manipualtion and object detection with OpenCV, https://www.ccoderun.ca/vz_imagination/
  2. SG++, library for IoT devices and Seeed Grove devices, https://www.ccoderun.ca/sg++/
  3. Myra Canyon, deep packet inspection on a Linux-based router, http://myra-canyon.sourceforge.net/
  4. EPS Conduits, virtual networking in Linux, https://www.ccoderun.ca/eps/
  5. SNMPpp, C++ layer for SNMP, http://snmppp.sourceforge.net/
SOKS (Science Opportunities For Kids) Kelowna, British Columbia
January 2011 to April 2013
  1. director at non-profit organization that provides science camps for children aged 6-12
L'Anse-au-Sable Kelowna, British Columbia
September 2007 to February 2013
  1. council treasurer for K-12 school (2007-2009)
  2. director-at-large since 2010
Gramps Open-source software project
January 2007 to October 2013
  1. http://gramps-project.org/
  2. contributor since January 2007
  3. release manager since October 2007
  4. python project, hosted on SourceForge
Les Petits Oursons Kelowna, British Columbia
September 2006 to June 2009
  1. director, then vice-president of non-profit organization founded in 1994 to provide French-language preschool/daycare services
Bishop's University (Computer Science Dept.) Lennoxville, Québec
September 1993 to December 1996
  1. built, installed, and maintained UNIX and OS/2 internet servers, including WWW (HTML & CGI-BIN), Gopher and FTP
Canadian Ski Patrol System Toronto, Ontario
September 1991 to March 1993
  1. patrol trails at different outdoor ski resorts
  2. CSPS first aid certification lapsed since 10/1993