Charlotte Data Engineer Resume

John Lockwood
Charlotte, NC
Phone: (919) 561-3806
johnlockwood2999@gmail.com

Summary

I am a results-driven, senior software engineer with over 20 years of software development experience. I have a proven track record of successful projects.

Technologies / Tools / Certifications

  • Languages include Java, Python, C++, C, JavaScript, C#, Scala, Golang (Go), Rust, and others. Web technologies / frameworks include Spring Boot, Spring, React and Redux, ES6, jQuery, Vue.js. Batch and Bash Shell Scripting, HTML, CSS, XML, JSP, Struts.

  • A strong practitioner of unit tests, I advocated and led their adoption in three of the environments where I have worked. I have worked in Junit, Nunit, TestNG, Jest, etc.

  • Amazon AWS Certified Developer – Associate.

  • Extensive side projects and learning exercises in “DevOps” sorts of things - containers, (esp. Docker & Kubernetes), Ansible, Puppet, Terraform, Vagrant, etc.

  • Extensive “side project” work in Python, including Flask, Django, Jupyter Labs, Pandas. and other elements of the Python technical / data science stack, in addition to R. A recent side project consisted of an Ansible project deploying Postgresql, Django and Gunicorn, Django Channels & Daphne, and a React front end, fronted by Nginx.

  • Technical presentation on Scala for Java Programmers at the Sacramento Java User’s Group. See presentation slides.

  • Maven, Git, Gradle, Ant, Subversion. Jenkins and VSTS (Azure DevOps) build pipelines for reliable, continuous integration including configuration of automated unit test results.

  • Databases and OS: Oracle, including complex queries and stored procedures in PL/SQL, MySQL, SQL Server, DB2, PostgreSQL. Transact SQL, Stored Procedures, Triggers, MongoDb.

  • Windows, Linux (esp. Ubuntu, Redhat, Centos), Unix, MacOS, Amazon AWS, Azure and Google Cloud.

Experience

2018-Present Senior Software Engineer at Rockwell Collins

Originally hired to do full stack development on a Java / Spring Boot / Redis and React supply chain application which allows suppliers to confirm shipping dates of parts requested by manufacturing. While continuing to work on this, I volunteered to help rescue a failing reporting project, also on the supplier portal. On this project, I stepped in as a front end developer. Developed the front end from scratch using React for the view layer, Redux for state management, and Recharts as a data visualization tool. Maintained build pipelines in Jenkins and stood up new ones in Azure Devops.

2017-2018 Solutions Engineer at Hitachi Vantara / Pentaho

Created custom plug-ins in Java for customers of Pentaho Data Integration, aka Kettle. Solutions targeted a variety of platforms, including big data platforms, requiring validation on Hortonworks Data Platform (HDP), Cloudera, etc. Representative solutions included:

  • A data lineage plug-in which consumed our proprietary graph data lineage data output in GraphML and transformed it for automated upload into IBM’s IGC. I delivered a proof of concept – scoped as a 2.5-week effort by another engineering team – in 1.5 weeks, which rescued an at-risk $750,000 engagement with a new customer.

  • Customer samples and documentation on a variety of topics including integrating Kettle with Apache NiFi, Integrating with R and Python (Pandas).

  • For our Python (Cpython) plug-in, also contributed a variety of fixes to the project.

2017 Application Architect Bank of America (Contract)

Write data load services in Scala for migrating an existing database supporting Global Commercial Banking data from Oracle to an RDF (NoSQL) database, as well as services to support existing and new functionality for interacting with party account data to support the Global Financial Crimes Compliance division.

2015-2017 Senior Software Engineer, Samba Safety

As a Senior Java Developer, developed RESTful services for DMV Renewal, Shipping, and Billing. Also worked on a variety of full stack improvements to our team’s core DMV transaction application. This was a JBoss application with a combination of EJBs and custom JDBC model classes on the back end, Java servlets and “action” classes at the controller layer, and JSPs with React, JQuery and more “legacy” JavaScript on the front end.

I led the effort to move our product from an in-house network to a cloud-based solution (Amazon AWS). I also resolved many tech debt items while I was there such as automated build processes, moving from TFS to Git, and vastly improving our use and continuous integration of JUnit tests.

2014-2015: Software Engineer (Java), Eyefinity (VSP Global)

As a Java developer, contributed new features and critical production fixes to a diverse portfolio of products and applications, including servlets exposing proprietary APIs, traditional WSDL-based Java services, and RESTful microservices written in Java Spring and Jersey.

A typical accomplishment was restoring two related automated jobs in Hibernate. Once the Hibernate failures that had prevented one job from running for the three years before I got there were corrected, I moved on to improve the performance of the second job by 1,250%.

I worked on a variety of J2EE servers including Resin, Tomcat, and JBoss. Databases included MySQL, DB2. Technologies included traditional web services and microservices, JDBC, (Hibernate in some cases) Elasticsearch, Spring, Java Servlets. Tools included Maven, Jenkins, SoapUI, JUnit, Groovy.

2008-2014: Senior Software Engineer, Daegis (formerly Unify Corporation)

Lead developer of a new, fully managed (C#) ADO .NET data provider for our database product,replacing a legacy hybrid driver consisting of a C# wrapper around our C API. Implemented the driver using Test Driven Development in NUnit, and as a result, in contrast to the old driver, which had a meager dozen or so unit tests driving it, our new driver sported close to 600 tests (and counting).

I also was charged with maintaining our “router layer” (a database API and a set of drivers targeting SQLBase, Oracle (OCI), ODBC, OLE DB, native Sybase, native Informix, and others as well as JDBC drivers written in Java.

Ported a WCF database proxy and developed a new WCF server in the process.

1997-2008: Principle, ParticleWave Software Development and Entrepreneur (Real Estate Broker)

Developed software for a variety of government and private sector clients as a contractor. Representative projects included:

  • LOCKWOOD REAL ESTATE / THE REAL ESTATE PLUS TEAM (AS OWNER / ENTREPRENEUR). Developed ten top producing real estate websites. Some were initially developed in JSP / Tomcat, and later ported to PHP. Created a MySQL database from MLS data that fed a variety of statistical reports. Created lead generation forms and other suitable content. Achieved dominant organic keyword placement for many competitive search terms, including “Sacramento Real Estate” and others. In 2005, the team closed over $10,000,000 in sales, generating approximately $270,000 in commission volume. The team attributes $240,000 of this to leads produced by web sites I created.

  • CALIFORNIA CANCER REGISTRY: Programmer on a complex N-tier project featuring JavaScript, ASP, SQL Server stored procedures (including SQL Server XML extensions), Delphi, and XSLT.

  • VISION SERVICE PLAN: Lead Java developer of Vision Service Plan’s new Member Portal application, a major port plus rewrite. This MVC project was delivered on time under a tight deadline on which several third-party deliverables had slipped. Introduced JSPs into an existing legacy Java project. Led the research and deployment of a new servlet engine to improve runtime efficiency 250%. Introduced JUnit automated unit tests to the company for the first time.

  • SYNERGEX: A variety of C++ and Java contracts, including RMI, Printing APIs, etc.

1993-1997: Additional Software Experience

1996-1997 SYNERGEX INTERNATIONAL, LEAD PROGRAMMER:

Windows programming in C using Visual C++ for the Synergy Windows toolkit.

1994-1996 THE WINDWARD GROUP, SENIOR SOFTWARE ENGINEER:

Delivered a variety of features for FedEx Ship (in Visual C++), including classes for on-line registration, a Universal Thunk subsystem for accessing 16-bit Windows Communications APIs from WIN32, etc. On Apple’s QuickTime for Windows, designed and implemented the self-extracting installation system written entirely in Visual C++ (MFC).

1993-1994 BORLAND INTERNATIONAL, TECHNICAL SUPPORT ENGINEER:

Provided paid technical support on the Windows Advisor Line for Windows programming using Borland C++. Assisted customers in troubleshooting thorny technical issues related to our C++ compiler, our IDE products, and Windows programming.

Education

  • Master of Arts, Indiana University, History and Philosophy of Science.