Michael E. Shirk
Sr. Software Engineer
Rockford, Minnesota
*********@***.***
Summary: Over twenty five years experience in the software industry from
embedded processors and real time operating systems. Also
significant object oriented projects involving COM+ development.
Great communication skills developed over years of working with
customers giving presentations, demonstrations, and onsite
installations.
Languages: C, C++, some C# .NET, Visual Basic, HTML and XML. Extensive
assembler language with many different embedded processors
including ARM9, ARM11 and MIPs, along with Intel and Motorola
processor family assembler languages.
Processors:
MIPS, ARM9, ARM11, MC56F803x
Operating Systems:
VxWorks for ARM and MIPs platforms, Windows family, OS/2,
IBM's AIX (UNIX). LINUX
Communications Experience:
I have worked with many serial protocols including I2C, SPI,
CANB, RS-232, and SDLC. Development of software drivers on 1394
hardware. Stack drivers for OSI, GR-303 and VxWorks. Client
server software for TCP/IP in a Windows Environment.
Databases: Computer Associates Advantage/DS, SYBASE SQL Server System XI,
Microsoft SQL Server, MYSQL, SYBASE DirectConnect Product, and
SYBASE Open Client/ Open Server. ODBC on Windows platforms.
Patents: US6539301
Experience: National Communication Services Jan 2013 - Feb
2013
Anoka, MN
Consulting engagement I was asked to examine system (Web development
web pages coding(.NET) and back end work (LINUX, Sql)) Find bugs
and give help to the original coders, write reports to upper
management access system coding and robustness.
Experience: University of Wisconsin Feb 2011 - June
2011
Ice Drilling Design and Operations
Madison, WI
Designed and implemented embedded software for a sensor / motor
controller board based with Freescale 56F803x processor for a
new generation of Antarctic ice drills. The board interfaces
with an array of sensors (temperature, pressure, strain
gauges, etc.) and also controls six actuators for directing the
angle of the drill.
Paradigm C, Codewarrior
Experience: Honeywell Corporation November 2004 - August 2010
Minneapolis, Minnesota
Sr. Software Engineer
The division I worked for at Honeywell is the Aerospace and Defense
R&D group. As the Sr. Software Engineer for several generations
of projects involving navigation units for the military
(projectiles and missiles) I was responsible for working with
the FPGA programmers on board bring up using several tools
including JTAG chains and protocol analyzers. Software
development included low level software as well as BSP/device
driver development for our vxWorks and Micron RTOS's.
Wrote several die BSP interrupt/device drivers
included RS-232, SDLC, 1394, and timers.
When the project started we used Green Hills MULTI compilers,
Integrity, and IDE for the ARM 7 version of the navigation unit.
The next generation of the nav unit moved to MIPs and
migrated our code from Green Hills to Windriver compilers and
IDE (ECLIPSE variant) and eventually to the vxWorks RTOS. The
last generation was a dual core ARM9/ARM11 SoC where the ARM9
was again developed using Green Hills MULTI and the ARM11 was
Windriver.
I headed up hardware and software certification for our two products
with our production group.
I developed several Windows, Linux
and board level test tools to use in factory test.
Linux kernel mods were done fot GPS and Inertial sensors
GUI's were written using Microsoft VB and C#
( windRiver C,C++, Eclipse development environment, clearcase,
DOORS).
Experience: Alpine Electronics June 2002 - November
2004
Troy, Michigan
Sr. Software Engineer
Alpine Electronics is a major manufacturer and supplier of
state of the art retail and OEM car stereos. My duties there
included DSP development at the board level and a tools suite at
the Windows level including GUI's, window driver for
communication with radio and for communication with test
bench.
Also I did software for a checkout facility, which included
controlling power cycling, temperature cycling and humidity
cycling. Results were then logged into a database MySQL.
Tools for the Windows apps include VB and Labview for the GUIs,
CANoe for CAN bus.
DSP and other memory programming done through CAN bus software
I wrote in C++ for Windows platform.
Assembled test setup for Chryser, (Thermal cycling, Humidity
cycling, White noise testing) Data points were collected and
stored in a MYSQL database, and post processed for Chysler
Other duties included coordinated with software engineers in
Japan
Experience: EDI Enterprises, Inc. 2000 - 2002
Minnetonka, Minnesota
Contract
Design, coding and implementation of a Fiber Network Inventory
System. This involves database design, PHP, HTML and JavaScript
programming.
Design, coding and implementation of Teletraffic Cop, and
Windows based set of programs to interface to TeleCom switches
allowing computation and generation of reports of network load,
performance and faults. Product uses Borland C++ framework with
COM+, XML and is an OO design and implementation.
Other projects include coding GR-303 and V5.2 embedded protocol
stacks for telecom hardware.
Additional responsibilities:
- Customer demonstrations and presentations
- Customer support both onsite and offsite
- Trade Shows
Experience: Computer Associates / 2001-2002
Platinum Technology
Consultant / Developer / Instructor
Software Developer for the CA Advantage/DS product. Responsible
for designing and implementing scanners, the method for
importing metadata into the repository
Instructor for Platinum Repository. Developed, wrote and gave
the classes for CA Advantage /DS (then known as Platinum
Repository/OEE).
Microsoft and CA were in a joint project to integrate CA
Advantage/DS with Microsoft Repository. I was involved in the
design and development of this effort.
Consultant for the CA Advantage/DS product. Responsible for
working at customer sites, installing product on Oracle, SQL
Server and Sybase databases. Also responsible for onsite
training of customers
Open Networks Engineering 1997 - 2000
Ann Arbor, Michigan
Real Time Embedded Software Developer
Designed, coded and implemented several embedded drivers for
telecom network equipment including SONET OC-3, HDLC, network
alarm management,
OSI protocol stack maintenance and enhancement. This protocol
stack is an embedded stack running on many different hardwares
under many different real time kernel OS's.
Responsible for the debugging of new SONET hardware.
CORBA training.
C/C++
Rockwell International 1994-1997
Embedded Systems Programmer
Firmware engineer responsible for embedded real time navigation
software. Navigation software included GPS, dead reckoning, and
map matching input, plus the development and implementation of
all navigation algorithms.
Designed, coded and implemented a mobile wireless emergency
response product similar to OnStar. The product uses GPS and
either Mobitex radio modems, or cellular phone hardware to
communicate to a central monitoring station. Code pieces
implemented included a real time multi-tasker, communications
module, GPS software, and implementation of voice
hardware/software. Other duties include managing and setting
software schedules, working with vendors on central monitoring
and cellular adapter firmware and factory test software.
IBM (through Analysts International Corp) 1988-
1994
Contract Programmer
SCSI device driver development for both the RS/6000(UNIX) and
the AS/400. Also a matching Window device driver.
"Connection Program 6000" First SQL query package to connect
the RS/6000 to the AS/400. Design and coding.
Team Lead responsible for design, coding and debugging of a
display station interface for a Picture Archival and
Communications System for the Mayo Clinic.
Wrote TCP/IP extended device drivers to run across an RS-6000
running Aix(UNIX) to AS/400 Fiber Channel Standard link
Education:
Attended the University of Michigan, Ann Arbor, MI from 1976-
1981 Electrical and Computer Engineering.