OVERVIEW
|
|
- Extensive embedded systems, Linux, electronics, C/C++, Java experience and more
- Over 15 years experience in full-lifecycle cross-platform Software Design and Engineering.
- Created many successful products, birth to maturity.
|
EXPERIENCE
|
2018- |
Perle Systems LLC
|
Toronto, Canada |
|
Embedded Systems Firmware Designer
- Embedded systems (ARM Linux) development of Industrial strength router.
Responsible for design and implementation of router functionality such as IPsec, OpenVPN, Docker and general Linux stability on embedded arm64 platform.
- Tools and technologies used: C/C++, Linux, Python, IPsec, OpenVPN, Linux, uboot+buildroot
|
2016-2018 |
ACS
|
Toronto, Canada |
|
Embedded Systems Firmware Designer
- Embedded systems (uCLinux on Blackfin) development of biometrics based vehicle breathalyzer interlock system. Responsible for camera controller, which validates driver identity and communicates results via CANbus to vehicle lockout system.
- Tools and technologies used: C, uCLinux, uboot+buildroot, CANbus, I2C, SPI, git.
|
2015-2016 |
Jonah Group
|
Toronto, Canada |
|
Senior Technical Developer
- Contract work for RouteOne, developing new vehicle financing application smartphone hybrid web-app
RouteOne Mobile App used by GM and others.
- Developed web pages and corresponding back end server support using client/server model.
- Tools and technologies used: Java, Spring MVC, Struts, J2EE, JavaScript, jQuery, JUnit, Maven, JSTL, HTML, CSS, JSON, Hibernate, git, JIRA
|
2008-2015 |
Navcast/Skymate
|
Mississauga, Canada |
|
Embedded Systems Engineer
- Embedded systems (Linux on Atmel/ARM) development of Sirius/XM satellite weather and Infotainment receiver systems. Solely responsible for everything from bootstrapping the hardware to device drivers, Linux kernel and systems software right to the final NANDflash image deliverable.
- Did extensive co-design with electronics developers to create the overall system including hardware debugging.
- Performed hardware and software design and debugging to successfully bring up various I2C, I2S, SDIO (MMC), UARTs, PWM, Ethernet, Bluetooth, and WiFi devices.
- Wrote onboard application level firmware to process various SiriusXM weather products and implement security protocols.
- Co-designer and developer of the firmware for Skymate I1000 Iridium satellite communicator. This product embeds a Linux system with a GPS, Sirius/XM receiver, and Iridium satellite communicator to enable worldwide position reporting, email, weather and weblogging access.
- Other products created and fielded:
SiriusXM SXAR-1 Aviation Receiver,
Furuno BBWX3,
Furuno BBWX2,
Raymarine SR6, SR150,
Simrad WM-2,
WM-3,
Lowrance LWX-1.
- Work on all of the above products was from fundamental design all the way through to production.
- Tools and technologies used: C/C++ toolchain, Python, Linux scripting and tools, cvs, svn, git.
|
2002-2008 |
Cybermation/CA
|
Toronto, Canada |
|
Principal Software Engineer
- Responsible for the development of the Unix "agent" portion of Cybermation job scheduling software. This key component interacts with all aspects of Unix and runs on Linux, Solaris, HPUX, AIX and Tandem. Portability and thorough knowledge of Unix was critical in this role. It became our motto that "if this Unix variant has a bug, we'll expose it".
- Development of Cybermation "Espresso" job scheduler (Java)
- Development of Cybermation's experimental "next generation" Job Scheduler (J2EE)
- Tools and technologies used: C/C++, Java, J2EE, svn, cvs
|
2000-2002 |
BroadVision
|
Toronto, Canada |
|
Senior Software Engineer
-
Designed and implemented content entry engine of
BroadVision Content Catalyst,
a Java/JSP/JavaScript based thin-client XML content management system running under the
BroadVision 1to1 Enterprise application platform.
- Designed and implemented from scratch, including automatic regression tests.
- Led design and code reviews
- Investigated, obtained, set up and maintained development tools for the rest of group and performed other systems administration functions
- Responsible for end-to-end internationalization functionality
- Interviewed job applicants and assisted the screening process
- Tools and technologies used: JAXP, SAX, Xerces, Xalan, CVS, Java, Java Servlets and Beans, JSP, JavaScript, BroadVision Enterprise 1-to-1 on Sun Solaris 2.7, HPUX 11i and Win2k, Oracle, Apache and iPlanet
-
Designed and implemented portions of the standalone Win32/MFC/COM based precursor to
BroadVision Content Catalyst.
- Tools and technologies used: MSXML, Win2k, Visual C++ 6.0, MFC, COM, MS SourceSafe 6.0
|
|
1998-2000 |
Interleaf Inc.
(now part of BroadVision).
|
Toronto, Canada |
|
Senior Software Engineer
-
Designed and implemented module of the printing subsystem of
BroadVision QuickSilver
(formerly Interleaf 7), a structured publishing system.
- Solely responsible for design, implementation and testing (rest of team in Boston)
- Task involved using the
XSLT transformation language
to generate
XSL flow object
page descriptions and converting them into QuickSilver's low level typesetting language
-
Systems administration and networking during office transition.
-
Set up and maintained ad-hoc network gateway between Toronto and Boston
office in tandem with other software development tasks.
|
|
1990-1998 |
SoftQuad Inc.
(part of Corel).
|
Toronto, Canada |
|
Senior Programmer
-
Solely responsible for Motif port (in C++) of
SoftQuad Panorama, an SGML viewer.
- Designed and wrote a complete HTTP 1.0 implementation for it from scratch
- Technical liaison with third party technology provider. Provided design assistance and initial MS-Windows porting work
- Subsequently rewrote it to be a Unix Netscape Plugin
-
Responsible for a large-document fragmenter/CGI-retriever suite (C++),
which worked in conjunction with Panorama to let one
efficiently view arbitrarily large SGML documents.
-
Co-designed and implemented the PSI Portable Scheme Interpreter,
an
R4RS compliant
implementation of the Scheme Programming Language, designed to be portable from anything from
MSDOS to MS-Windows to Unix.
-
Designed and implemented PSIOOP, an efficient object-oriented
language extension with first-class objects for PSI written in C.
-
Integrated the PSI Scheme interpreter into
SoftQuad Author/Editor (an SGML editor)
allowing C++ classes to be treated as Scheme classes and vice-versa.
This system became the core of
SoftQuad Sculptor,
a script-customizable SGML editor. This in turn is what was used to develop
SoftQuad HoTMetaL 1.0,
the world's first HTML editor and
SoftQuad Apex,
a specialized tool for editing electronics spec sheets.
-
Designed and implemented a BSD sockets interface for PSI.
-
Designed and implemented a generic interface for PSI allowing
one to call arbitrary MS-Windows DLL functions (32 and 16-bit).
-
Designed and implemented the SoftQuad SGML Transformer (in C), which
allowed SGML to be processed via Scheme scripts. This was used
extensively in various contracts.
-
Designed and implemented SoftQuad sqlm, a C application which
turns SGML into customizable troff, suitable for typesetting.
All SoftQuad software manuals were produced using this.
-
Designed and implemented dtdocumenter, a PSI/C application that
reads a DTD and outputs a skeletal SGML file with cross references
and content models, suitable for producing documentation.
|
EDUCATION
|
|
Trinity College
,
University of Toronto
|
Toronto, Canada
|
|
Bachelor of Science (Honours). Double Major in Computer Science
and Physics with minors in Mathematics and Logic.
Emphasis on Computers and Electronics.
|
PERSONAL
|
|
- Swedish and Canadian citizen.
- Fluent in Swedish and English.
- Licensed Amateur Radio operator VE3RPH.
- Sailing Fan.
|