Download 61.87 Kb.
6617 Villa Road
Dallas, Texas 75252
Note: This document spans many years of experience in Computer Software and Digital Design. I am confident of my abilities in all these areas. My projects include GUI development, middleware, and embedded software/firmware development for PowerPC and Intel 80386EX systems. Projects also include using Visual Studio, linux development using Codewarrior and text editors including makefiles and kernel modules, and Microsoft Windows development using Microsoft Visual C++ versions 4.X through Visual Studio 2010, Microsoft Visual C#, Microsoft Foundation Classes (MFC), Borland C++ versions 3.1, 4.0, 4.02, and 4.5, 5.0, and OWL I and II. Other projects include exposure to linux HTTP server applications, Java, Win32, Windows NT, Windows 95, Windows 95 Device Drivers, Windows 7 UMDF drivers, and technologies such as SQL, PHP, CSS, SVN, Agile.
I currently host more than 20 Internet domains using Linux. One domain achieves an average of 1500 hits a day. X86 based computers in my office or at colocation services act as hosts for these sites. This includes HTTP, FTP, and email servers. Additionally, I maintain Domain Name Servers to handle all these web sites.
07/12 to 10/12: Aristocrat Technologies (Hourly): Created an emulation tool to allow the firmware based WindowsXP Embedded application for their Slot Machines to operate on a PC in the Microsoft Visual Studio 2008 IDE debugger on Windows 7. This included a UMDF Windows 7 driver, a stubbed dll to emulate communication with hardware not present, and a GUI front end to monitor communication activity with the emulator. The communication layer consists of Named Pipe client and server architecture. Technologies: WindowsXP embedded, UMDF Windows Device Drivers, C++, Named Pipes, multi-threaded, and Microsoft Visual Studio 2008.
04/11 to 05/12: Hewlett-Packard (Hourly) (Project 1) On team creating and maintaining software development processes and strategies. Developing software test code using Microsoft Test environment in Visual Studio 2010. Utilizing managed and unmanaged C++ and C# code in .Net environment. Technologies: Visual Studio 2010, SVN, Agile, C++, and C#.
(Project 2) Linux Protected Boot and Virtual Machine Provisioning: Using Python and C/C++ to create utilities and drivers (kernel modules) to manage boot time parameters for a protected and secure virtual machine loader for a laptop. The software provides a way to read and write to the BIOS to allow the reading and setting of various flags and hashes that are stored in the BIOS. The software utilizes custom functions to communicate directly with the BIOS rather than through the /dev interface used after system boot. Python, C/C++, .so files, kernel modules and other methods for communication via the ACPI-WMI interface.
(Project 3) Created a custom Windows Credential Provider to allow silent logon to a Windows NT domain from boot. (C++, Visual Studio 2010).
(Project 4) Modified existing InstallShield project to utilize new Custom Actions to inspect various install caches and take different actions based on the files present or not present in the cache. (InstallShield, C/C++, Visual Studio 2010)
04/10 to 12/10: Verizon (Hourly) Add new features to and modify existing code in the Verizon Media Manager Product. C++, MFC, Visual Studio 2005, ClearCase.
04/09 to 07/09: Soneticom, Inc. (Hourly) Add new features to existing real-time software. Create a standalone server for accepting data from the real-time software and creating additional utilities for generating and transmitting test data to the server. Visual C++, C# .Net, MFC, Sockets.
01/05 to 04/09: Banc of America, LLC. (Salary) Maintained and developed new features for a security trading platform. I worked with the Front End (GUI). The GUI primarily accepted market feed data from back room servers and sent user commands (Buy/Sell orders) to the servers for relay to the proper market. Most of my tasks involved accepting market data real time and manipulating the data and then displaying the data to the user in various formats, tables, and graphs. Most of these real time displays provided input fields for users to specify and execute trades. I dealt with real time and static data. The real time data came directly from the various markets. The static data accumulated overnight. The trading platform software originated with Direct Access Financial Corporation. (Visual C++/Windows SDK, Visual Source Safe).
02/04 to 07/04: Fluke Networks (Hourly) Update existing software (see below) for new base processor. Develop new test tool for PC platform (Visual C++/MFC).
The Test and Verification Tool consisted of a Windows Application utilizing a Multiple Document Interface (MDI). Each window emulated a record and playback interface to the Unit Under Test (UUT), a Fluke Networks CopperPro® test set. Communication with each UUT utilized the one serial port.
Each window captured keystrokes from the UUT and allowed playback to make the test repeatable. The window functioned as an editor to allow editing of the captured keystroke stream.
I developed a parser and interpreter in LEX/YACC to allow for local variables, results processing, and conditional statements for program control.
11/03 to 12/03: Honeywell, Inc. (Hourly): Design the top level user interface navigation for a Web (browser) based application. Develop demonstration programs illustrating the resulting UI. Browser based interfaces implemented using Java Applets.
10/02 to 9/03: Jericho Systems Corporation (Salary): Design and implement a Graphical User Interface (GUI) for an Enterprise Software Product. Act as Project Manager for the product. This is Jericho Systems inaugural and flagship product providing Real Time decisioning for the security space and targeted marketing. All code written in Java with stand alone application capability and browser based capability in a single executable (jar) file. User Interface code utilizes Java Swing. Browser based interfaces use a combination of Java Server Pages (JSP) and Java Applets served from Tomcat.
12/01 to 9/02: Rapport Technologies (hourly): Various projects to support the Rapport product. This included custom boot code to initialize certain network resources to allow downloading of boot time executables in the PXE (pre-execution) environment (BSD Kernel, C/C++).
8/00 to 5/01: Optical Switch Corporation (Hourly): Projects included design and implementation of embedded software for 80C386EX processor. Design and implementation of various GUI based test and calibration programs for manufacture of Optical Switches. This included implementing a control and monitoring protocol for communication with switch modules. Windows software written using C++ utilizing Microsoft Visual C++, and MFC. Embedded software written using Borland C++ 4.52 and 5.0 and DOS based Turbo Debugger.
4/00 to 11/01: Fluke Networks (Hourly): Projects include software/firmware running on an embedded Power PC platform. Additional projects involved design and implementation of a graphical front end for controlling a portable telephone line tester. Utilizes Visual C++, Win32, serial communications, graphic compression/decompression, customized visual control elements, and development of application level protocols. The embedded projects involved Visual SlickEdit, WindRiver compilers and SDS debuggers.
Binary Interface: Designed and wrote target device code and PC code to provide command and control of handheld ADSL tester via an incorporated serial port. This included code in C in the target device and Visual C++/MFC on the PC. Developed a DLL to provide command API for handheld device. Utilized a previously developed DLL providing simplified serial port interfacing for PC applications.
Stored Results: Developed “streaming” data storage functionality for the target device. The streaming data layer utilizes an existing Flash File system in the target device firmware. C on PowerPC.
Firmware Updater: A PC based application that splits large binary files into blocks and transfers the blocks to the target device using a protocol layered on XMODEM. Visual C++/MFC.
Flash Updater: A target device RAM based utility to request and accept blocks of data intended for storage in Flash memory. Utilizes a protocol layered on XMODEM to accomplish data transfer. Utility also erases and programs flash devices. C on PowerPC.
Checksum Embedder: Utility to calculate a checksum on a large binary file and place the calculated checksum at a specific location in the binary file. Visual C++.
Screen Dump: A PC based prototype application to request and accept a pixel by pixel dump of the hand held tester lcd screen. The screen data then appears in a window on the PC. Utilized data compression algorithms to enhance data transfer rates. Visual C++/MFC.
Target Device Emulator: A PC based emulation of the target device. This provided an interim development environment for both target device code and PC, or external, controller code. The emulation consisted of graphical representations of the target device face including custom buttons and other controls. One intended application includes a future application allowing a “Virtual Instrument” controllable from a PC or laptop. Visual C++/MFC.
8/99 to 4/00: Netier Technologies (a division of Wyse Corporation) (Salary): Design new and port existing network management software. Platforms include Windows NT, Windows 95/98, Windows 3.1, and linux 5.2 and 6.0. The linux project consisted of a custom HTTP server which allowed management of client side configuration files using an HTML based protocol. Coding done with Microsoft Visual C++ on Windows platforms. Linux programming done with Codewarrior.
10/98 to 8/99: Abbott Laboratories (Hourly): Design, code, test, and maintain portions of a Windows NT application controlling a pSOS based Blood Analyzer (AXSym2). The controlling interface utilized RPC and remote mounted hard drives for interdevice communication. Programming done in 32 bit Visual C++ using MFC and custom controls.
5/98 to 10/98: Netier Technologies (Hourly): Design and develop a thin client management utility. This program manages thin client computers on local area networks (LAN). Developed proprietary protocol for communication with thin clients. Program allows operators to view hardware and software configurations on thin clients and to initiate various software upgrades or modifications from management console. Program written in 32 bit Visual C++ using MFC. Operating system is Windows NT 4.0 and 3.51.
11/97 to 4/98: Cytware Corporation (Hourly): (Ongoing Contract Assignment concurrent with Third Planet Publishing below): Assist in developing security software for Windows 95 platform. Assisted in developing features in a VxD that controls access to disk files and other resources. This includes an Installable File System Manager. Development utilizes Microsoft Visual C++, VToolsD, and Visual Sourcesafe. Project also includes developing test suites using Visual C++ and MFC.
5/97 to 2/98: Third Planet Publishing (Hourly): Design and produce Windows 95 Device Driver for PCI plug in card. Design includes device level interfacing, mapping physical memory to virtual memory, providing application access to mapped virtual memory, and Plug-n-Play. Using Microsoft Visual C++ and VToolsD. Project also includes several windows based utilities for manipulating PCI devices and accessing, monitoring, and modifying arbitrary physical memory ranges.
10/95 to 5/97: Motorola, Inc. (Hourly): Design and produce paging system control interface for WindowsNT workstation. Program also being simultaneously ported to UNIX using Wind/U. Operating System Windows NT 3.51, Windows NT 4.0, Windows 95, UNIX (Solaris 2.4). Target 32 bit Windows platform and UNIX workstations. Also using TCP/IP, Windows Sockets, Visual C++ 4.X, and MFC. The TCP/IP portion of this project consisted primarily of a set of routines written in traditional Berkeley Sockets and the Microsoft Visual C++ classes. The resulting applications allowed for a mixture of UNIX and Windows servers and clients to transfer data over specified ports. The designs included multi-threaded design so that any particular server managed multiple clients. I developed the application level protocols.
3/95 to 10/95: Motorola, Inc. (Hourly): Design and produce paging system control program using Win32 on Windows NT. Operating System: Windows NT 3.51. Target Windows NT Server. Also using TCP/IP-Windows Sockets, Visual C++ 4.X, and MFC.
11/91 to 3/95: AVO International (Salary): Software Engineering
6/93 to 12/94: Designed and produced a Microsoft Windows application using Borland C++ and OWL I and OWL II. The program provides a user interface to an external test set used to test watt-hour meters. Project included conversion from OWL I to OWL II when OWL II became available. Borland C++ 1.5 years, OWL 1.5 years.
11/91 to 6/93: Adapted existing DOS program to Microsoft Windows. Used Borland C++ and OWL I. I internationalized the program by insuring that all text presented to the user resided in the resource file. Borland C++ 1.5 years, OWL 1.5 years.
6/83 to 11/91: Self Employed (Hourly). Major clients included COMPAQ Computer Corporation, Honeywell, Incorporated, and Multi-Amp Corporation (now AVO International).
Note: During this eight year period of self employment, I used Pascal, C, C++, Z-80 assembler and several other specialized languages. I designed digital circuits and systems. I designed and produced embedded software using C, Pascal, and various assembly languages. Exact accumulations of times are difficult to specify because many projects were undertaken in parallel or piecemeal.
4Q91: TankMasters (Speculation): Produced a demonstration program using Turbo Pascal for Windows for a proposed system to monitor the fluid level in remote storage tanks. Used OWL I for Pascal.
3Q91: Honeywell, Corporation (Hourly): Wrote new, and modified existing, programs in HVAC controllers at the Phoenician Hotel and Resort in Phoenix, Arizona. These programs are written in Honeywell Pascal, a specialized language for Honeywell's Excel controllers.
Red River Resources (Hourly): Selected and installed computer hardware and software for the management of tax roll databases of the owners of oil leases in various counties in Texas. Wrote several programs in dBASE language for the generation of text files used to merge into form letters. Wrote several macros in Word Perfect to accomplish form letter merging.
MindShare, Incorporated (Fixed Price): Presented an eight day course to a client in Mexico City on the hands on trouble shooting of 80386SX based PS/2 compatible mother boards.
2Q91: Multi-Amp Corporation (Hourly): Designed and produced a software system to run on a PC compatible computer to interface to a motor tester and organize the motor data collected. The user interface is designed using C-scape. The program included the interface to the tester, complete database maintenance, and the ability to graphically compare the results of multiple tests. The entire system is written in Borland C++ Version 3.1.
1Q91: Biological Products, Incorporated (Fixed Price): Designed a Z80 based pulser unit. The unit is designed to interrupt the circuit connected to it in various timed patterns. These patterns range from fixed rates to ramped rates. The duty cycle of the pulse is also variable. The operator controls these patterns via front panel rotary switches. I designed and built the entire hardware and software system. The firmware is written in C.
Cochran Consulting, Incorporated (Hourly): Reverse engineered the firmware in an 8051 based microcontroller. The 8051 is used in the keyboard of a PC/AT compatible computer. Execution of this project required an in-depth understanding of 8051 assembly language.