MARK N. SHEPARD

senior software engineer ~ 15 yrs. development ~ B.S. computer engineering


OBJECTIVE

A contract job producing high-quality software with great people in the N. Dallas area. Especially interested in wireless devices, image processing and Matlab.

SUMMARY

I have 15 years experience developing system & network software - as contractor and as lead of 5 person team - in C, C++, assembly, Matlab and VB for embedded, Win32 and Windows-kernel environments.

Recent experience in: Fingerprint matching algorithms & architectures, biometric system design & evaluation, "contactless" RFID smartcards, binary (morphological) image processing with Matlab, wireless communication design & algorithms.

SKILLS

Languages & Platforms:

  • 10+ years C in NT-kernel and embedded environments.
  • 2 yrs. Assembly (Microchip PIC, x86, 8051, 68030.)
  • 1 yr. C++ (Visual C++/MFC/Win32.)
  • 1 yr. Matlab and Image Processing Toolkit.
  • 1 yr. Visual Basic (VB6, primarily for instrumentation control.)
  • 10 yrs. bash & Unix utilities; 3 yrs. Windows cmd shell scripting; 1 yr. Perl5.

Embedded Programming:

  • Developed firmware in assembly (PIC, 8051, 87c751, 68030) and C (Hitech compiler for PIC) for products such as battery-powered wireless handsets, desktop peripherals, and I2C communications controller / protocol engine.
  • Comfortable using in-circuit emulators, logic analyzers, oscilloscopes and DSOs; debugging hardware from schematics, networks and apps from packet and API traces.

Networking & Network File System Development:

  • 5 yrs. packet-level debugging of IP networks.
  • 5 yrs. with Windows NT installable filesystems, NT Cache Manager, Windows File API implementation, network browsing and print spooling subsystems.

Kernel Programming:

  • Design, implemented network filesystem clients (NFS), drivers and HALs for WinNT, Win95.

Software Engineering Infrastructure:

  • Extended company's Windows-based production build system to support single-command builds from source-control for multiple target platforms.
  • CVS, PVCS for version control.
EXPERIENCE
1/03-5/04

Software Engineer / Researcher
Rampart-iD Systems - Richardson, TX

Primarily responsible for researching & designing portions of company's core technology, a "contactless smartcard" (credit card) featuring an on-card fingerprint sensor and matching engine. Researched fingerprint matching theory, image enhancement and matching algorithms and architectures with emphasis on ones suitable for low-power, parallel-hardware implementation. Determined appropriate means for evaluating biometric systems. Presented research findings to investors and partners. Created matching algorithm based on image convolution, simulated in Matlab to evaluate accuracy (FAR/FRR). Researched "contactless" smartcard protocols (ISO14443, 15693) and software architectures (Javacard, JC/OP) for financial applications (Visa, Mastercard) and security applications (PKI); made recommendations for ones company should support. Developed Windows app. implementing ISO7816-4 and ISO14443 atop a Philips card-reader to debug & demonstrate company's prototype contactless smartcards.

9/99-11/01

Software Engineer, Contract
Ewave - Dallas, TX - www.electrowave.com

Developed over-the-air protocol and firmware (in C, for Microchip PIC microcontroller) for the "StudyBuddy" handheld wireless terminal. Protocol ran atop an unreliable datagram service and provided reliable, 1-to-many transfers of variable-sized objects between central controller and multiple (~30) handsets over company's proprietary radio modules. Developed several utilities in VC++ and VB for use in-house and by company's customers: Manufacturing test/diagnostic software for Ewave's radio modems which guided an unskilled technician through all phases of radio-modem testing and calibration; a radio-modem configuration utility for customers; tools to test, monitor and debug the Radio-Control System designed by Ewave for the FIRST Robotics Competition; and a system monitoring utility used by hundreds of teams in the Competition. Created company website, product brochures and technical manuals.

6/98-12/98

Software Engineer, Contract
Digital Convergence - Dallas, TX

Designed & implemented DSP software that became half of company's core technology and was demonstrated during a broadcast of the NetTalk Live TV show. This software allowed URLs or ID numbers to be encoded in and decoded from the audio channel of TV, radio or Internet broadcasts. With another engineer, experimented to find best modulation methods for TV, VHS and Beta tape and Internet-audio. Created software that could insert itself on-the-fly between popular Internet audio players (RealAudio, NetShow & Winamp) and a PC's sound-card to capture and filter decompressed audio (20k lines VC++). Prototyped "Ad Lookup Server" in Perl/CGI & C.

4/96-7/96

Software Engineer, Contract
Wireless Computing - Austin, TX - www.wireless-computing.com

Developed all firmware for the " RF-25 Wireless Surfboard", a RF-wireless combination "keyboard-mouse-and-joystick" device and corresponding "base-station". Featured software generation & demodulation of radio waveform while scanning keyboard, sampling touchpad and joystick, handling RF communication protocol and managing battery power (8k lines PIC asm).

1/96-5/98

Architect of NFS Client/Server Products
NetManage - Cupertino, CA

Defined, designed & implemented advanced NFS network file system driver as Win95 VxD featuring modular "plug-in" scheme similar to Unix's VFS, multithreading, caching, "automount" support, cross-server symlinks, auto-optimization by server-type and unified source-base across platforms (NT, 95, Win16).  Wrote core modules while managing two engineers on peripheral modules, doing builds and coordinating QA-testing.  Extended company's build system to allow a "single-command" build for all platforms. Trained NetManage engineers in NT filesystems & NFS client internals. Wrote plans, schedules; organized code-reviews.

5/95-1/96

Team and Technical Lead of NFS Client/Server Group
NetManage - Cupertino, CA

Responsible for planning & scheduling projects, supervising team of five developers, final build integration, code-reviews and general technical consulting on NT and 95 system-software problems. Shipped first release of NFS product for Win95.

5/93-5/95

Software Engineer, Systems Group
NetManage - Cupertino, CA

Developed first production shipping NFS client for NT in 7 months; shipped before Sun's product. 'Ported and QA'd first three releases of NetManage's "Chameleon32NFS" product suite from Win16 to Win32 on NT-Intel, -Alpha, and -MIPS, working with one other engineer. (70k lines C).

3/91-1/93

Software Engineer, Windows NT Drivers Group
DEC - Palo Alto, CA

Part of 8-person team adapting Windows NT to MIPS R3000 DECstations. Coded ARC firmware, NT HALs and drivers for system baseboard H/W, serial and video-controllers.

7/90-3/91

Software Engineer, Workstation Systems Engineering
DEC - Palo Alto, CA

Developed the ACCESS.bus with two other engineers. ACCESS.bus is a 100kbps, serial bus for desktop peripherals (a predecessor to USB).  Implemented ACCESS.bus I/O Controller in hand-tuned assembly for 87C751 I2C microcontroller. Developed Ultrix drivers/diagnostics and contributed to ACCESS.bus protocol design. (4k lines asm).

EDUCATION

Oregon State University, B.S. Computer Engineering with high scholarship, 1990.
GPA: 3.6/4. Honors: Eta Kappa Nu. Summer jobs at Mentor Graphics and Hewlett-Packard (2 summers each).