John Kern

Menlo Park, CA 94025

Email: kern3020 at gmail dot com
URL: http://kerncomputing.blogspot.com

Software Development Skills

Languages: C/C++, Java, Javascript, PHP, Tcl/Tk, SQL, Perl, Shell Programming, LISP.

Operating Systems: UNIX, Linux, MAC OS X, Microsoft Windows, Symbian.

Employment History

Senior Software Developer
Kern Computing, Menlo Park, CA
2008-present

Freelance software developer exploring the nexus between the web, telephony, mobile and location.

Senior Software Developer
Razz, Inc., San Francisco, CA
2006-2008

Wrote an IVR using Dialogic's Switch Kit library. It allows users to record their voice. Integration with the company's web assets allows Razz to add user generated content to their web experience. A Web API provided access to this functionality to third parties. Wrote a separate server called Harbinger monitored the IVRs and provided an on-demand status report.

Took over development of the Symbian application. Established a light weight software development process. Enhanced it. Ported it to S60 3rd edition. Developed a mechanism to customize it for branding and localization.

Built a wrapper around WURFL to allow the website to recognize and adapt to phones. Wrote a comment engine for Facebook. Did initial due diligence on Open Social.

Principal Consultant
Kern Computing, Menlo Park, CA
2004-2006

Developed software for mobile devices (Symbian OS/Series 60) and the systems that support them. Wrote a Symbian client program to communicate with a server via an SMS based protocol. This allowed my client to win venture funding. Created DidUKnow, a Symbian program which leverages Amazon Web Services to search for books.

Active member of the mobile community in Silicon Valley. Presented lectures at the SF Bay ACM, the Symbian Programming SIG and SD Forum. Organized a panel discussion on the Economics of Software development, the Symbian Programming SIG and the ACM TechMaster event.

R&D Engineer
Synopsys, Inc., Mountain View, CA
2003-2004

Member of the CATS development team responsible for porting and file I/O subsystem. Integrated third party compression library for GDSII and MEBES files. Maintained the PROXECCO library for proximity correction.

Triaged all bugs. Maintained and enhanced bug database. Worked closely with IT during migration to ensure computational environment worked for everyone in both California and Europe.

Staff Engineer
Numerical Technologies, Inc.(acquired by Synopsys, Inc), San Jose, CA
1998-2002

Ported products between Windows NT and various UNIX platforms (i.e., Solaris, Linux, HP-UX, AIX). C/C++ issues included: Shared Libraries, 64-bit architectures, IEEE floating point and Large File Support.

Established nightly builds for all products. Wrote a common UNIX installer for all products. Established a startup contract between the startup script and the applications. Eliminated a lag of about 3 months between Solaris and the Windows NT releases. Established and promoted best practices with respect to porting, integration and process.

Rewrote make system to simplify and add flexibility to it. Migrated source base from Source Safe to CVS. Taught short course on CVS and the make system.

Developed a web based change management system. This allowed one to systematically define what to extract from CVS and then build on all desired platforms at once. Jobs were distributed via either LSF or Unix rsh(1).

Software Engineer (Developer)
Sun Microsystems, Inc., Menlo Park, CA
1996-1998

Enhanced Java WorkShop(JWS). Created a model/view split to allow for both a command line (i.e., the jwsbuild command) and GUI interface to the Builder. Used jwsbuild command to develop a test suite that was adopted by our testing organization. Fixed global problems (e.g., converted product to Swing, to correctly handle spaces in filenames, allow use of alternate JVM, etc.).

Software Engineer (Buildmaster)
Sun Microsystems, Inc., Menlo Park, CA
1995-1996

Wrote scripts to build and install the Java WorkShop 1.0 product on multiple platforms (Solaris, win95 and win/nt). Wrote utility programs (e.g., usage tracking, installation verification, comments box). Managed nightly builds and performed configuration management for both the language and the programming environment. Enhanced and maintained the builder. Initiated organizational changes to support Windows platform development.

Software Quality Engineer
Sun Microsystems, Inc., Mountain View, CA
1993-1995

Ensured the quality of GUI based programming tools through test automation and quality processes. Patented the test mechanism that we developed to test SPARCWorks, Sun's C/C++ programming environment. Developed and taught an introductory class about the EMACS editor. Maintained usage tracking. Wrote a test selection program.

Scientist
Lucid Inc., Menlo Park, CA
1992-1993

Quality Assurance for Common LISP, CLIM (graphical user interface tools for object oriented application programming), and XLT (programmer productivity tools). Developed and executed test plans which included: created XLT test suite, developed new tests, maintained and extended existing test suites, and documentation review. Sole responsibility for determining product readiness for release.

Scientist Customer Support
Lucid Inc., Menlo Park, CA
1990-1992

Responsible for daily telephone interaction with customers, bug tracking, bug fixing, customer training (taught labs for Lucid's "Intro to LISP" and "CLOS" classes), distributor training, sales support, documentation review, and quality assurance. Supported Lucid's products on a variety of UNIX platforms (e.g., SUN, HP, SGI) and VAX/VMS.

Education

Professional Societies

Other Skills

Last modified September 2008.