ANDREW S. TUCKER
ast@halcyon.com
http://www.halcyon.com/ast
SUMMARY OF QUALIFICATIONS:
- 15 years C/C++ development for multiple platforms and operating systems
- 7 years of system and application level development experience with
Windows CE
- 6 years of experience managing a development team
- 4 years of experience developing cryptography and security software
- 2.5 years of C/C++ and Java debugger and compiler development
- 1 year of experience developing streaming media players for embedded
systems
- Co-wrote a book on Windows CE application development
- Author of over a dozen published technical articles on software
development
- Instructor for college courses on software engineering
- Public speaking and technical presentations at developer conferences
- Microsoft MVP, Windows CE: 2001-2004
EDUCATION:
- M.S. Computer Science, University of Washington, March 2000
- B.S. Computer Science, Seattle Pacific University, March 1994
SOFTWARE ENGINEERING EXPERIENCE:
Microsoft: 3/2004 - present
- Development Lead, Online Commercial Services: 7/2008 - present
- Managed a team of developers working on a billing platform for Microsoft commercial web services
- Development Lead, Windows Security: 3/2004 - 7/2008
- Responsible for managing a team to maintain and deliver all cryptographic infrastructure in Windows Vista (eg CAPI, DPAPI, Certificate APIs, Smart Cards, Authenticode)
- Managed a team to deliver a smart card deployment application
- Lead a team of developers to design and implement CNG, a new cryptography API for Windows Vista
- Lead a team of developers to design and implement support for biometric authentication in Windows
- Lead a team of developers to add SHA2 and AES support to DPAPI and Authenticode
- Interface with NSA, NIST, DOJ, Commerce Department and other government agencies to ensure compliance with FIPS 140-2,
Common Criteria and cryptography export regulations
- Developed and presented a talk on new crypto components in Windows Vista for Microsoft PDC 2005, RSA 2006 and TechReady 4
Aegis Software: 8/2002 - 3/2004
- Provide technical expertise for all phases of consulting project
lifecycle
- Managed a team of developers working on a secure messaging product using cryptography and steganography
- Designed and implemented custom APIs, configuration utilities and a network service for new WinCE device
- Customized 8051 firmware for a headless embedded device
- Developed and presented a talk on debugging eVC applications at 2002
Windows Embedded Developer Conference
Real Networks: 6/2001 -
8/2002
- Implemented network streaming architecture for RealOne Player for WinCE
- Ported RealVideo, RealAudio, MPEG4 AAC, and ACELP codecs to RealOne
Player for WinCE
- Implemented multiple user interface features for RealOne Player for
WinCE
- Isolated and fixed problems with streaming data over GPRS networks from
multiple service providers
- Designed and implemented cross platform 3GP/MP4 file format reader and
HTTP file transport
- Implemented wrapper for AMR codec on Symbian/EPOC based Nokia cellular
phones
- Modified RTSP protocol implementation to interoperate with media servers
from multiple vendors
- Added redirect support to RTSP protocol implementation
- Wrote Python scripts to automate nightly build process for multiple
projects
Aegis Software: 8/2000 - 6/2001
- Provided technical and writing expertise for all phases of consulting
project lifecycle
- Provided technical review expertise for evaluating opportunities for
venture capital investment
- Managed a team of developers working on multiple simultaneous consulting
projects
- Ported WinCE flash file system to new hardware platform
- Implemented Linux kernel module to verify Hi/Fn 7951 cryptography
processor
- Architected the porting of a DOS PC Card radio test application to WinCE
GoAhead Software: 5/2000 - 7/2000
- Developed network throughput test tool for Win32 and VxWorks
- Optimized route parsing for cluster-wide messaging system
BSQUARE Corporation: 6/97 - 5/2000
- Consumer Information Appliances Team: 1/2000 - 5/2000
- Developed and presented tutorials on TCP/IP and socket programming
- Integrated infrared remote control and DVD components into a new set
top box platform
- Hitachi SHx Compiler Team: 6/99 - 1/2000
- Contributed maintenance and new back end optimizations
- Added SH3-DSP Zero Overhead Loop support to the SHx assembler
- Added new relocations to the Visual C++ linker
- Debugger Team: 6/97 - 8/99
- Development lead for WinDbg and Visual C++ for CE from 11/97 to 11/98
- Ported Visual C++ remote debug monitor from NT to CE
- Maintained and extended remote debug monitor across all CE
microprocessors
- Added active process debugging to VCCE 2.0
- Added hardware floating point support to VCCE and WinDbg
- Modified Visual C++ disassembler to process Hitachi SH3-DSP
instructions
- Designed and implemented a compiler for the CE Interface Composer
layout language
- Designed and implemented debugger interfaces for an unreleased product
- Developed and presented a tutorial on Win32 multithreaded programming
- Developed and presented a talk on debugging VCCE applications at 1999
Windows CE Developers Conference
Community Sector
Systems Inc: 8/95 - 6/97
- Contributed to the development of PsychAccess, a document management
program, in Visual C++ and MFC
- Designed and implemented porting of PsychAccess from Windows 3.l to
Windows 95/NT
- Designed and implemented several DLL toolkits for reading and creating
proprietary data formats
- Designed and implemented generic thunk solution to allow Win16 to call a
Win32 DLL
- Maintained and extended an NT service for email processing with Extended
MAPI and ODBC
- Wrote an Extended MAPI class to encapsulate sending and receiving of
messages, as well as address book manipulation
- Integrated an ActiveX control and COM automation server to display data
in printable business forms
OUM and Associates Inc: 6/93 -
8/95
- Lead developer for a team of six programmers
- Designed and implemented a library checkout system using Visual Basic
and Access
- Wrote and maintained a corporate client/server database application in
VXREXX and DB2 for OS/2
- Developed OS/2 DLLs to interface REXX and C
- Produce extensive database reports and queries with SQL Server and
Access
Jewell Technologies Inc: 9/91 - 2/93.
- Created Windows DLLs for the translation of graphics file formats
- Wrote Windows installation program in Microsoft Quick C for Windows
- Supported and enhanced Windows graphics file package
INDEPENDENT CONSULTING EXPERIENCE:
Object Tooling: 9/96 - 11/96
- Designed and implemented an NT service as part of a sample project to be
distributed with the Microsoft BackOffice 97 SDK
- Used Extended MAPI and ODBC to integrate Exchange Server and SQL Server
and implement a simple, but scalable, purchase order system
Robotic and Embedded Systems Technologies: 1/95 - 9/95
- Designed and implemented a BASIC compiler for an embedded
microcontroller system
- Developed hardware independent p-code for intermediate program
representation
MILITARY EXPERIENCE:
- US Army Reserve
- Signal Corps and Transportation Divisions, 1988-1996
PUBLICATIONS AND TEACHING EXPERIENCE:
- A DBWin32 Debugger for Windows - C/C++ Users Journal, October 1996
- Adding Console I/O to a Win32 GUI App - Windows Developer Journal,
December 1997
- Reading Java Class Files in C++ - C/C++ Users Journal, April 1998
- Using WinSock with Windows CE - Windows Developer Journal, June
1998
- CeRapiInvoke: A New Feature of Windows CE 2.0 - Dr Dobbs Journal,
September 1998
- Windows CE API Quirks - Windows Developer Journal, May 1999
- A Safer Alternative to TerminateProcess - Windows Developer
Journal, July 1999
- Using IE4's HTML Parser - Dr Dobbs Journal, August 1999
- Teach Yourself Windows CE Programming in 24 Hours by Andrew Tucker,
Jason Nottingham, and Steve Makofsky - SAMS, August 1999
- Programming Corner column - www.windowscepower.com, December 1999 and
February 2000
- Exploiting Hidden Features of CESH - Dr Dobbs Journal, May 2000
- Batons: A Sequential Synchronization Object - Windows Developer
Journal, July 2001
- Instructor for CSE 142: Computer Programming I, University of
Washington Extension, Fall 2001
- Instructor for CSE 143: Computer Programming II, University of
Washington Extension, Spring 2002
- Instructor for CSE 490B: Fundamentals of Object Oriented Data
Structures, University of Washington Extension, Fall 2002