NATHAN L. FIEDLER
Castro Valley, CA - 510-398-5153 - firstname.lastname@example.org
Software Engineer with particular expertise in client/server development, back-end services, and developer tools. Recognized for productivity, ability to focus, and excellent attention to detail. Highly skilled in writing complex code. Experienced in numerous technologies, and the mentorship of junior engineers. Individual contributor who prefers collaborative, team oriented work style.
Active contributor to open source projects, including Make a Lisp (I wrote the Erlang implementation), as well as many of my own personal projects. My GitHub profile page (github.com/nlfiedler) shows a complete list, which includes a Scheme interpreter written in Go, a digital asset management system written in Elixir, and a Java debugger that I developed for over a decade.
Frameworks: Node.js, Express, Phoenix, Hadoop
Databases: CouchDB, PostgreSQL, Oracle, MySQL
Servers: Glassfish, Tomcat, Apache, WebLogic
Tools: Git, Perforce, NetBeans, Subversion, Mercurial
4/2012 - Present
- Developed Perforce to Git translation layer using Python, which migrates Perforce changes to Git and vice versa. Responsible for support of Git tags, submodules, and HTTP interface, as well as general feature development. Designed and implemented the locking strategy to facilitate a horizontally scalable architecture, allowing multiple Git Fusion servers to coordinate access with a single Perforce instance.
7/2010 - 3/2012
- Developed Java-based platform for processing a knowledge base, consisting of many entities and relationships across various domains, to enable a rich search and browsing experience. Utilized Apache Hadoop and Pig on large compute clusters to process tens of millions of objects.
- Facilitated data quality assessment of data in the knowledge base through pairwise clustering of knowledge base entities and editorial data.
- Implemented backup and rollback system for the knowledge base using advanced Pig and Hadoop features. The system permits rolling back to any previously saved snapshot, which stores only the differences from one snapshot to the next. The rollback procedure then computes the differences and applies the reverse changes.
- Made significant improvements in the overall quality of the Java code base, in addition to giving a presentation on Java best practices.
10/2009 - 6/2010
- Developed Java library to perform the migration of raw binary data from various sources (such as FTP server) to an Oracle database configured for storing blobs. Modified several applications to use the library to migrate their data to the blob store. Drove the project from commencement to completion, moving the data from unreliable storage systems to the permanent system in a matter of weeks. Wrote many unit tests using JUnit and leveraged Cobertura to ensure thorough code coverage, resulting in high quality software.
- Modified Spring-based Java web application running in Tomcat to support new features for the blob migration process.
- Created Java application to verify migration of binary data by parsing log files into database entities using Java Persistence API (JPA) and subsequently processing the entities using multiple threads and a database connection pool connecting to a PostgreSQL instance.
Sun Microsystems, Inc.
11/2008 - 9/2009
Member of Technical Staff
Menlo Park, CA
- Developed Java-based web application, called zembly, that enabled web developers to create Facebook applications and web services using nothing more than their web browser. Zembly ran in Glassfish with MySQL as the data store, all hosted on OpenSolaris.
- Integrated reCAPTCHA service within zembly, replacing the home-grown CAPTCHA.
- Created adapter in zembly for Amazon SimpleDB by writing a WADL to describe the service and developing a new authentication strategy in Java to support the Amazon authentication mechanism.
- Created Java logging listener within zembly to record errors to a database, with querying and reporting scripts written in SQL, awk, and shell, in order to uncover errors otherwise missed.
9/2008 - 10/2008
San Francisco, CA
- Developed the company-to-industry mapping software by writing MapReduce jobs in Java running in Hadoop, processing hundreds of thousands of rowfile entries stored in HDFS. Created a process for sanitizing company names for easy comparison in order to join two disparate data sets. This feature is utilized by advertisers to identify publishers whose audience is employed within a particular industry.
Sun Microsystems, Inc.
3/2004 - 8/2008
Member of Technical Staff
Menlo Park, CA
- Designed and developed the source code management feature set for Project Kenai, a software project hosting service. Developed Ruby on Rails web service to provide a REST-based XML/JSON interface to Mercurial and Subversion repositories; the service facilitates the life-cycle management of repositories, and supports querying revision and file metadata.
- Subsequently rewrote entire SCM web service in Python on Django to improve performance by an order of magnitude, in particular for interfacing with Mercurial, a Python-based SCM tool.
- Wrote an Apache module in Perl to facilitate advanced user access control to the source code repositories, leveraging memcached for improved performance.
- Developed new XML Schema authoring features, as well as a graphical WSDL editor, in Java for the NetBeans Enterprise Pack, utilizing the NetBeans Visual Library and Swing. Implemented undo/redo support, copy/paste, drag and drop, searching, navigator display, and display of schema documents in multiple viewers. Applied for a patent for the undo/redo support across multiple viewer modes.
ACCESS Systems America, Inc.
8/2002 - 2/2004
- Developed web-based administration application using Java servlets and Java Server Pages (JSP) technology to manage premium content and services for a mobile phone portal operated by telecommunications customers. The application utilized Oracle and MySQL databases using Java Database Connectivity (JDBC).
- Created stored SQL procedures for Oracle to perform complex queries efficiently, utilizing conditionals, loops, cursors, and views.
6/1996 - 2/2002
- Developed application server software in Java, which facilitated access to wireless services via multiple transports (HTTP, SMS, SMTP, POP3). Interfaced with relational databases using SQL via JDBC. Developed email capability for sending and receiving email using JavaMail. Developed administrative interface using Java Foundation Classes (JFC/Swing). Created managed bean interface to the server using Java Management eXtensions (JMX). Implemented I18N support for email and HTTP transports for Japanese customers.
- Developed embedded web browser application software for mobile phones, utilizing Microsoft Visual C++ to develop in C. Wrote technical specifications and implemented the short messaging module for sending and receiving messages.
BS Computer Science
The Pennsylvania State University