David D. Golombek

Washington, DC 20001
daveg@alum.mit.edu

Objective:

A position working on the design and implementation of cutting edge computer systems and architectures, and learning about the construction of individual components.

Strengths:

I have a wide range of experience with computer startups in different fields and stages, ranging from first employee to large companies. This includes successfully launching several products and handling multiple releases for many more. I focus on getting the job done in any role, including individual contributor, team member, and team lead.
Specific technical skills include but are not limited to: Java, Perl, Ruby, Python, C/C++, Javascript and Ajax, SQL, O/R Mapping, Spring, Hibernate, LDAP, JMX, XML.
General technologies include: Distributed computing, multithreading, compilers, debuggers, device drivers, parallel programming, embedded software and RTOSes, unit testing, revision control, build systems, debugging, and optimization.

Education:

Massachusetts Institute of Technology

Bachelor's Degree in Computer Science and Electrical Engineering. Courses include: Structure and Interpretation of Computer Programs, Computational Structures , Software Engineering, Computer System Architecture, Compiler Design and Implementation, and other major and non-major related courses.

Experience:

Lookout, Inc. Director of Technology, March 2009--present

While at Lookout, I've helped build our mobile clients, server backend, automation, testing, and general infrastructure. I've also been core to recruiting and scaling the team from 5 to 300+, evolving our processes and team structures to adapt to that rapid growth. I've led several different teams, but have continually been one of the top individual contributors in the company. My current focus is on client-server communication, our SOA, and enterprise products.

Black Duck Software, Inc. Senior Software Engineer, June 2006--December 2007, Contractor January 2008--June 2009

Projects include the design and implementation of:
  • Designed and implemented exportIP, Black Duck's second product line. Work included all the programming, part of the product definition, extensive interaction with expert lawyers in the field of encryption export, patent submission, and sales support.
  • Member of the architecture team (along with CTO and VP Engineering), responsible for designing the core architecture and common infrastructure for all Black Duck product lines.
  • Added support for multiple versions of open source components in protexIP, the company's flagship product. This was in support of the GPLv3 release, to allow matching source from different releases and selecting the appropriate license.
  • Compressed the core database by 60% (started at 100GB), enabling us to over double the contents without increasing disk requirements. Simultaneously improved access times and parallelization.
  • Improved integration and use of the Lucene search engine for string search.
  • Integrated with Acegi to provide pluggable authentication framework, specifically adding LDAP support.

Permabit, Inc. Principal Software Engineer, December 2000--June 2006

Projects include the design and implementation of:
  • Message parsing, queueing, and dispatching system for highly multi-threaded distributed system.
  • Message routing scheme to support high-availability and failover scheme for large clusters of servers.
  • Transaction processing scheme to ensure that all servers in a cluster process messages according to one of several orderings and properly synchronize all stages, including abort handling.
  • Network monitoring scheme to detect NIC and switch failures within a cluster and to handle network partitions.
  • Extensive work on installation CDs based on PGI and FAI for Debian Linux.
  • Tools for logfile analysis, system and cluster management, release engineering, and distributed debugging.
  • Build system for large java, C++, and perl codebase.
  • Unit test infrastructure using JUnit for java codebase.
  • Infrastructure to run a large suite of tests across hundreds of servers in parallel, both nightly and on demand.
  • Continuous build system using CruiseControl.
I served as Team Lead for the server team for almost two years before stepping down to be able to contribute more as a developer. My responsibilities in that role included:
  • Managing a team of 5 engineers and 2 QA engineers in a XP project setting.
  • Switching to XP programming methodologies.
  • Scheduling and tracking work and coordinating with upper management.
  • Handling hiring, performance reviews, and other personnel issues.

Conexant Systems. Senior Software Tools Engineer, March 2000--December 2000

Maker Communications was acquired by Conexant Systems in March, 2000.

Maker Communications. Software Tools Engineer, November 1998--March 2000

Projects include the design and implementation of:
  • Device drivers for custom hardware under Linux, FreeBSD, Solaris, and VxWorks.
  • Kernel debugging and testing for FreeBSD and VxWorks.
  • Re-targeted GNU compiler, debugger, toolchain and system libraries for custom chips.
  • API for access to device specific features, and simulator for testing use of API.
  • Assisted in board bring-up of 3 custom boards with custom chips.
  • Log file analysis tools for analysis of simulation runs.
  • Company-wide build and install mechanism for multi-platform, multi-chip, multi-compiler builds.

Integrated Computing Engines. Software Engineer, October 1995--November 1998

Projects include the design and implementation of:
  • Multi-threaded, multi-process simulator of parallel computer under Windows NT, OS/2 and Unix.
  • Porting and enhancement of uC/OS RTOS for Philips TriMedia chip.
  • 1 EISA and 3 PCI device drivers for custom hardware under Windows NT.
  • Data visualisation tool using MFC and C++.
  • Hardware level diagnostic suite for ADSP2106x SHARC chip.
  • Porting API for cross-platform operability of all company tools.
  • Extensive work on compiler, toolchain and system libraries for SHARC platform.

Independent Computer Consulting and Programming, June 1993--present

Private work for individuals and companies, including:
  • NT device driver for medical equiptment monitoring system.
  • Windows database under Paradox 4.5.
Individual projects include design and implementation of:
  • Ethernet router, using MACE ethernet chip, 386SX evaluation board, and custom tcp/ip stack, as part of 3 person team.
  • IDE disk driver for ExoPC Operating System.
  • Compiler for object oriented language including many levels of optimization, as part of 4 person team.
  • Chess variant, with AI and web interface, as part of 3 person team.
  • Shareware programming in C, Pascal, and x86 assembly.

Cambridge Technology Group. Programmer, Internet Specialist, January 1995--October 1995

Helped develop WWW home page, including CGI script development, page creation,and layout design. Joined other projects as needed, including Perl programming, recruitment and hiring, and project demonstrations.

Jet Propulsion Laboratory. Technical Hire, June 1993--August 1994

Research and study of Planetary Geology, performing digital image processing, manipulation, and measuring, on MicroVax and Sun Workstations. Worked as assistant system manager on MicroVax and wrote/modified programs as needed.

Honors and Awards

Appointed USA Today All-American Academic Third Team, June 1994.
Membership in the Student Information Processing Board (SIPB), an MIT student group that provides computer services to students.
Membership in the MIT men's gymnastics team
Awarded the National Council of Teachers of English Excellence in Writing Award, 1994.
Self-taught knowledge of Unix, VMS, DOS, Windows, and Macintosh computers.
Self-taught programming in C/C++, Java, Perl, Lisp, Scheme, Python, Ruby, Scala, Groovy, Tcl/Tk and Pascal.
Assembly for the x86, SHARC, TriMedia, and I960.
Self-taught knowledge of OS Internals (Linux, NetBSD and FreeBSD), TCP/IP, SQL, Verilog, MFC, Ruby on Rails, Grails, Win32, HTML, and LaTeX.
Eagle Scout.

References:

Available upon request.
Back to my home page