John Braden Keiser

Renton, WA
john@johnkeiser.com
www.johnkeiser.com/resume.html
Updated June 4, 2007
 Overview
I have experience in all important aspects of engineering, including development, testing, requirements and business analysis, and project management. Most of my development experience is in object-oriented languages, large-scale distributed systems, network communications, databases and Web technology.

 Extensive Experience
These are some technologies I am particularly proficient in, and how long I've spent using them.
  • C++ / Object-Oriented: 8 yrs. (C: 11 yrs.). Object-Oriented Design. Sockets, database, low-level GUI work.
  • Large Scale Distributed Systems: 4 yrs. Scalable storage, analysis, indexing and queries. Search and general purpose.
  • C#: 3 yrs.
  • Web Development: 4 yrs. Database/Web Integration. HTML/JavaScript/CSS. Perl, Mason, Java Servlets, StoryServer, CGI.
  • Database Development: 5 yrs. Application design, table design, some performance work. Oracle 7 through 8i, Sybase, PostgreSQL, MySQL.
  • Perl: 6 yrs. Years of tools, large-scale testing, data processing, web development, object-oriented. Wrote widely-referred-to paper on Perl XS.
  • Java: 2.5 yrs. Servlets. Applets. Applications. Worked on free implementation of core java.* hierarchy.
 Skills
Web
CGIPerlDHTML/CSSAppletsServletsJavaScript
DOMMasonStoryServerRuby/Rails 
Languages
C++C#PerlJavaTcl/TkLex/yacc
CBASICCORBAJNIPerl XS
Databases
SQLOraclePL/SQLPostgres / mysqlMS AccessPostgreSQL
SybaseProgress v7.0RogueWave DBTools.h++ 
Dev. Tools
CVS/RCS/SVN/Source DepotGNU MakeVisual StudioRogueWave Tools.h++OpenGL
Shell/Unix
LinuxGNUSolaris/SunOS/DEC UnixSysVsh/csh/tcsh
Environments
UNIXWinXP/MeDOS 

 Work History
MicrosoftOctober 2003-Present
SDE / SDET - Distributed Storage
Developed, tested and ran a large-scale service that allowed storage and processing of extremely large amounts of data.
  • Wrote service to generate, collect and analyze important log data from extremely large number of machines
  • Wrote widely-distributed internal test strategy white paper for large-scale services in general.
  • Wrote the primary service monitoring system, continuously mining logging and performance data across all computers to alert when problems occurred, and aid in diagnosing and fixing said problems.
  • Sped up the release process to reduce code drift and increase turnaround time to catch problems.
  • Wrote local tests that mimicked the distributed system in as many respects as possible, driving features into the product where necessary to make it happen and ensuring the quality of the system before it was deployed.
  • Wrote first installer for the distributed system.
  • Designed and implemented hybrid model-based system applicable to both stress and normal tests.
SDET - Search
Developed, tested and helped run Microsoft's large-scale search service. Architected test strategy for the entire product, managing multple people to get the core important tools and infrastructure running.
  • Wrote the first version of the installation for the Search service.
  • Architected the test infrastructure used by all of Search, and managed multiple people to get the work complete.
  • Designed and wrote scalable build system used to build the product daily and constantly, and kick off tests and deploy to machines.
  • Wrote test plans, designed and implemented automated tests for the downloading, parsing and indexing of web pages, conversion, and internationalization.
  • Wrote systems allowing the automated deployment, running and
  • Wrote the first automated whole-product tests.
  • Architected common libraries to aid in installation, diagnosis, testing and working with the product, and worked.
  • Wrote widely-used tools to aid the running of the system, running programs in parallel on many machines and performing important administrative tasks.
  • Wrote universally-used tools to mine the service for crashes and display the most frequent stacks.
AOL/NetscapeJan 2002-July 2003
Sr. Software Engineer
Extensive C++ and web development, plus web/database integration. Worked on scripting capabilities and graphical layout for the Netscape web rendering engine ("Gecko"), and wrote many tools to make development life easier for the large project. A huge number of small accomplishments can be found by searching the public Bug database; the largest and most far-reaching changes are listed below:
  • Participated in the W3C XForms Working Group
  • Managed several sub-modules of the Gecko / Mozilla project, including form controls, form submission, and later, printing
  • Rewrote form controls to honor display: none
  • Rearchitected form submission to fix existing problems and enhance maintainability
  • Rewrote printing to be simpler and less error-prone, created interface to create thumbnails of a web document (ongoing)
  • Determined more modular build and directory system for entire project (ongoing)
  • Made large contributions to many other areas of product, including the event system, JavaScript DOM, security, the base XPCOM libraries and data structures (esp. hashtables)
  • Wrote a set of developer tools for use by other members of the project
  • Wrote tinderbox3, a next-generation tool for managing a widely distributed development project and detecting errors early
  • Wrote enhancements to the bug system and a rule-based tool that reviews programs for common errors
WrightHavenMay 2001-Jan 2002
Sr. Architect, Partner
Consulting, technical architecture, project management.
Projects:
  • Consumer Services Website -- dynamic website written in Mason/Perl, PostgreSQL database
  • Shopping Cart System -- Mason/Perl, PostgreSQL database
Ideas & EffectsMay 2000-April 2001
  • Role: Director, R&D
    Duties: Oversaw technical architecture, project management of all projects in company. Sales duties, bidding for projects as well. 4 direct reports, 5 people total underneath at any given time.
    Project oversight included:
    • Real Estate Booking System--2-3 persons, 4 mos., Perl CGI, Java networking & threading, Oracle 8i
    • Timesheet System--(also created requirements & architecture for this) 2 persons, 2.5 mos., Java Servlets, Perl CGI, Oracle 8i
    • Remote Hardware Testing Systems--(less oversight on this one) 1 person, long term, Java, hardware interfacing (COM ports), threading & networking
    • Web Store Search Engine--2 people, 3 months, Perl CGI, Oracle 8i
    • Credit Card Processing System--1 person, 1 month, Perl CGI
    • Small Contracts--usu. 1 person, ~1-2 weeks, Perl CGI
    Other duties included system administration, general network architecture, security measures.
    Created the development, release and test process for Ideas & Effects.
  • Project: WWW Search Engine. Roles: Customer Management, Project Management, Analyst & Programming, Sysadmin
    Managed one person. Created full project plan, architecture, design, contracts, hour tallies. Full delivery from conception to test to production.
    Wrote website in Perl hooked to Oracle 8i database, did FastCGI work as well. DBA duties, installation & security work of all software involved.
  • Project: Recruiting System. Roles: Project Manager, Analyst
    Internal system to assist Ideas & Effects recruiter, which it plans to spin off as a separate company. Created a full requirements and business analysis, project plan, and requirements document for the system. I had a hand in a business plan for the product as well.
    Finally, I created the database schema and set up Oracle to work with it.
    Product uses Perl CGI, Oracle 8 database, HTML 4.0, CSS1, and some mean JavaScript.
  • Project: Registration System. Roles: Technical & Business Analyst
    Wrote general product plan, requirements document, led team on initial prototype, created database, coded some Servlets.
    Prototype used Java Servlets, Oracle 8 database.
Independent Consultant - VariousJan 1997-May 2000
As a consultant I completed a variety of projects, with an emphasis on database-driven network applications, including Web and TCP/IP, for companies such as Swiss Bank, Lycos, the Chicago Tribune, Land's End, and Follett book publishing I made extensive use of my skills in Java, C++, Perl, Oracle and Postgres, among others. What follows are some of the more significant projects:
  • Client: CSG Systems. Project: Telephony Order Tracking System
    C++ and RogueWave Tools.h++ on an Oracle database. I worked on workflow management software and some daemons using a major OO framework. Additionally, I implemented several useful tools in Perl 5, including software to assist with population of data for automatic testing. Finally, I wrote an experimental Java reimplementation of some of the technology.
  • Client: MCI-WorldCom. Project: Telephony Order Tracking System.
    Sales reps use this system to enter new local service orders. It runs over the web on Oracle 8 PL/SQL. I worked on the Web Interface (PL/SQL), interfaces to downstream systems (C++/Sockets/Registry/FTP/CORBA/RogueWave). I designed and implemented common C++ base and helper classes for the majority of the backend systems, and restructured the group's login environment and build process. Created a set of classes that abstract database access to retrieve information simple, safely, and hierarchically, and created a small macro language to make maintainance and extension of these classes easier. Currently writing a generalized data feed program that will allow downstream systems to choose what information they get and how often.
  • Client: Land's End. Project: Online Catalog.
    Worked on a team of 8 programmers using Vignette StoryServer to create a WWW online catalog. Specific responsibilities included the content entry portion of the site, where the producer go to enter data on products and how they will appear on the site.
  • Client: Lycos, onhealth.com, small Internet Search Engine Firm. Project: Mentoring, Programming.
    Mentored clients in use of Vignette StoryServer, with DHTML and JavaScript programming responsibilities. Was critical factor in several successful launches during this time.
  • Client: Major Bank. Project: Policies Document.
    Java and Metaphoria DTS to present the contents of Microsoft Word policy documents to the Web in an indexed, searchable form consistent with the original. Wrote a complete, tolerant HTML parser in order to break up the document correctly. Was project lead, architect, and sole implementor.
  • Client: Chicago Tribune. Project: Flagship Website.
    Used StoryServer templates and a Sybase database (both Unix and Win95). Acted as a consultant to a team of 7 programmers and a number of Chicago Tribune editors and producers. Designed and implemented large-scale caching system to synch site content with editorial content entry. Created columnist sections of online newspaper. Created the two Alternate Versions of the site dynamically, pulling the same stories as the main site. Acted as mentor to a new StoryServer programmer, training her in StoryServer and the nuances of web programming.
  • Client: Automatic Expense Reporting Firm.
    Wrote programs in C to monitor and alert system administrators via page and email when anything went wrong with their database server or network, and when there were discrepancies in data. User Informix database interfaces from C along with standard UNIX system calls.
  • Client: Major College Textbook Company.
    Wrote a Financial Aid transaction server for bookstores. I was given a set of code that was not working, identified the architectural flaws and rewrote the portions of code that needed rewriting. Extensive use of sockets.
Gold Eagle CompanyJun 1996-Jan 1997
Administered Novell network, SysV Unix Server, Progress database, 70-80 client computers with Win3.1/95. Wrote database programs in MS Access and Progress (Symix).

Knowledge Base SystemsMar 1995-May 1996
Co-founder, lead software developer for WWW-based educational quizzing system using C++, Perl, CGI, Linux web server. Initially ran in Chemistry lab with 30 Win3.1 clients running Netscape.

NCSU Computer Science DepartmentMar 1995-May 1996
Graph theory research (including the four-color theorem) using C++, T.A.+tutor for Discrete Mathematics; tutor for C++, Advanced Data Structures courses.

 Open Source Development
Open source projects involve teams of programmers and complex, fundamental technologies like languages, web browsers, and databases. Here are some of my most significant contributions:
Video Game Engine: Apr 2003-Present. C++, OpenGL, Direct3D, Network Programming.
I am working on an unreleased game engine from the ground up, including 3D rendering and a full physics engine.
Mason: July 2001 to Present. Perl, Mason, PostgreSQL.
Mason is a middleware Web development language like PHP or StoryServer. I write essential utilities for the language, including a generalized login/session management system called UserLogin.
GNU Classpath: June 1998 to present. Java, JNI.
Working on an open-source, clean-room implementation of the java.* class hierarchy, Specific responsibilities include JavaBeans and the Virtual Machine Interface, which is Classpath's interface to different Java Virtual Machines.
OpenQubit: Mar. 1999 to Aug. 1999. C++.
Did some work on a project whose aim is to simulate quantum computers on classical ones.
Project 59: 1998. C++, Network Programming.
Early in my career I headed an open source project to write utilities for Ultima Online, a massively-multiplayer online RPG (role-playing game). These utilities used the datastream sent to/from the client and server, which I played a key role in decoding.

 Activities of Interest
Mathematics/Logic: I am working on a variety of hard problems, including the four-color theorem, combinatorial logic gates, and unitary matrix mathematics. I have played with various applications of genetic algorithms, and wrote a program to view three-dimensional slices of four-dimensional equation space.
Boy Scouts: I was a Scout leader for a year in Troop 777 in Colorado Springs. I earned the rank of Eagle Scout as a boy.
Other Interests: Philosophy, drumming, kayaking, tie-dye, hiking, mountain climbing