Post Job Free
Sign in

Senior Embedded Software/Firmware Engineer

Location:
Vancouver, BC, V6J 1S8, Canada
Posted:
May 24, 2013

Contact this candidate

Resume:

David A. Clark, B. A. Sc., M. A. Sc.

**** **** *** ******

Vancouver, B. C.

V6J 1S8

Telephone(h): 778-***-****

********@*******.***

e mail:

SUMMARY: Senior Embedded Software/Firmware Engineer seeking permanent or contract role.

KEY SKILLS:

18 years experience using multi threading and C/C++

13 years experience using Linux

6 years experience with embedded software

5 years experience with ARM7/9 and Motorola/Freescale processors

5 years experience with GPIO, I2C, SPI, UART, ADC, RS 485

2 years experience with BSP/u boot

3 years experience using Objective C

4 years experience using Java/J2EE/JDBC/XML/SQL/Servlets

8 years experience with the Linux operating system and GNU tool chain

6 years experience with the Windows operating system and Visual Studio

6 years experience with pSOS/VxWorks/embedded Linux RTOS

4 years experience using PL/SQL for MySQL, DB2, SQL Server and Oracle databases

10 years experience in enterprise server applications

7 years experience in distributed systems applications

8 years experience in protocol development including RTSP, HTTP and DICOM

7 years experience in hospital PACS/DICOM/HL7 development

3 years experience interfacing with Serial and Ethernet PLCs using Modbus and DNP3 Secure protocols

3 years experience with Perl/Python/Ruby

AVAILABILITY: 2 weeks notice required.

PROFESSIONAL EXPERIENCE:

Tantalus

August 2012 Present

Position: Senior Firmware Engineer

Development: Smart meters for the utility industry. Projects include the following:

Linux 2.6.33 kernel device driver development and updates

Integrity monitor and pulse counting applications

BSP/Bootloader

Environment: C, Perl, Python, GNU, Makefiles, ARM9 Atmel CAP9 processor, NAND flash, ADC, GPIO, SPI, UART, JFFS2/SquahsFS/UBIFS,

Mecurial, pthreads, Linux 2.6.33, Linux IPC, interrupts, pipes, message queues

Unication

December 2011 – August 2012

Position: Senior Embedded Protocols Software Designer

Development: Unication develops software and hardware for analog and digital handheld radios, repeaters, and base stations. At Unication I

have been assisting in the development of the following wireless protocols:

MPT1327

DMR

P25

Environment: C/C++, GNU toolchain, Makefiles, ARM processor, NAND flash, VisualDSP++, C, WinCVS, Analog Devices Blackfin AD6900 DSP,

MPT1327, P25, OpenSSL, AES 256 encryption

Dali Wireless

June 2011 – February 2012

Position: Senior Embedded Software Designer

Development: Dali Wireless makes digital repeaters to increase the capacity of wireless networks for the major carriers. At Dali I was

responsible for the embedded software design and development on Dali’s DRU and DAU product lines as well as SPI, GPIO, I2C Linux device

driver development.

Environment: Linux 2.6.27.8, C/C++, GPIO, I2C, UART, SPI, ADC, RAII, GNU toolchain, pthreads, Subversion, STL, VmWare, Makefiles, Ltib,

Phytek3250, ARM processor, u boot, PHP, NAND flash

Infoblox

August 2010 – June 2011

Position: Senior Software Engineer

Development: Distributed IF MAP Federation Client/Server modules and daemons based on a publish/subscribe design model.

Environment: Linux, C, Perl, Python, XML, gSOAP, SOA, gdb, Perforce, VmWare.

GE Energy Services

August 2009 – November 2010

Position: Contract Senior Embedded Software Engineer

Development: Assisted in development on GE Energy’s D400 and D.20 DNA. These devices are part of the GE Energy Substation

Management System.

Enabled VLAN support in the kernel and in their configuration

Added DNP 3.0 Secure and Pattern Control Block support to the GE D400 and D.20 DNA DCA/DPA applications.

Configured set up of MPC8313E board from Freescale running Linux on a PowerPC (platform for D.20 DNA)

Updated U Boot source for D.20 DNA configuration

Created and Updated U Boot environment script

JFFS2 and Ramdisk filesystems

NAND and NOR flash

Updated device tree block configuration

Developed a HDLC Linux device driver for the GE D400 and D.20 DNA product line

Developed Linux device driver for LM73 Temperature Sensor chip

Feature updates to DNP DCA/DPA embedded applications

Environment:

C/C++, Freescale MPC8313E, Embedded Linux 2.6.23, PowerPC, VmWare, DNP3 Secure, SCADA

Weir Jones Engineering Consultants

December 2008 June 2009

Position: Contract Software Engineer

Development: Designed and currently developing a 72 channel data acquisition and geoseismic event detection system for their oil and gas,

mining and government infrastructure clients.

Design of software components on the acquisition board and the main server

Development of the above named software components in Linux on a PC104 board and a desktop PC acting as a server.

Unit and integration testing

Design and development of the system’s configuration management and real time data viewer components.

Environment:

Automake, gdb, Eclipse, ARM, TI OAMP, Embedded Linux, C/C++, Linux IPC (Semaphores/Mutexes/Shared Memory), Sybase, XML, Xlib,

STL/Boost, TCP/IP, UDP/IP, RTSP, VmWare, MIPS, UML diagrams, design documentation and project scheduling and estimation

Wireless Detection

August 2008 – October 2008

Position: Senior Software Engineer

Development: Start up company in residential HVAC systems. Worked on design and development of Wireless Detection’s multi zone wireless

forced air heating and cooling system PC and embedded controller.

Environment:

Visual Studio, C++, STL/Boost, GUI, USB, Embedded Linux, ARM, Eclipse.

Zeugma Systems

August 2007 – August 2008

Telephone: 604-***-****

Position: Senior Software Engineer

Development: Start up company developing next generation class A routers. Assisted on development on Zeugma’s network management

system (NMS). Specifically I worked on the design and development of the following projects:

process redundancy for shutdowns and switchovers

configuration management

security daemon – AAA (authentication/authorization/accounting) username/password authentication for administrator users

scheduled tasks daemon

application discovery daemon

notification daemon

configuration management daemon

The processes were written in C/C++ with the UI portions done in Java Swing.

Environment:

MIPS, Embedded Linux, C/C++, VmWare, gdb, CVS, SOAP, web services, XML, Xerces, STL, OAMP, TCP/IP, UDP/IP

BC Biomedical

July 2006 – August 2007

Telephone: 604-***-****

Position: Senior Software Engineer

Development: Development on BC Biomedical’s existing PLIS (Provincial Lab Information System) web application. The PLIS web application

receives lab tests from around the province and allows medical personal to review the lab results online. The system is implemented using an

SQL Server database, COM+ C++ business tier, and Jscript, XML, CSS, XSLT for the viewer. Current development includes:

HL7 engine development

Development of a STS (Secure Token Service) SAML Token Authority using X509 and Username tokens and WS Trust Challenges

Development of the User Administration features of the PLIS web application.

Conversion of the business tier to web services using .NET 2.0/3.0, WSE 2.0/3.0, WCF.

Environment:

HL7, SQL Server 6.5/7.0, PL/SQL, COM+, C++, Jscript, CSS, WSD, XSLT, SOAP, HTTP, XML, C#/.NET, WSE 2.0/3.0, WCF, Secure Token

Service SAML token authentication using X509/Username tokens, WS Trust,

WS SecureConversation, WS Challenge.

IBM

February 2006 – May 2006

Telephone: 778-***-****

Position: Contract Senior Software Developer

Development: IBM’s Burnaby Pacific Development Center develops software for their HNS product (Health Networking System) which is a web

based UI that retrieves and updates patient records stored on an AIX server with a db2 database written in C++.

Developed new features in the IBM HSN C++ Server from customer specifications.

Software maintenance (bug fixes) in the IBM HNS C++ Server.

Developed design documents for new features and software maintenance items.

Enviroment:

GNU tool chain, HL7, AIX, C/C++, CGI, DB2, PL/SQL, HTML, XML, xldb, TCP/IP

Chartwell Technology Inc.

March 2005 – February 2006

Telephone: 604-***-****

Position: Senior Software Developer

Development: Chartwell’s Vancouver development office works on Chartwell’s internet poker client and server applications. While at Chartwell

the following was completed:

code optimizations to a Windows C++ client

redesigned the protocol software between the VC++ client and Java/J2EE server using OO design

lead the integration project with the Java Game Server and Chartwell’s flash client poker product.

developed servlets to respond to flash client HTTP request/responses using Resin and Tomcat web servers

code optimizations to the Java/J2EE game server and the web services components.

Environment:

MFC GUI application, Visual C++, CVS, Java/J2EE, JGroups, RMI, Eclipse, Toad, Tomcat, Resin, Servlets, SSL, Linux, PL/SQL, Oracle, TOAD,

TCP/IP, UDP/IP

Bycast Inc.

Sept 2002 – March 2005

Telephone: 604-***-**** Ext. 225

Position: Senior Software Developer

Development: Bycast Inc. develops high performance distributed storage solutions for fixed content assets based on the next generation grid

computing technology. Projects that have been completed include the following:

Designed and developed a medical imaging system 'Workflow Manager' (GUI and database) using VC++, MFC, SQL Server 7.0

Designed and developed a streaming video UI for the web using PHP, Javascript and HTML.

Implemented a set of HTTP client/server modules that implements OPTIONS, GET, POST, PUT, HEAD, and DELETE commands for

a distributed storage server written in C++ running on Linux using the façade design pattern.

Implemented a service module for HTTP connection pools

Developed a set of modules configuration management using the observer design pattern.

Assisted in developing a DICOM library and the following server modules for a distributed storage server written in C++ running on

Linux:

C ECHO SCU/SCP

C STORE SCU/SCP

Storage Commitment SCU/SCP

DICOM Query Retrieve SCP C MOVE and C FIND operations.

Environment:

GNU tool chain, PHP, Javascript, UML, CVS, TCP/IP, UDP/IP, TLS, SSL, HTTP, SOAP, MIME, DICOM, Perl, Ruby, Linux, C/C++, VC++ MFC

GUI application development, ERD and database design, PL/SQL, MySQL, SQL Server. Enterprise distributed fixed content secure storage

archive servers using asynchronous messaging architecture.

Pro Face INDE Electronics

October 2000 June 2002

Telephone: 604-***-**** Ext. 283

Position: Senior Software Developer

Development:

Assisted with development of a multi platform embedded HMI touch screen application that communicates with PLCs using Java UI

layer and a C/C++ communication layer on pSOS, WinCE, and Windows 2000/NT platforms.

Designed and developed a proprietary multi channel data streaming protocol using a distributed multi threaded client/server allowing

HMI applications to share data over a network using TCP/IP to other HMI applications and to their web client product.

Assisted in development of a Java client that communicates with the above mentioned proprietary protocol.

Redesigned the architecture of their embedded real time application communication software modules.

Environment:

PowerPC, Win NT, Win CE, pSOS, Java, JBuilder, Multi threaded C/C++, VC++ 6.0, eMbedded C++ 3.0, VSS, TCP/IP, UDP/IP,

Modbus, Zero copy sockets, CF Cards

PLCs: Omron, Siemens, Toyopuc, Mitsubishi

McKesson (formerly A. L. I. Technologies Inc.)

February 1997 October 2000

Telephone: 604-***-****

Position: Software Developer

Development:

PACS DICOM (Digital Imaging and Communications in Medicine) query retrieve client/server

RIMS report query server

DICOM image importer/sender

DICOM and Postscript print server

Assisted in the continuing development of a DICOM OEM library for NeXTStep, OpenSTeP, Solaris 2.4, VxWorks, pSOS, and Win NT.

Developed a multi threaded PACS web server using a Java client and a IIS VC++ server that retrieved patient information/images from

SQL Server/Oracle databases.

Environment:

SQL, Oracle, OpenSTeP, NeXTStep, Solaris 2.4,Win NT, VxWorks, Multi threaded, C/C++, Objective C, Java, JPEG, M JPEG, Unix, gdb,

PowerPC, pSOS, TCP/IP, UDP/IP, HTTP, PL/SQL, SQL Server

RADARSAT International

July 1995 February 1997

Telephone: 604-***-****

Position: Software Engineer

Development:

Created Win 3.1 GUI CD ROM/Exabyte tape auto loader for radar processed data formats.

Created a MS Access Quotation Tool linked to Maximizer and Macola to create proposals, orders, and invoices.

Created Bourne shell scripts to automatically extract data from the Canadian Space Agency database to an Order Tracking database

and an Archive database.

Created Product Transcription Request Ordering html pages using CGI and Perl scripts.

Environment:

Borland C++ 4.5, SCSI 2 devices, ASPI library, Access 2.0, SQL, ODBC, html, Win 3.11, Perl&Bourne shell, Unix, Solaris, CGI scripts.

University of British Columbia

Department of Electrical Engineering

Image/Radar Processing Laboratory

Dec. 1993 July 1995

Telephone: 604-***-****

Position: Scientific Programmer

Development:

Created X Window/Openwindows GUI applications for an interferometric and a polarimetric processor.

Created image processing applications for a radar interferometry processor.

Environment:

Unix, SunOS, Solaris, X windows, Openwindows, C/C++, Xview/Xlib library, C shell scripts.

EDUCATION:

University of British Columbia

Graduated with a Master's Degree in Applied Science in Electrical Engineering in October, 1994 Specializing in:

Acoustic radar and 2D image processing

Acoustic wave modeling and diffraction

University of British Columbia

Graduated with a Bachelor's Degree in Applied Science in Electrical Engineering in May, 1992

REFERENCES:

1. Mr. Mark Roberts, Architect GE Energy [********@*****.***], 403-***-****

2. Mr. Tereus Scott, Firmware Manager Tantalus Systems [******@********.***], 415-***-****

3. Dr. Mohammed Kermani [********@******.***], CEO Bycast Inc., 604-***-****

4. David Slik [*****@******.***], Architect Bycast Inc., 604-***-****

5. Mr. Robert Mair [******@*****.***] GE Energy Project Manager, 403-***-****

6. Mr. Van Tran [********@*****.***], GE Energy FPGA Engineer, 403-***-**** Ext. 209

7. Louis Lee [********@*****.***], GE Energy Embedded Software Engineer

Obj101

Obj100



Contact this candidate