| C. Michael Sundius |
Solico Group LLC: Sundius Consulting
|
| My Aim is to design and implement embedded systems, kernel level and other system software. |
232 Nevada St
San Francisco, CA 94110
(415) 608-0121
msundius@sundius.com
www.sundius.com/suncon
|
UNIVERSITY OF ILLINOIS - Department of Computer Science
Spring, 1992
Distributed programming environment:
Advanced
Distributed Operating Systems.
- Designed and implemented interprocess
communications channel for Choices kernel.
- Ported PICL, a programming environment
for distributed applications, to Choices.
CARNEGIE MELLON UNIVERSITY - Bachelor of Science Computer
Engineering
May, 1990
Auto tuning stringed instrument:
Computer
Controlled Testing & Measurements Design.
- A microphone
and amplifier input a sound wave form into a digitizing oscilloscope.
- FFT software
determines control signals for stepper motor power circuit to tighten string.
Node in distributed database:
Logic and Processor design.
- Bit slice
processor with 16 bit data path
- Microsequencer, microstore and code downloader
- RS-422 serial
IO interface
- 16Kbytes of main memory
EXPERIENCE:
MIDWAY ENTERTAINMENT INC.
April to June 1998
ACCLAIM COIN OPERATED ENTERTAINMENT INC.
January, 1996 to April, 1998
MOTOROLA INC. Microcomputer Group
September, 1994 to December, 1994
INTEGRATED SYSTEMS INC. Software Components Group
July, 1992 to December, 1995
MOTOROLA INC. Microcomputer Group
September, 1990 to July 1992
ROBOTICS INSTITUTE, Carnegie Mellon University
June 1986 to June 1990
TURNER ENGINEERING INC. Broadcast Television Systems
Summer, 1987 & 1988
PERSONAL:
- Eagle Scout
BSA - Snowboarding
- Pi Kappa Alpha Fraternity -
Rock Climbing
SCIENTIFIC ATLANTA / CISCO
June, 2008 to Present
Software Engineering Consultant: Solico Group, LLC
- Scientific Atlanta develops set-top boxes for the cable television industry
- Convert build environment for Kernel and Base FS to use Open Embedded.
- Enabled use of memory in low memory (below kernel code).
- Made available for use memory previously used by bootloader.
- Changed memory model to sparse model to save memory used by useless page descriptors.
- Rewrote code used for early reservation of large blocks of contiguous memory for drivers.
- Integrated a more reliable backtrace facility into the SA failure report / diagnostics code.
- Wrote API and underlying code to allocate watchpoint registers to various system software uses while allowing remaining registers to be used by ptrace.
- General bug fixing and kernel support for driver and application developers.
- Recommended ways of improving development environment, lab setup and source control for more efficient software development.
AAE SYSTEMS INC.
January, 2008 to March, 2008
Software Engineering Consultant: Solico Group, LLC
- AAE Systems develops satellite based communications systems
- Installed/upgraded Linux host comiler/development server; Installed and compiled up all system software with new ELDK tool chain.
- Upgraded Linux kernel to 2.6; Upgraded some other system software to newer versions.
- Brought up 3 different boards and made sure u-boot, Linux, and other software ran properly on each.
- Resolved bugs that required understanding of kernel internals and how hardware works:
Snooping traffic had been disabled for host bus accesses from HOST-PCI bridge; reset of PCI-PCI bridge was not wired correctly, required software patch; and a few others.
- Made various other fixes and code cleanup.
- Provided support and assistance to application developers to understand Linux and embedded tool chain.
- Recommended ways of improving development environment, lab setup and source control for more efficient software development.
GUARDIAN EDGE INC.
August, 2007 to Oct, 2007
Software Engineering Consultant: Solico Group, LLC
- Guardian Edge sells security software to encrypt MS Windows PC disk drives
- A Linux Preboot program is used to setup decryption keys and drivers.
- Worked to transition from Linux to PC BIOS environment using the Linux Kexec facility.
- Analysis and rewrite of existing software for Linux to BIOS transition.
- Identified a way to avoid using disk access during Linux runtime critical for BIOS INT13 to remain usable after Linux preboot.
- Rewrote parts of kexec so that it would be called as a library instead of a isolated program, also allowing GE to decouple proprietery and GPL software into different modules.
- Analysis of minimal assembly code necessary for transition to BIOS environment.
STRETCH INC.
August, 2005 to Jan, 2006
Software Engineering Consultant: Solico Group, LLC
- Stretch is a manufacturer of configurable CPUs based on the Tensilica X-Tensa core
- Developed a GDB Multiplexer to allow a single instance of GDB control several JTAG debuggers, each controling
a separate CPU in a Multi Processor Single Memory system. Each CPU is presented to GDB as a separate thread by the debug multiplexer.
- Developing a multi threaded debug monitor to allow a single instance of GDB to control all CPUs on
a multi processor single memory system.
CENTILLIUM COMMUNICATIONS INC.
October, 2004 to July 2005
Software Engineering Consultant: Solico Group, LLC
- Centillium makes an embedded processor (Mips core) and reference platforms for the home networking products such as internet phones and routers.
- Linux support for Centillium USB Ethernet driver.
- U-boot support / bringup on Mips core embedded reference platform.
- Linux kernel support / bringup on Mips core embedded computer.
- Genreal kernel and U-boot and driver support.
KENATI TECHNOLOGIES INC.
December, 2003 to October 2004
Software Engineering Consultant: Solico Group, LLC
- U-boot support / bringup for PPC single board computer.
- Linux Kernel support / bringup for PPC single board computer.
- Linux kernel support for hardware assisted context switching within a custom microprocessor.
- Involved rewriting the exception handling and context switching code within Linux kernel.
- Software support for a coprocessor (running linux) which off-loaded data compression/decompression processing from host system (also running linux).
- Involved Linux host device driver and coprocessor kernel module, and communication protocol.
LINUXCARE INC.
August, 2002 to January 2003
Software Engineering Consultant: Freya Team Member
- Freya is a redesign of software that manages Linux Virtual Machines on IBM s390 running z/VM.
- Defined requirements and architecture of Linux agent and its interface to the management core & platform hypervisor.
- Analyzed and made reccommendations for problem areas in 1st generation product core.
- Part of team fixing bugs for GA release of 1st generation product.
- Initial setup of s390 Cross compiler and emulation.
COSINE COMMUNICATIONS INC.
June, 1998 to May 2002
Senior Software Engineer: IPNOS
Operating Systems Team Member
- Early employee
in startup phase of company.
- Involved
in design & development of IPNOS OS for the IPSX Network Services Platform.
The IPSX is a distributed system designed to deliver value added internet
services to ISP subscribers.
- Contributed
to discussions of hardware architecture for OS perspective.
- Liaison
for OS vendor.
-
Specialty in Core OS issues (Linux and pSOS) -- Drivers, APIs, DPC/TASK Scheduling, IO Subsystems, Debuggers and Software Loader.
.
- Worked closely
with engineers of Distributed OS and Clustering software to resolve bugs and design
issues.
- Worked
with hardware engineers to bring up and debug IPSX hardware.
- "Goto guy"
for troubleshoot tricky bugs/crashes where assembly level debugging is
necessary.
- IPNOS support
for libpcap and TCPDump through out distributed system.
- Designed
& Implemented IOlayer (OOD interface software for NI drivers
and L2 modules)
- Customized
Linux debug tool "pstack", support for pthreads on PPC and added extra
options etc.
- Development
of FLASH drivers, and integration with file system (pHILE+, Linux ext2,
JFFS/MTD).
- Design and
oversight of command line debug monitor (cldbg).
- Cosine serial
IO Interface and Virtual Serial IO Console (pSOS and Linux drivers).
- Other drivers:
Protype HW Ethernet, Interrupt dispatcher in Linux, Console/Serial Drivers, Terminal
Drivers, support for "ring control" driver.
- System Attribute
collection (Gathers Version, S/N and Statistics etc for distributed processors)
- Proprietary
time distribution software.
- Stability
and Performance work.
- Distributed
Software Loader.
- "Objectized"
major parts of IP Stack.
- Initial
bring up of core OS on prototype and other early hardware.
Consulting Engineer: Sundius Consulting
- Ported proprietary
OS from Hardware based on the Gallileo 64010 to Hardware based on the Nile
System controller
- Improved
drivers to work w/ newer graphics chips.
- Work completed
on time for the Hydro Thunder Game.
Staff Software Engineer: System
Software Architect
- Responsible
for all system software on the Epidemic Game Platform (Mips R5000 design).
- Designed
and Implemented Startup code/ Debug Monitor / Kernel / Exception Handlers.
- Wrote UDP
network implementation for debug communication.
- Wrote various
device drivers for serial chip, system timers, NVRAM, etc.
- Maintained
Glide graphics driver library for Voodoo graphics chipset.
Ported to Mips; rewrote initialization and texture download routines.
- Worked with
hardware engineers in design and debug stages of Epidemic Game Platform
and
PSArcade daughter card.
- Worked with
game programmers in porting and debugging stages of Armageddon game and
Judge Dredd game.
- Responsible
for selecting development tools.
- Designed
and implemented specialized file system for and disk driver for streaming
video.
- Designed
object oriented menu system for game options and statistics menus.
- Provide
technical resources for other software and hardware engineers.
Independent System Software Consultant
- Ported inter-process
communication software of pSOS+m 2.0 to the 88110 processor.
Senior Software Engineer
- Member of
design team for new version of the pROBE+ debug monitor.
- Implemented
pROBE+ on PowerPC processor.
- Ported pSOS+m
to i960 processor.
- Technical
Lead for 88110 processor.
- Implemented
exception handler code for pROBE+ debugger on 88110
- Ported pSOSystem
to 88110 and wrote drivers for Tadpole TP810V and MVME197 boards.
- Tested multi-processor
version of pSOS+m real-time kernel on 88110 processor.
- Ported pHILE+
file system to 88110 processor.
- Managed
other porting, testing, editing of documentation, and release to manufacturing
of 88110 products.
Software Engineer
- Member of
multiprocessing team; we were responsible for multiprocessor issues, system
performance
and architectural issues within SVR4 UNIX on Motorola’s 88000 microcomputer.
- Improved
system performance as measured by the AIM benchmark by 200%.
- Wrote console
driver for MVME188 microcomputer.
- Ported multi-processor
locking code for all of the file systems in the UNIX kernel.
- Wrote a
test suite to cause sections of the kernel to be executed simultaneously
on multiple processors.
- Multithreaded
a driver for the HAWK Ethernet controller.
Research programmer in Image Understanding
Lab
- Determination
of reflectance characteristics of a 3 dimensional surfaces.
- Implemented
DDCMP protocol for communicating between a Sun workstation and a robot
arm.
Computer programmer
- Co-wrote
a database program used to account for wiring in TV studios and broadcast
systems.
- Wrote program
to display, edit and transfer data between an IBM PC and a PROM programmer.
- Hockey
- Mountain Biking(Which-Way-Riders) - Travel
References available upon request.