Daniel Kegel
Web: http://www.kegel.com/
Email: dank@kegel.com
Mail: 901 S. Sycamore Ave, Los Angeles, CA 90036
Phone: 323 931-6717
Status
I'm employed at Ixia; please don't send any job offers. Thanks!
Education
BS, Engineering and Applied Science and Biology, 1986, Caltech
Specialized Skills
- C, C++, Java Programming
- Linux, Unix, Win32, MS-DOS system programming
- Socket programming; internet server software design, benchmarking, and optimization
- High Availability server programming
- GNU Autoconf/Automake
- x86, 68k, Z80, 6502, TMS320x0 Assembly
- UDP peer-to-peer software design
- Internet and Unix security
- Perl, portable shell scripting
- Build procedure and regression test automation
- Peer review of software design and implementation
- HTML/CGI/Perl/Java/Javascript web programming
- Digital Signal Processing
- Technical recruiting and hiring
- Proficient in German, can read French
My brainbench.com transcript is online (see
here and
here)
for those who care about such things.
Experience
2001-present: Senior Engineer, Ixia Communications,
Calabasas, CA
Developed the
Ixia Linux SDK,
a simple embedded Linux with GNU cross-development tools.
This involved turning the initial rough environment into a GPL-compliant product,
setting up a nightly build and regression test environment,
and supporting non-Ixia developers using the SDK.
Minor contributions to open source in course of working on Ixia Linux:
Designed and implemented secure, high-performance, highly available email server software
using C++, Java, SSL, SNMP, JDBC, and Sybase on Linux and Solaris.
I designed and implemented the following aspects of the Omniva server:
- Nonblocking queued architecture capable of handling
thousands of simultaneous clients
using only a handful of threads; the queued design ensures that deadlocks cannot occur.
- Crashproof stable queues providing stable storage within a single
keyserver, and serving as the basis for crashproof mirroring of keyserver
contents to hot remote servers.
- Stackable protocol code allowing HTTP tunnelling and/or SSL encryption
(using OpenSSL) of client sessions.
- A custom SNMP agent (using UCD-SNMP)
providing keyserver and mirror health monitoring.
- An SNMP subagent library and a custom MIB compiler generating C++
wrapper objects to make SNMP coding easier. Released as open source; see www.kegel.com/snmp.
My supervisor wrote:
Dan is one of Disappearing Inc.'s key assets.
He has a deep commitment to our product and a sense of ownership
over its technology. His ability to create a full keyserver from a clean sheet of
paper is a testimony to his value to our organization.
1995-1999: Senior Programmer, Activision, Santa Monica, CA
Designed and implemented portable multiplayer networking code for
games on the Win95, Linux, MS-DOS, and MacOS platforms, and
game servers on the Linux and Solaris platforms.
About fourteen games have been shipped using this code.
-
Responsible for much of the multiplayer programming in
the Mechwarrior 2
series of games
-
Led the last month of work on Mechwarrior 2: Titanium
-
Developed technique for lag avoidance in multiplayer code
for Interstate '76
-
Developed standard multiplayer API, set up automated build system and
regression tests to help ensure its quality
-
Set up a network of
game servers based on
the API
-
Developed method of logging stack tracebacks from crashes on end-user
machines; data feeds into central crash tracking internal web site
for use by developers
-
Developed technique for transparent gameplay through firewalls and Internet
connection sharing devices; worked with NAT vendors (Nevod, Nat32,
Arescom, Viacom, Microsoft, Cisco, the Linux group) to add support for
this technique to their products
-
Interviewed, hired, and managed numerous assistant programmers
-
Assisted MIS department from time to time with technical issues, and
interviewed candidate system administrators and webmasters
My supervisor wrote:
Dan has been responsible for most of Activision's technical innovation during [1996].
Worked on multimedia engine, installer tools, and
game scripting; helped develop techniques for internationalization;
also responsible for getting OEM versions
working and out the door.
Interviewed and helped hire numerous programmers.
Installed and administered Unix system for mail and web services, was initial
Webmaster.
Credits include
Jumpstart Preschool,
3D Dinosaur
Adventure,
Undersea
Adventure, Aviation Adventure, Space Adventure
and many others.
Wrote software to control data-collection equipment, helped design data
processing hardware, administered Unix systems, and acted as security
advisor for 50 Unix workstations. Released popular enhancement to
Clyde Hoover's security tool npasswd.
1989-1991: Electrical Engineer, Mars Observer Project, Caltech, Pasadena,
CA.
Installed Unix systems, CAD tools, and version control tools, wrote data
conversion tools, set up system simulations using Verilog, and verified
basic functionality of the gate arrays being designed. Performed
margin and noise testing of actual chips and systems.
1986-1989: Software Engineer, Speech Recognition Systems, Rochester, NY.
Designed and implemented software managment, data handling, signal processing,
and pattern recognition software for the Sun workstation and TMS-320xx DSP.
Sought out and implemented algorithms from the literature.
1986: Freelance programmer
Coded high-performance console driver NANSI.SYS for MS-DOS, released
as shareware. Licensed in 1999 to Datalight
for use as the ANSI.SYS driver in their ROM-DOS product. Re-released under the GPL
in 2000 as my contribution to the FreeDOS project.
1985-1986: Hardware and Software Engineer, K & S Systems, Redmond, Wa.
Designed a computer system to control the motion of a
pressure transducer in three axes and relay data to a host computer.
Implemented control software in 8086 assembly and C for both the
system and the host.
1982-1986: Student, Caltech
Designed and built a 6803-based EPROM programmer; delegated analog electronics
and serial i/o routines to a second engineering student.
Designed hardware, software, and packaging for an
8086-based remote control system for a stadium scoreboard and audio
system; managed its implementation and installation.
Recruited and supervised a software engineer to help implement parts of the
control software. Also gained experience in press relations and physical
security techniques.
Helped design and build a 6502-based 64-line telephone
exchange; responsible for design, layout, and fabrication of
16 subscriber line interface cards. Updated the system software
to add support for a Touchtone decoder card.
Wrote a 6502 development system in C for the PC based on the
MS-DOS link.exe and an existing 6809 assembler.
Summer 1981: Programmer, Perspective, Mercer Island, WA
Coded interrupt-driven serial and parallel I/O routines and
a segmented storage allocator for a commercial drafting package for the IBM
PC in C and Pascal.
Other Activities
2000: Expert Witness
Served as a minor expert witness in litigation related to ISDN.
2000-2001: JSR-51
Serving on Sun's
JSR-51 committee
which is developing new I/O API's for the Java platform. We're mostly
wrapped up as of June 2001, and a subset of the API we helped develop
is available in Sun's JDK 1.4 beta.
Professional Associations
Publications
Citizenship
I am a US citizen.
Last update: 17 July 2002
Copyright 1996-2002 Dan Kegel
This document may not be copied, sent to any prospective employer, or placed in any online job bank
without the author's explicit permission. It lives at www.kegel.com/resume.html.