David Birtwell

Web Applications Developer. Versed in Java.

Summary:

Software Engineer – 20+ years professional experience developing commercial software products:

  • Web-based – 12+ years designing and developing web-based software solutions in Java.
  • Excellent technical and analytical skills.
  • Dedicated team player with a passion to create high-quality code in a timely manner.
  • Embraces the opportunity to learn and utilize new technologies and development techniques.
  • Embraces Polyglot Programming (using the correct languages and tools for the job).
  • Skilled at mentoring and developing engineers.
  • Able to work effectively in both small and large development teams.

Professional Skills

    Programming: Java, JavaScript, Groovy, XML, XSLT, HTML, Servlets, JSP. Some jQuery, CSS, Bootstrap 3.x and Node JS/Express experience. Previous C++/MFC, C experience.

    Frameworks/Applications: Java EE, JBoss, Tomcat, Apache, Hibernate, JUnit, JNA/JNI. Previous Lucene, Solr experience.

    Databases: Oracle, MySQL, MS SQL Server.

    Tools: Eclipse, NetBeans, Ant, Maven, version control (Git, CVS, Subversion, AccuRev, VSS).

    Operating Systems: Windows, Mac OS X, Linux, UNIX, DOS.

    Methodologies: Scrum, Agile, Test Driven Development (TDD).

Experience

­­­­­­­­Harvard University Information Technology, Cambridge, MA Nov. 2014 – Current

Senior Software Engineer – Library Technology Services (LTS)

Design, implement, test and deploy software enabling the deposit, preservation, management and presentation of digital video assets as part of the Digital Repository Service (DRS) solution.

Tools/Technologies Used: Java, JavaScript, XML/XSLT, JSON, Eclipse, Ant, Git, CVS, Mac OS X, Tomcat, Apache, Servlets/JSP, Web Services, Node JS and Express. Limited Groovy (Groovy/Grails Tool Suite, Gradle).

Streaming Delivery Service (SDS):

The SDS Application is responsible for delivering audio and video assets stored in the (DRS).

  • Implement and maintain a web-based video delivery application for SDS using the JW Player, JW Player APIs and Servlets/JSPs deployed on Apache Tomcat.

  • Investigate HTTP Live Streaming (HLS) using the JW Player and Wowza streaming server.

  • Implement and maintain a secure progressive download delivery architecture using cookies, unique file folder names, Apache HTTP Server and Apache Modules.

  • Implement and maintain several Node JS/Express microservices.

  • Recommend and implement Responsive Design in SDS UI using Bootstrap 3.x.

Object Tool Set (OTS):

OTS is responsible for creating, reading, writing and validating descriptor objects used by the DRS2 project. OTS supports the marshalling of PREMIS, MODS, MIX and other Java descriptor objects to XML and unmarshalling XML to Java objects.

  • Implement and maintain video content model support in OTS. A subset of EBUCore is used to support the video model.

  • Implement and maintain JUnit Tests and Suites.

File Information Tool Set (FITS):

The FITS tool is an open-source, Java-based application which identifies, validates and extracts technical metadata for a wide range of file formats. It acts as a wrapper to various tools and manages their output. Output from these tools are converted to a common format, compared to one another, and consolodated into a single XML output file.

FITS Project

FITS GitHub

  • Implement and maintain the identification of, and extraction of, video metadata as XML using EBUCore as the standard output format.

  • Implement a solution which invokes MediaInfo native libraries using a Java Native Access (JNA) wrapper. Video support of these libraries must be maintained for various platforms (Mac OS X, Windows, Ubuntu, RedHat/CentOS).

  • Implement and Maintain JUnit Tests and Suites.

  • Implemented a GUI-based wrapper for FITS written in Groovy.

­­­­­­­­MassPro, Waltham, MA Jan. 2013 – September 2014

Java Programmer

Tools/Technologies Used: Java EE, Hibernate 3.x, JDBC, XML, JSON, NetBeans, Ant, Oracle, MySQL, Windows, Linux, JBoss, Tomcat, Web Services/Servlet, Applet, EJB 3.0, JAXB, Subversion, Some Groovy (Groovy/Grails Tool Suite, Gradle).

  • Implemented and maintained software modules and applications used for collecting, scoring and reporting medical data, both for internal and external clients. These modules were written in Java and exposed as RESTful web services.

  • Maintained client-side encrypted data upload modules, utilizing the Bouncy Castle Cryptography APIs. Also responsible for updating signed certificates, and re-signing Java JARS as needed.

  • Designed, developed and maintained a Groovy-based Swing desktop Testing application using XML and XMLUnit to verify the integrity of data scoring web service APIs.

  • Tested revised web-based applications and verified data integrity and scoring outcomes.

  • Updated and installed custom web-based applications as new versions and applications were developed.

  • Analyzed user requirements to design applications or modify existing applications.

  • Documented and reviewed specifications with customers to confirm that customers needs were met.

­­­­­­­­Atex, Inc., Tewksbury, MA February 2010 – October 2012

Software Developer – US Digital Operations, Polopoly CMS product

Tools/Technologies Used: Java EE, JDBC, XML, JavaScript, jQuery, CSS, HTML, Eclipse, Ant, Maven, MySQL, Linux/Unix, Mac OS X, JBoss, Tomcat, Lucene, Solr, Velocity, Perl, Agile (Scrum), Polopoly CMS Platform.

  • Implemented modules for collecting and presenting user-generated digital content (articles, images, videos, documents). This included the creation of widgets, input templates and output templates for the Polopoly CMS framework.

  • Developed migration tools for moving data from legacy CMS systems to Polopoly CMS, including migrating Wordpress Blog content.

  • Developed and maintained RSS feed and NewsML components.

  • Developed mobile and legacy URL redirection Servlet filters for Polopoly CMS.

  • Developed and maintained a Java-based trashcan application to permanently delete content from a customized Polopoly CMS installation.

  • Implemented custom indexing enhancements for Lucene and Solr-driven publishing queues.

  • Developed and enhance Perl-based migration scripts and NITF feed generation.

  • Worked with customers to address issues, implement bug fixes and guide customers‘ developers and maintenance staff.

  • Core member of the US Digital Operations development team which worked with various top media-related companies to customize and implement enterprise Polopoly CMS platform, including such clients as the Akron Beacon Journal, GoRadio.com, Newsday, the Scranton Times Tribune and Conde Nast.

­­­­­­­­Kronos, Inc., Chelmsford, MA 1997 – 2009

Software Engineer

Java Developer 2003 – 2009

Tools/Technologies Used: Java, J2EE (JEE), C++/MFC, C, Windows, Unix, DOS, MS SQL, Oracle SQL, JDBC, XML, JavaScript, HTML, Eclipse, Ant, JBoss, Agile (Scrum), Quartz, JNI.

  • Developed and maintained enterprise web-based software applications.
  • Expert developing Java server-side business objects and the SOAP-compliant XML API framework.
  • Worked closely with product owners, interaction designers, database designers, QA engineers and other developers to ensure on-schedule delivery of high quality software.
  • Contributed to overall quality of Workforce Central code base by investigating automated test and build failures; addressed any deficiencies discovered during development cycle.
  • Mentored engineers to become proficient using the Kronos business object frameworks, XML-based API framework, persistence layer framework and testing frameworks.
  • Created multi-threaded services to manage application-critical background processes.
  • Mentored developers on the design and implementation of the job scheduling component. This included describing the front-end design, business logic and persistence layer.
  • Investigated, designed and coded solutions to deficiencies discovered in Quartz port of the job scheduling engine, especially in the area of DST transitions.
  • Developed port of fat-client configuration to Java-based web-enabled components.

JNI Java/C/C++ Developer 1998 –2003

  • Developed and maintained web-based job scheduling component using JNI-invoked Microsoft Task Scheduler engine; later using the Quartz Enterprise Job Scheduler.
  • Developed a Web Services framework to provide customers with a diagnostics toolkit.
  • Investigated JMS as a possible enhancement to existing notification framework.
  • Designed and developed web-based UI job scheduling prototype using JSPs and Servlets.
  • Investigated Java-based solutions to replace Microsoft Task Scheduler as the job scheduling engine. Solutions included commercial products, roll-your-own approaches, and Quartz.
  • Designed, developed & maintained Registry utility written in Visual C++ using MFC.
  • Designed and developed authentication DLL prototype using Microsoft LDAP libraries.
  • Developed and maintained APIs for non-Java clients to interface with Java-based services.
  • Generated User’s Guide documentation detailing API installation, configuration and usage.
  • Designed and developed dialog-based testing tool for API Framework utilizing MFC.
  • Trained new hire on Java-based services APIs for future development and maintenance.

C Developer 1997 – 1998

  • Rapidly identified and resolved complex software anomalies in time and attendance products for UNIX and DOS platforms.
  • Used strong problem solving and debugging techniquesto isolate faulty code; implemented revisions with minimal risk to code base.
  • Examined and ensured that code revisions adhered to existing style, C programming language standards, and remained as platform-independent as possible.
  • Performed self-tests on revised code ensuring proper resolution without product regression.
  • Worked closely with QA engineers to help facilitate timely resolution of problems.
  • Assisted in the process of unifying multiple code bases into one single baseline.

Client/Server Software, Inc., Wakefield, MA 1992 – 1997

C Programmer/Analyst

Tools/Technologies Used: Microsoft C, Lattice C, DOS.

  • Maintained the line of PC-based Hospital Cost Reporting software products written in C.
  • Modified software using government specs and client requests within strict timeframes.
  • Developed new software products and utilities in C.
  • Provided full and timely technical support for the Cost Reporting software product line.
  • Ported existing C source code to/from various compilers.
  • Performed self-tests on new and modified products before submitting to quality assurance.

EDUCATION AND TRAINING:

RubyLearning.org – Core Ruby Programming, June 2012.

Computer Learning Center, Somerville, MA – Certificate, C/UNIX Programming, 1992.

St. Joseph's University, Phila., PA – 2 semesters in Computer Sciences Masters Program, 1990.

West Chester University, West Chester, PA – BA, Psychology, 1983.

Attended “No Fluff Just Stuff” symposiums covering the latest technologies, including Spring,

Hibernate, Groovy, Grails, Ruby and Rails, 2006, 2007, 2009.

IBM, Waltham, MA – Developing Network Computing Solutions using Java Technologies, 1999.

Wave Technologies, Burlington, MA – C++ for C Programmers, 1998.

Northeastern University, Burlington, MA – Introduction to Java Programming, 1998.

Northeastern University, Burlington, MA – Windows Programming using Windows 95, 1997.