Kim Martin
3505 Brant Street Reno, NV 89506 (775) 343-9860
kpmartin2@charter.net kmartin@unr.nevada.edu
EDUCATION
University of Nevada MSCPE Master of Science, Computer Engineering, 2001 - 2008. Reno, NV
Thesis focused on using a proprietary digital elevation database to enhance airplane navigation. More specifically, a portable embedded device was designed that used the elevation database along with GPS hardware, an aneroid barometer, and LCD to present flight navigation data to the pilot (most importantly, the aircraft’s height – altitude above the ground). Since height is most reliably determined by expensive RADAR or LIDAR, an inexpensive, portable, device that calculates height reasonably well could be of important benefit to pilots.
University of Nevada BSEE Bachelor of Science, Electrical Engineering, 1988 – 2000.
Reno, NV
Senior Capstone project consisted of a Public Transportation Estimated Time of Arrival concept which used a unique synthesis of a Global Positioning System, VHF telemetry, a telephone pager, and an embedded microprocessor. The concept was to design a “sign” or “display” that would show the ETA of the next bus to arrive. A GPS in the bus would transmit the bus position every 10 seconds to a receiver connected to a PC. Software executing on the PC would calculate the bus’s velocity, acceleration, and other parameters needed to determine its estimated time of arrival. Once determined, the ETA was sent to the “sign” via a telephone pager.
TEACHING EXPERIENCE
University of Nevada Reno, NV
As teacher for the Digital Engineering Lab I was responsible for teaching the fundamentals of digital engineering. This included the introduction of logic gates and their use in integrated circuits to implement logic designs. Students constructed essential building blocks that could be combined in order to make a simple (2-bit) central processing unit.
TECHNICAL SUMMARY
I have four years of professional (and sixteen years of personal) software development including firmware programming of embedded systems using assembly language and C. I’m very experienced in writing assembly language software. I’m a good teacher and have three years of experience in imparting my knowledge and ability to a wide assortment of students. Four years of professional embedded software development using C and assembly language. Sixteen years of personal software design and development (DOS, Windows, and Linux). Advanced-to-expert assembly language programmer. Experienced network technician (TCP/IP, NETBEUI, SAMBA, cable modems, switches, and routers). Intermediate-to-advanced system administrator (Linux/Windows).
COMPUTER ENGINEERING SKILLS
Proficient in hardware design from simple logic circuits to CPU design using Boolean algebra, combinational logic, state-machine design, sequential logic, and VHDL. Expert assembly language programmer of 8085 and Z80/Z180 microprocessors and peripheral support chips. Assembly language programmer of x86, 8051, ARM and PIC chips. User of Hewlett-Packard (8086/80186) and Cactus (Z80/Z180) emulators. Firmware interface programming of thermal and dot matrix printers, bar-code scanners and wands, magnetic card readers, PDI mark sense readers, plasma displays, LED dot-matrix displays, and serial communications chips (16550/8250 UARTS). PC repair, assembly, and diagnosis.
COMPUTER CODING SKILLS
Assembly language coding from low-level to GUI environments (Windows). C/C++ coding from low-level to GUI environments (X Windows, Windows API). C/C++ coding in DirectX (Windows). Intermediate level shell scripting (Linux and DOS). Experienced HTML coding. Beginning JavaScript and PHP coding.
COMPUTER APPLICATION SKILLS
Codewright32 source code editor. Microsoft Visual Studio 6.0 IDE.
MASM 6.15. Microsoft Office (Access, Excel, FrontPage, Outlook,
PowerPoint, Word). Microchip MPLAB IDE. MININEC, SPICE, CC, and WGC. Quanta+ web development environment.
KDevelop 3.5.1 (Using KDE 3.5.9) Umbrello UML modeler.
ELECTRICAL ENGINEERING SKILLS
Circuit analysis and design. Printed circuit board design and layout. Prototype design using wire-wrapping and soldering. CPU expansion board construction. Low-pass, band-pass, and high-pass filter design. Design and implementation of RF matching networks. Antenna, feed-line, and matching network installation. Familiar with and able to use the following test instruments;
Tektronix 2235 100 MHz oscilloscopes. Hewlett-Packard (8086/80186) emulators. Cactus (Z80/Z180) emulators. Volt-Ohm-meters. Logic probes. Logic analyzers. RF frequency counters.
SYSTEM ADMINISTRATION SKILLS
Proficient in microcomputer operating systems from the days of CP/M and MSDOS through Linux and Windows XP. Installation and administration of Linux operating systems along with administration of Network File (NFS), Web (Apache), and SMB (Samba) servers in both LAN-Manager and TCP networking environments. Installation and system administration of Windows operating systems and proprietary networking protocols. Configuration and maintenance of LANs using TCP/IP and NetBEUI.
ACHIEVEMENTS
Before attending college I taught myself digital logic and Z80 assembly language. With that knowledge I designed and coded several games and utilities in assembly language for the Timex-Sinclair 1000 computer such as; Fast searching database engine. Machine-code debugger. Graphics application with drop-down menus using a joystick for input and memory-mapped video for output. Nominated for Teaching Assistant of the semester (Fall 2003). As a teaching assistant at UNR I used a 2-bit central processing unit (CPU) of my own design (using discrete logic chips) to introduce the students to the fundamentals of digital and computer engineering. Designed and coded the software necessary to implement the I2C communications protocol between multiple 8051 processors. Conceived and designed the firmware necessary to implement a watchdog mechanism on 8051 processors using internal timers and software interrupts.
PUBLICATIONS
Kim P. Martin; Dwight D. Egbert; Frederick C. Harris, Jr.; An Inexpensive Terrain Awareness and Warning System for Small Aircraft, International Conference on Computer Applications in Industry and Engineering, November 2008.
HONORS RECEIVED
Tau Beta Pi, Engineering Honor Society, 1996 Eta Kappa Nu, Engineering Honor Society, 1996
CERTIFICATIONS
Engineering Intern, State Board of Professional Engineers and Land Surveyors.
LICENSES
Amateur Radio License (Tech Plus), 1995, 2005
EMPLOYMENT EXPERIENCE
Teaching Assistant, University of Nevada Reno, January, 2001 - May, 2004
This state-financed educational institution provides undergraduate and graduate level degrees. I designed and taught the Digital/Computer Engineering lab. I was responsible for creating the lab assignments and maintaining the web site in which the lab assignments were posted. Subjects covered included Boolean algebra, combinational logic design, state machine design, sequential logic, integrated circuits, and CPU design. Selected designs and circuits were assembled on breadboards. The goal of the lab was to prepare students for assembly language programming by designing and assembling a 2-bit central processing unit that can execute four assembly language instructions (this was a difficult goal to meet). Additional responsibilities included system administration of the lab computers, computer repair, assembly, program installation and removal, OS installation and administration, and network administration of the lab computers (10 PC’s running Linux and Windows under a multi-boot configuration).
Firmware Engineer, Innovative Gaming Corporation of America, April 1998 – November 2000.
This company developed and marketed a real-time multiplayer (1 to 6) video gaming system for gaming properties. As part of a three-man design team I debugged and rewrote embedded software for real-time multi-player video gaming systems. I worked on the craps system while the other two team members were assigned to the blackjack and poker systems. My responsibilities included design and development of software, review of same, and execution of requirements and specifications. Each system consisted of an 80186 “server” that controlled the video display and six 8086 “clients” that were responsible for player inputs (a total of six people could play simultaneously). Much of the coding consisted of improving and enhancing client/server communications. Additional coding involved video display routines (Z-80 controlled video display board) and SAS/SDS gaming auditing control protocol.
Firmware Engineer, Imagineering Systems, Inc. June 1995 - April 1998
This small company marketed a real-time distributed Keno gaming system for casinos. A centralized server PC (running DOS, Windows, or UNIX) communicated with Z80/Z180 microprocessor controlled writer-stations. My area of responsibility consisted of the embedded software clients (writer stations). My responsibilities, among other duties, included troubleshooting and debugging software defects, rewriting all the interrupt service routines and initializing all peripheral hardware controlled by the writer stations. A complete list of the hardware used by the writer stations consisted of programmable thermal and dot-matrix printers, bar code scanners and wands, magnetic card readers, PDI mark sense readers, plasma displays, 7-segment LED displays, and matrix keyboards. I redesigned and rewrote the code such that all these peripherals were controlled and serviced by interrupt service routines that coded the serial communication modules (16550/8250 UARTS) that communicated with the Keno server. With the improved reliability of the software it was very easy to add the code that enabled the writer stations to use bar code scanners and Mark-Sense readers to automate Keno ticket entry. This increased the number of players involved in each game and thusly increased casino game profits.
Package Sorter, United Parcel Service, July, 1991 - June, 1995
I sorted packages, loaded, and unloaded trailers for transport. Sorting required zip/state code memorization of the United States and packages had to be sorted at the rate of 1200 boxes per hour. Trailers had to be loaded at 600 boxes per hour and unloaded at 1200 boxes per hour (1 every 3 seconds). This job was physically demanding and I enjoyed it.