ALICE J. CORBIN
SKILLS AND EXPERTISE
Senior software developer for Linux, UNIX, VxWorks and other real-time OSes
Fifteen years experience in writing and maintaining real-time embedded kernels
Experience writing and maintaining both kernel-space and user-space drivers for Linux.
Graphical User Interface design and implementation, using X-Windows, Motif, TK, Swing, GTK, XUL
Software development in assembly, C and C++ for PC's, workstations and embedded systems
JAVA development
Scripting experience in bash, Perl, Python, Ruby, PHP and Javascript
Use of object-oriented methods for over ten years
Multi-tasking / multi-threaded issues with inter-processor communication
Writing portable code for a variety of platforms
Mozilla development (XFCE, XUL, XPCOM)
EDUCATION
B.A. Russian Literature and Language with high honors, Phi Beta Kappa (1976)
Michigan State University and Leningrad State University, 1977
PROFESSIONAL DEVELOPMENT
Red Hat Linux Device Drivers course, 2002
Red Hat Linux Kernel Internals course, 2001
Red Hat Linux Systems Programming course, 2000
EXPERIENCE
1996 - 2005 SR. SOFTWARE DEVELOPER / Consulting Engineer
(Present) Axian, Inc., Beaverton, OR
[on assignment to Intel]
Tested, updated and wrote kernel patches to deal with new Intel hardware.
Ported a graphics driver from 2.4 to 2.6.
Implemented a way to display a color-keyed YUV image in SDL.
Helped create the prototype for a HD-DVD player on i386, under 2.4.20 and 2.6.10.
Built a gcc toolchain cross-compiler for Intel xscale processor.
Helped create the code
for a set-top box, based on an Intel xscale processor, under
2.6.2.
[on assignment to Radisys]
Patched the Linux 2.6 kernel to work around a chip defect.
[on assignment to MTi]
Modified an X touchscreen driver to work more robustly in a kiosk.
Polished the interface between the GUI and the hardware in another kiosk.
Ported the system from HTML/CGI to XUL/XPCOM (for yet another kiosk).
Developed and enhanced a bash/CGI web site for administering the kiosk configuration.
Wrote several bash scripts for downloading software and databases and uploading log files.
[on assignment to Electro Scientific Industries]
Added a communications interface onto a robot to create a replacement for another robot.
Assisted in the development of a memory repair system.
[on assignment to Xyron]
Modified the GNU compiler and assembler to produce code for a new chip.
Wrote code to load and to test the new chip.
[on assignment to Internet Appliance Network]
Assembled an X touchscreen driver for a web tablet running Linux.
[on assignment to Credence]
Assisted in the porting of a large system of C code from SunOS to Solaris, forcing it into the ANSI standard, and fixing potential bugs discover by the GNU compiler.
Upgraded sed, awk, lex and yacc scripts to produce ANSI code.
Standardized the use of some of the internal components of the system.
[on assignment to Datalight]
Ported a flash memory kernel-space driver to VxWorks, and to Linux.
[for Axian Linux Training]
Developed lab exercises for Linux Systems Programming course for topics including semaphores, sockets, system calls, processes and signals, pipes, etc.
Lectured on sed, awk, and regular expressions; and on scripting languages including Perl, Python, TCL/tk, Expect.
Developed lab exercises for Linux Device Drivers course on character and block drivers.
Experimentation with Qt and GTK to come up to speed on Linux GUI development libraries.
[on assignment to Planar]
Developed embedded device driver to allow upgrading of a medical monitoring instrument from a black and white to a full color flat panel display.
[on assignment to Intel]
Evaluated a UNIX operating system to find Y2K problems (specifically, OSF with enhancements for performance and parallel processing). This required both testing and code inspection.
Wrote a suite of Perl/CGI scripts to aid in documenting the progress and results of this evaluation on the client's intranet.
[on assignment to Microco]
Joined the final development phase of a shrink-wrapped product. Responsible for completing the GUI for a disk backup utility written in MS VC++ using MFC.
Fixed numerous bugs and added final enhancements and features. Examples:
Simplified the flow through the various Dialog boxes to make it easier for the user.
Added a pie chart function that emulates the Microsoft standard.
Updated the look and style of the GUI
Developed context-sensitive Help conforming to Microsoft standards.
Modified the software to prepare it for internationalization.
Performed black-box testing of the entire user interface to identify bugs.
[on assignment to Intel]
Fixed bugs and added enhancements to software in a multi-process, multi-threaded NT system used for monitoring the health state of a parallel computing system. The NT system interfaces with hundreds of 386 processors running VxWorks which in turn monitor the 9,200 Pentium processors in the Intel TeraFLOPS system at Sandia Labs.
Work was related to the GUI - adding features, fixing bugs in the code, or getting around MFC bugs. An example of an enhancement would be to make parts of the GUI turn different colors, depending on the severity and type of any errors.
Learned about the interprocess communication (using sockets)
Some work with interplatform communication, using TFTP and NMP.
Worked with the NT registry and event logs, and with the database
Developed means of re-using portions of the BasicScript code. The scripts were used to do things to the hardware such as resetting faults or rebooting or reloading the hardware.
[on assignment to Electro Scientific Industries]
Develop prototypes (in Perl/Tk, Tcl/Tk, C, and combinations thereof) to demonstrate possible choices for a GUI.
Develop C++ classes to deal with language localization and with security issues.
Port existing LynxOS C++ code to run under VxWorks on a PowerPC.
Port GNU C++ libraries to run under VxWorks.
Develop makefiles to build code for VxWorks.
1981 - 1996 Boeing Commercial Airplane Company, Seattle, WA
EMBEDDED SOFTWARE ANALYST, Flight Test Engineering
Led a development team for a graphics application. This application collects data on a VxWorks platform and displays it on a UNIX workstation, using X-Windows and Motif. It was designed using an object-oriented methodology.
Design, develop, test and support through full software life-cycle a real-time multi-tasking/multi-threaded operating system software for a network of Intel 80x86’s.
The code was designed for portability. The targeted platforms were an Intel-based proprietary system, PC’s running Linux, a Motorola-based system running VxWorks, and Hewlett-Packard 700 series workstations running HP-UX.
C was the primary computing language. Older code was written in PL/M. A small amount of assembly language was needed to increase performance.
Implement TCP/IP networking into the system.
Develop various Perl scripts to aid software development.
Serve as mentor to colleagues to improve the use of tools, methodologies and programming techniques.
SYSTEMS ANALYST, Inertial Upper Stage
Maintain a deterministic, embedded, real-time operating system for an unmanned spacecraft.
1977 - 1980 NCR, Dayton, OH : SYSTEMS ANALYST, International Retail Division
Aid in the development and maintenance of the kernel for a retail terminal controller.
CONTACT INFO
acorbin@hevanet.com