Michael A. Firman
Technical Biography

Resumé through February, 2015

Michael A. Firman
Naperville, Illinois

Educational Record

Hammond High School, 1966-1970
Diploma received in June 1970.

Indiana University, 1970-1974
Bachelor of Arts in Chemistry and Mathematics
received in June 1974.

University of New Hampshire, 1974-1976
Master of Science in Mathematics
received in June 1976.

University of Illinois, 1976-1980
Graduate work toward a PhD degree in Mathematics (1976-1978)
Master of Computer Science received in October 1980.

Thesis completed on a heuristic designed to speed up the standard resolution theorem-proving algorithm. Project implemented in C-language on a PDP 11 running version 7 UNIX.

Employment History

Private Consultant, March 2009 - 2015
Naperville, Illinois 60540

I do consulting work for UNIX, LINUX, Real Time, and Microsoft systems. This includes software design, planning, and development. My specialty is hardware device drivers and kernel internal development. I am also versed in various communication protocols.

Senior Consultant, July 1998 - March 2009
Software Technologies Group, Inc.
10330 W. Roosevelt Road, Suite 310
Westchester, IL 60154

At STG I did all manner of consulting work for UNIX, Real Time, and Microsoft systems. This included software design, planning, and development. I was also responsible for guiding and training the less experienced consultants.

Senior Engineer, April 1996 - July 1998
Natural Micro Systems/TEKnique, Inc.
911 North Plum Grove Road
Schaumburg, IL 60173

I worked on the design and implementation of various UNIX Streams device drivers for PC based intelligent communications cards (both ISA and PCI versions). The development platforms for this work included, SCO Open Server 3.x, SCO Open Server 5.x, Solaris x86 2.5.1, UnixWare 2.1, and UnixWare 7. I was also involved in work on an NT device driver (adding support for multiple devices that share a single interrupt line on the ISA bus, and making the driver MP safe).

Senior Consultant, September 1995 - April 1996
SEI Information Technology, Intelligent Transportation Systems Group
1030 West Higgins Road, Suite 215
Park Ridge, IL 60068-5763

I worked on the design and implementation of routing and mapping software and databases for car navigation systems.

Senior Software Engineer, July 1987 - August 1995
Lachman Associates Inc./Interactive Systems Co./LTI/Legent Corp.
1901 North Naper Boulevard
Naperville, IL 60540-1031

I have worked extensively on and within several different implementations of the UNIX operating system: System V.3, System V.4, BSD4.2-3, Xenix, and A/IX. I have designed and written networking device drivers for a wide variety of architectures, including 386 based, 68020 based, IBM and ETA machines. I have ported networking code (both kernel level and application level) to the above mentioned operating systems and hardware architectures. In accomplishing these projects I have become very familiar with various Ethernet controllers, Token Ring controllers, System V streams device drivers, BSD device drivers, IBM CETI channel protocol, the internals of System V and Xenix. I have gained a passing knowledge of BSD4.2-3, A/IX, TCP/IP, NFS and various issues involving Super Computers.

I have been involved in porting networking code (protocols) into real-time operating systems. This has involved, in some instances, porting the System V.4 STREAMS subsystem (a kernel level subsystem) into real-time executives (both commercially available OSes such as MTOS, VRTX and PSOS as well as proprietary real-time OSes), porting networking protocol code, writing hardware device drivers, and porting and writing network application code. Most of these ports involved developing a programming model (architecture) on top of which the networking subsystems could be supported. In these projects I served as chief architect, lead engineer and principal customer contact. I often had several members of the technical staff under my direction. On many occasions I have served as a mentor and technical instructor for the junior members of these projects.

I also have done preliminary work to write an NFS server for Windows NT. This project gave me some experience with the Sun RPC subsystem, the port mapper, the mount daemon, and the Win32 API.

I worked in a three person team set up to design and develop an enterprise Internet access facility. In this project my major responsibility was to design and develop the underlying network access facility. This was accomplished by porting the CERN WEB library into a MS Windows environment. While working on this project I became familiar with MS Visual C++, HTML (Versions 1,2, and 3), and UNIX Web servers.

Member Of Technical Staff, January 1982 - July 1987
Bell Laboratories / AT&T Information Systems
11900 North Pecos Street
Denver, CO 80234

I worked as a member of a team developing a multi-targeted operating system, designed for use in a distributed processing environment. The operating system runs on 8086, 68000, and VAX hardware and is implemented in C-language and assembler code. I developed 8086 based firmware for an intelligent DMA device used in a multiprocessing environment. I worked as a UNIX systems programmer at the Denver Computer Center, having been responsible for maintaining and enhancing the operating systems and system software for over 40 diverse UNIX machines.

This work included:

Senior Systems Programmer, June 1981 - December 1981
Auto-trol Technology Corporation
12500 North Washington
Denver, CO 80233

I Designed and developed application programs for computer aided design. The design is realized in RATFOR on a VAX 11/70 with VMS operating system.

Junior Programmer, September 1980 - May 1981
Exploration Data Consultants
605 Parfet
Lakewood, CO 80215

My general responsibilities were for data base and graphics program development for geophysical processing and interpretation. A specific project was to design, program and test an interactive program to digitize geophysical data.

Research Assistant, December 1978 - July 1980
Population Dynamics Group
Coordinated Science Laboratory
Urbana, IL 61801

My responsibilities included general software maintenance, statistical programming, digital signal processing (designing digital filters), and implementing interactive computer graphics.

Teaching Assistant, August 1976 - December 1978
Department of Mathematics
University of Illinois
Urbana, IL 61801

The duties ranged over all aspects of teaching undergraduate mathematics courses through the sophomore level.

Teaching Assistant, August 1974 - June 1976
Department of Mathematics
University of New Hampshire
Durham, NH 03824

My responsibilities were to assist in teaching mathematics at the university level.


I will furnish references upon request.