Home Address:
Kanata, Ontario, Canada
Present Status:
Employed full-time.
Not interested in anything involving relocation.
Security Clearance:
Secret (file
number 95253181-0000240019)
Technical Qualifications
|
Hardware
|
|
Software
|
|
Operating Systems
|
|
Languages
|
|
Protocols
|
|
Intel x86 PCs
|
|
Visual Studio .NET
|
|
Windows NT/2000/XP
|
|
C# / C++ / C
|
|
HTTP
|
|
Sun
|
|
Eclipse Platform
|
|
Windows 95/98/ME
|
|
Java & JavaScript
|
|
WebServices / SOAP
|
|
DEC Alpha
|
|
Microsoft SQL
|
|
Windows CE
|
|
PHP
|
|
S/MIME
|
|
Crestron
|
|
MySQL
|
|
Windows 3.X
|
|
XML / XSL
|
|
LDAP
|
|
|
|
PostgreSQL
|
|
Linux
|
|
HTML & CSS
|
|
PPP
|
|
|
|
CryptoAPI
|
|
Solaris
|
|
SQL
|
|
X.400 & X.500
|
|
|
|
OpenSSL
|
|
HP/UX
|
|
Tcl
|
|
PKIX
|
|
|
|
Entrust Toolkit
|
|
AIX
|
|
ASN.1
|
|
SMTP
|
|
|
|
Subversion & CVS
|
|
OSF/1
|
|
Perl
|
|
FTP
|
|
|
|
Apache / Tomcat
|
|
|
|
Unix sh/csh
|
|
TCP/IP
|
|
|
|
Expat XML Parser
|
|
|
|
Pascal
|
|
X/Y/Z Modem
|
|
|
|
YACC / Lex
|
|
|
|
BASIC
|
|
X.25
|
|
|
|
Samba
|
|
|
|
Assembler
|
|
|
|
|
|
|
|
|
|
|
|
|
Job Skills:
Languages:
Extensive
knowledge of C#, C, C++, PHP, Java, JavaScript, Tcl, and Perl. Good knowledge
of Pascal, FORTRAN, BASIC, and assembler (680x0, 6502, Z80). Excellent
knowledge of HTML and companion technologies such as DHTML, CSS, XML, and XSL.
Web
Applications
Extensive
experience using ASP.NET and WebServices.
Very good knowledge of Java / JSP and Apache Tomcat.
Databases:
Experience with
Microsoft SQL Server, MySQL, and PostgreSQL. Good knowledge of the Microsoft
.NET database framework as well as Java’s JDBC.
Security/PKI:
Extensive
implementation experience with security APIs including OpenSSL, Entrust, and
Microsoft's CryptoAPI. Detailed knowledge of security protocols such as S/MIME
and MSP, as well as lower level protocols and algorithms such as PKCS-1, block
ciphers, stream ciphers, padding techniques, etc.
Communications:
Extensive
implementation experience with internet protocols such as HTTP, HTTPS, FTP, and
SMTP. Implemented a C++ HTTPS class library over top of OpenSSL as part of
Ponte's Win32 Control Point product. Implemented a C++ XML class library over
top of the Expat XML parser.
Extensive
implementation experience with the X.400 E-Mail and X.500 Directory protocols
(DAP and LDAP) as well as OSI tools and general concepts. Design and
implementation experience with several LDAP client applications, particularly
on the Windows platform.
Extensive TCP/IP and X.25
experience from a software perspective. Designed and implemented software to
interface at the packet level with a Datapac 3305 BPAD [Bisync 2780/3780]. Good
knowledge of X.3 and X.29. Extensive experience with X.400 support and
operations. Implementation experience with async error-correcting protocols
such as X/Y/ZMODEM.
Various micro-computers:
Programming
experience since 1990 with Microsoft Windows. Over 6 years programming
experience with 680x0-based systems such as the Atari ST. Additional
programming experience on Macintosh, DOS, and PC-Unix systems. Extensive
programming knowledge of Microsoft Windows, Windows CE, MFC, and the Visual C++
and Microsoft.NET development environments. A Windows NT day-to-day user since
its first beta release. Extensive programming knowledge of the GEM windowing
system, including the development of two commercial GEM-based applications for
the Atari ST.
Unix
Systems:
Considerable
experience with various Unix systems, including Linux, Solaris, Unixware
(SVR4), HP-UX, SunOS, DEC MicroVAX (Ultrix), and Interactive Unix. Designed and
implemented applications using the X11 Window system, OSF/Motif, the
"PP" X.400 message handling system, the "ISODE" OSI
protocol tool kit, and the "QUIPU" X.500 directory system.
Crestron
Control Systems:
Programming
experience since 2000 with Crestron automation/control systems. Excellent
knowledge of SIMPL, SIMPL+, VT-Pro-E and other Crestron languages and tools.
Other
systems:
Tandem computers;
DEC PDP-11s running RT-11 and RSX-11/M; IBM mainframes running VM/CMS; DEC VAX/VMS.
Professional Experience
Third Brigade
Inc., Ottawa Ontario; Senior Software Engineer
[August 2004 – Present]
- Employed as a senior developer working on
the company’s Java and C++ based products.
Marchvale
Technologies Ltd., Kanata Ontario; Senior Software Developer
[May 2003 – Present]
- October 2003 – August 2004: Under
contract to KeySpire developing
Microsoft .NET and
Java/J2EE software.
- May 2003 – September 2003: Under
contract to Titus as a Subject Matter
Expert (SME) for a training course. The course is designed to give UNIX
developers a solid foundation in Windows programming.
Bannock, Ottawa Ontario; Senior Software Developer (contract)
[December 2002 – January 2003]
- Employed as a senior software developer
working for a start-up company on Microsoft .NET products.
- Contract ended prematurely when the anticipated
start-up funding failed to materialize.
Ponte Communications,
Ottawa Ontario; Senior Software Developer
[October 2000 – July 2002]
- Employed as a senior software developer
working on Ponte's network management software.
- Design prime for Ponte's nsControl web
interface. Technologies involved in the web interface included Solaris,
Tcl, CGI, HTTP, HTML, CSS, JavaScript, CGI, Apache, and modSSL.
- Co-designed and implemented Ponte's Win32
Control Point - a remote execution engine for running jobs to control and
update locally attached devices. Development was done under 32-bit Windows
with a single binary running as a service under Windows 95 through Windows
2000. Technologies involved in the Control Point included Tcl, Tcl
extensions, Expect, the Windows setup APIs, OpenSSL, TFTP, and Cygwin for
Unix-like Expect and Telnet clients on all Win32 platforms.
- Designed and implemented a caching engine
for Ponte's NetBSD-based Network Control Point product.
Entrust Technologies
Limited, Ottawa Ontario; Senior Software Engineer
[September 1997 - October 2000]
- Employed as one of the senior technical
advisors in the company, particularly with regard to Microsoft Security and ASN.1
issues.
- Developed Entrust's Unity product for the Windows
platform - a cryptographic service provider (CSP) for Microsoft's
CryptoAPI.
- Acted as the central point of contact for
Entrust's premier support contact with Microsoft.
- Guided the development of Windows
2000-specific interoperability features in Entrust Release 5, and
performed initial interop tests with Microsoft's cryptography group.
Strata Software Limited,
Kanata Ontario; Senior Partner / Consultant
[May 1995 - September 1997]
- Contract work in the data communications
and security field, primarily for Entrust
Technologies Limited. Contracts with Entrust® included:
- Design and development of a secure HTTP
proxy application for Windows and Unix for use in home-banking and other
web applications requiring high levels of security and strong
authentication. See Entrust/Direct™ (now called the Entrust Entelligence™
Web Plug-in) and Scotia OnLine for a description of the Entrust secure
HTTP solution.
- Development and Interop testing of the
Entrust S/MIME toolkit.
- Development and testing of the Entrust
S/MIME Autoresponder.
- Development of a content encapsulation
layer implementing the Secure Data Network System (SDNS) Message Security
Protocol (MSP) 3.1 standard (MIL-STD-2045-18500) and subsequent
interoperability testing with other MSP implementations.
- Significant enhancements and
modifications to an ASN.1 compiler and run-time C++ class library in
order to make it suitable for use in the Entrust environment.
- The development of a production quality
cc:Mail / X.500 directory synchronization tool based on LDAP.
- Extended the publicly available Unix PPP implementation to
support Microsoft's authentication scheme known as MS-CHAP.
MS-CHAP is an extension to the PPP Challenge Handshake Authentication
Protocol that uses MD4 hashing and DES encryption in a fashion such that
the PPP software does not need to have access to a cleartext password.
- Maintenance (compilation, installation,
and configuration) of Samba
file and print server software on Linux
Systems to allow access from Windows NT, Windows 95, and Windows for
Workgroups PCs.
Enterprise Solutions Limited, Nepean Ontario; Senior Software Engineer.
[March 1994 - May 1995]
- Acted as one of the senior technical
advisors in the company, particularly with regard to Microsoft Windows and
X.500 client issues.
- Designed and implemented Enterprise
Solutions' Integrated X.500 Directory User Agent (IDUA) and Standalone
Directory User Agent (SDUA) for Microsoft Windows. The IDUA was chosen as
the runner-up in the "Best of Interop" database category at the Fall
1994 Interop show.
- Designed and implemented a Winsock-based
transfer utility using the TCP/IP File Transfer Protocol (FTP). This utility
allowed ESL clients such as Wal-Mart to submit and receive messages
without having to install NFS or similar file sharing client software on
every PC using the ESL X.400 User Agent.
Bell-Northern Research Limited, Nepean Ontario, Secure Networks Division;
Data Communications Specialist.
[July 1993 - March 1994]
- Designed and developed the X.500-based
communication layer as well as the X.509-based certificate handling code
for Northern Telecom's Entrust® security product. Implemented extensions
to the LDAP (RFC 1777) to carry Entrust-specific protocol elements using
the OSI Generic Upper Layer Security (GULS) framework.
Software Kinetics Limited, Stittsville Ontario; Communications Specialist.
[June 1990 - July 1993]
- Designed and participated in the implementation
of the world's first Military Message Handling System (MMHS), based on the
NATO extensions to the X.400 protocol. The system is a highly-functional
prototype utilizing the OSF/Motif graphical user interface.
- Various smaller projects, including work
with X.500 directories, X.400 interoperability testing, and
security-related implementations of X.400.
- Leave of absence (June 1991 - Sept 1991).
Worked on personal MS-Windows and GEM programming projects. The leave of
absence was primarily to complete some significant enhancements to my two
commercial Atari products and begin porting them to the MS-Windows
platform.
- Designed and co-implemented several X.400(88)
security enhancements to the MMHS prototype system. Encryption techniques
including RSA and DES were employed in order to provide X.400(88)
confidentiality, integrity, and non-repudiation services. An X.500
directory provided the key-management functions for the public-key
cryptosystem. Enhancements to the X.400 work are ongoing as part of SKL's MMHS
efforts.
- Designed and co-implemented an X.500
Directory User Agent (DUA) based on Motif. In addition to basic X.500
capabilities, the DUA features programmable search expressions and direct
support for X.509 security-related directory attributes such as
certificates and revocation lists. Enhancements to the DUA are ongoing as
part of SKL's MMHS efforts.
Bell Canada, Ottawa Ontario, Mediatel Division.
[Dec 1992 - April 1993 (part time)]
- Implemented the ZModem protocol for Bell
Canada under a part time contract. The project was to enhance their Envoy
100 email service to include ZModem transfers of message attachments. The
work was carried out on weekends and evenings from my home office.
Bell Canada, Ottawa
Ontario, Value Added Services Design District - Envoy 100 Technical Group.
[May 1985 - June 1990]
Envoy 100 is a Canada-wide electronic mail system with a
customer base of approximately 90,000 users.
- Joined as Computer Systems Associate,
upgraded to Computer Systems Specialist in Sept. 1986, promoted to Systems
Advisor in Nov. 1988.
- In the Systems Advisor role, job
responsibilities were the identification and evaluation of new
technologies; high-level designs for new features or enhancements; and
providing guidance and consulting for the various members of the district
- both developers and planners. Responsibilities as Associate and
Specialist included detailed design, implementation, testing, and
project-leader activities.
Strata Software, Kanata Ontario.
[Fall 1988 - Summer 1991 (part time)]
- Developed and marketed a pair of
commercial programs for the Atari ST line of personal computers. STalker is a
general-purpose telecommunications program with X/Y/ZModem, CIS B+, a
C-like scripting language, VT100/PC-ANSI emulation, and many other
advanced features. STeno
is a Windows Notepad-like text editor with some word-processing features.
- Both programs were licensed to Gribnif Software of
Hadley Massachusetts in June 1991 and continue to sell well in the
relatively small Atari market.
Bell-Northern Research, Nepean Ontario.
[May 1984 - Sept. 1984]
- Worked on a network routing and costing
system implemented using FORTRAN and Pascal on an IBM mainframe.
National Research Council,
Ottawa Ontario, Division of Building
Research - Insulation Testing Lab.
[May 1983 - Sept. 1983, May 1982 - Sept. 1982]
- Enhanced and implemented software
controlling the lab's PDP-11 based data acquisition system.
Education
- Entrance Scholarship, 1981.
- Bachelor of Computer Science - Highest
Honours, 1985.
Seaway District High School, Iroquois, Ontario, Canada
(1976-1981).
- Ontario Secondary School Honours Graduation
Diploma, 1981.