Sam Roberts

Vancouver, BC, Canada

Email: vieuxtech@gmail.com
URL: http://sam-github.github.com

Career

Software developer with more than 18 years of experience in a variety of industries, languages, and platforms. Consistently develops innovative tools and technologies that are adopted as core elements of my companies' software development and business practices. Particular interest in operating system services, network protocols, and programming languages.

Skills

Multi-language and platform development: C, Lua, Ruby, Python, C++, Objective-C, Clojure, Linux, QNX, iOS, OS X, VxWorks, Win32, BeOS, WinCE, Symbian, RIM.

Systems programming: event-driven and non-blocking I/O, embedded and real-time systems, device drivers and kernel modules, pseudo filesystems and resource oriented systems, sockets and low-level network programming.

Network protocols and data formats: TCP/UDP/IP, multicast/broadcast, 0MQ, HTTP, POP3, SMTP, IMAP, MIME, mDNS/DNS-SD ("Rendezvous" or "Bonjour"), ASN.1/BER/DER, vCard, iCalendar, BEEP, Zigbee, XML.

Cryptography: CMS, S/MIME, SSL/TLS/WTLS, X.509/PKIX, PKCS #1, #5, #7, #8, #9, #11, and #12, smart cards and hardware accelerators, cryptographic APIs (OpenSSL, Cryptoki, BSAFE, Cswift, CAC), RSA, Diffie-Hellman, and Elliptic Curve crypto-systems.

Development tools: Debian packaging, GNU tool chain (gcc, make, bash, texinfo), qt, cocoa, regular expressions, perl, shell, sqlite/SQL, git/subversion/perforce/CVS/RCS, Wireshark, Wireshark Lua dissectors.

Languages: English, French (conversation), Japanese (pretty rusty).

Education

History

Senior Architect
Wurldtech (wurldtech.com)
April 2012-present

Architect for an extensible and embeddable intrusion prevention system, still in development.

Achievements:

Development Lead
Wurldtech (wurldtech.com)
May 2007-Nov 2012

Lead a team of eight developers on a Linux-based appliance for automating network security testing of industrial equipment.

Achievements:

Senior Software Architect
Bycast (bycast.com)
Nov 2005-June 2007

Worked on storage grid, a distributed network of redundant, fault-tolerant Linux servers.

Achievements:

Senior Software Developer
Certicom Corp. (certicom.com)
Oct 2000-Oct 2005

Developed C language cryptographic toolkits optimized for high performance and low memory usage.

Achievements:

Software Developer
Cogent Real-Time Systems (cogent.ca)
1998-Oct 2000

Custom QNX development for clients in C and gamma, Cogent's LISP-based rapid application development language.

Achievements:

Development Lead
International Submarine Engineering (ise.bc.ca)
1995-Oct 1998

Managed the maintenance and development of ACE, a component-based, runtime configurable, asynchronous event-based kernel implemented in C++.

Achievements:

Interests

ClimbIt A rock climbing route database and activity tracker for iOs, available on the iTunes app store. (climbitapp.com)

libnet Adopted this widely used packet crafting and injection library, fixed the known bugs, and re-released. It has been accepted downstream by Debian and Fedora, and I continue to maintain it. (github.com/sam-github/libnet)

vPim. Ruby support for vCard and iCalendar formats, and various tools that use them, such as publishing OS X/iCal todo items as an RSS feed. (github.com/sam-github/vpim)

open source Protocol toolkits (BEEP support for lua, ZeroConf for ruby), lua bindings to C/C++ libraries, contributor to luasocket and GNU mailutils, ancient QNX virtual filesystems. (sam-github.github.com)

Judo. Black belt (1st degree), and instructor of both children and adults.

Rock Climbing. Climbed across North America, from Canada to Mexico.