Show less
Show more
https://www.ccoderun.ca/stephane/

About me

availability

I'm a senior software developer. I have 29 years of development experience. Will consider:

  • contract work
  • part-time work
  • full-time work
  • employee-employer opportunities

early start

I had an early start in computer science.

I won several district, city, and provincial awards while still attending elementary school.

cap services

I founded my first software company at the age of 14.

Before I was old enough to drive, I had contracts with companies such as ABC Ontario, Northern Telecom, and PiXEL Productions.

location

My office is in West Kelowna, BC, Canada.

I'm willing to travel or temporarily work in other locations, but I'm not looking to permanently relocate.

I've been working remotely from this location for over a decade.

Stéphane Charette
(dba C Code Run)

Contact information and other details:

Skills and tools

languages

I have 29 years of C and 27 years of C++.

Familiar with C++11 and C++14.

To a lesser degree, I'm familiar with many other languages.

operating systems

Embedded linux, and linux running on servers & desktops are my platforms of choice.

I also develop for other operating systems, such as Windows, pSOS, and OS/2.

processors

Experienced with Intel/AMD based systems.

Experienced with smaller embedded ARM-based IoT devices.

network

Familiar with raw packet construction and parsing at L2, L3, and L4. [1]

Familiar with Berkeley sockets and Boost's ASIO.

communication bus

  • RS-232 communication
  • digital I2C[1]
  • analog I2C[2]
    (requires intermediate ADC[3])

iot devices

Familiar with TI ARM-7 IoT devices and Seeed Grove sensors such as:

  • temperature[1]
  • mini LCD[2]
  • analog-to-digital converters[3]
  • digital compass[4]

sql

Experienced with SQL, stored procedures, and PL/pgSQL.

Fan of PostgreSQL, but have used other popular systems in the past, such as MySQL (now MariaDB).

valgrind

I use Valgrind to perform memory leak testing on all of my projects.

I have written several posts in the past on the use of Valgrind. [1, 2]

cmake

Fan of CMake to setup projects in a platform-independant manner.

Fan of CTest to setup and run unit tests within a software project.

Fan of CPack to build .rpm, .deb, and .exe installation packages.

virtualbox

Fan of VirtualBox since 2007.

All my development projects run in a separate instance of VirtualBox.[1]

munin

Fan of Munin for system monitoring.[1]

Authored hundreds of custom Munin plugins for monitoring critical and/or remote systems.[2]

cloud computing

Familiar with both Linode and Amazon EC2 cloud computing.

Projects and work experience

open source

Contributor to many open-source projects.

Author and owner of several open-source projects. [1, 2, 3, 4, 5, 6]

networking

C++ library to transfer files.[1]

Commercial product. Hired by Unlimi-Tech to write C++ client.[2]

Files that take > 24 hours to send over TCP can take less than 2 minutes to transfer with FC++.[3]

barcode stations

Simple IoT devices with USB barcode readers to help automate a production factory.

Runs custom software to update order status in a database.[1]

network embedded devices

Experience with embedded network devices:

  • AppCelera web accelerator
  • PacketShaper QoS
  • Strangeloop AS1000

realtime systems

Experience with complex and critical real-time systems.

Worked on London Underground's Jubilee Line Extension: driverless, fully automated subway trains similar to Vancouver's SkyTrain.

medical devices

Experience with developing software for medical devices, such as:

  • Micro21 automated microscope to analyse blood slides
  • UriSlide Master (USM)
  • Vz (Visionz) counting device

point-of-sale

Commercial multi-user Windows & Linux GUI application:

  • take customer orders[1]
  • produce cut lists[2]
  • create reports[3]
  • generate invoices[4]

IoT sensors

C++ library[1] to work with hundreds of I2C and analog sensors.[2]

Special support for BeagleBone IoT devices (BBB, BBG, BBGW).[3]

financial

Worked on financial sector software applications:

  • Various GUI applications
  • Global Sign-On
  • Multi-tier branch communication using MQ Series
  • Mutual fund sale and account management

Other

/* programming comments */

Author of a series of short articles and how-to documents on various topics related to software development.

Titled Programming Comments.[1]

pci-dss

Familiar with the requirements and implementation details of PCI-DSS level 2.0.

security

Copy of clean RCMP criminal record check obtained in December 2015.

Government of Canada security clearance "Reliability Status" designation obtained in August 2016.

cost

Quality software, service, and support.

Nearly 30 years of experience.

Keep costs low by hiring a remote senior developer with zero overhead.

Contact me to get a quote.

Recommendations and quotes

David LaRue, Senior Engineer

Stephane takes his role as a software developer seriously.

He will provide the best solution for his employer, customers, and project stakeholders. [1]

Kent Alstad, VP Acceleration

Stephane has a strong grasp of software development processes and a positive attitude that enables him to make important contributions to every project he works on.

A very talented, highly productive developer. [1]

Anne Rensonnet, Business Owner

[... Stéphane] is my number one go-to person when I need a well-written, high-performing program or application, or to assist with software or computer problems I cannot resolve.

He is very skilled, always performs at or above expectations and delivers a very professional, well-documented, thoroughly tested product. [...] [1]

Larry Gillstrom, Development Group Manager

Stephane is an outstanding software developer. He consistently delivers high quality work and takes great pride in being the goto guy on the team.

[...] Stephane regularly went above and beyond the call of duty to help his fellow employees. [1]

Shawn Bissell, Software Architect

Stephane was the key developer for the configuration, CLI and JSON API [... He ...] implemented them with the utmost care and attention to detail.

Stephane's in depth knowledge of GNU/Linux, object orientated design and C++ were a tremendous asset to the entire development team.

He is always willing to help out his fellow co-workers. Stephane has a great work ethic and is a pleasure to work with. [1]

Ken Jackson, Sr. Software Engineer

I was impressed from the start by Stephane's ability to craft code that was well structured, concise, correct, well commented, and beautifully formatted.

[He] possesses a deep knowledge of C++, linux, and systems programming. [...]

Stephane was a pleasure to work with: helpful, proactive, detail-oriented, and professional [...] [1]

Dietmar Tonn, Senior Manager

Stephane is an extremely dedicated and knowledgeable software engineer in the true sense of the word "engineer."

That is, he truly thinks about quality and design, producing great code, great design and lots of it!

I look forward to working with Stephane on future projects! [1]

Amazon.com coding test reviewer

I'm inclined to hire the candidate on the basis of the code test.

[...] The language used was C++. The code produced is exemplary - with excellent comments and good use of the standard library. The solutions were straightforward and easy to understand.

This candidate meets or raises the bar for the functional skills - coding, data structures, algorithms and problem solving.

Jinesh Jain, Somnoware Inc.

On a side note, your support team is the best!

Stephane is timely and meticulous. He has worked diligently on each of the numerous [tickets] that I have raised on the C++ api.

..