Steve Jones

email: steve@jonescape.com
twitter: @sjfloat

SERVICES

Software system development with an emphasis on Preemptive Quality through Functional Programming Practices and Type Driven Design

Specialties

  • Creation of sustainable, high-quality systems

  • Incremental improvement of legacy systems

  • Team building and staff mentorship

  • System integration

SUMMARY

I am a vigorous proponent of the Functional Programming paradigm and of Well-Typed languages. I founded and organize the Pittsburgh Functional Programming Group. I seek an environment where quality is highly regarded and where the value of such tools is acknowledged.

I have been productive using many technologies over my career.

For the past several years I have been professionally occupied mainly with the Scala language in a Type Level, Functional style, leveraging powerful technologies such as Cats Effect and http4s. Prior to this, I worked with the Elm language and NodeJS, as well as with operational tools like Docker, Ansible, AWS, and Terraform. The bulk of my experience during the central phase of my career was with Core and JEE JVM using languages such as Java, Groovy, and Scala and with XML/XSLT processing, a recurring theme being system integration. My earliest professional experiences were primarily with C, C++, and Perl.

I have served as architect and software lead on a number of projects at companies such as Lockheed Martin on behalf of the FBI. I have also formally played a mentoring role, leading and instructing junior engineering staff.

I began my career in a QA and Case Tools capacity, creating and maintaining utilities for an early form of Continuous Integration in an environment where quality was considered absolutely crucial. Perhaps as a consequence, I have been a quality hard-liner ever since.

EXPERIENCE DETAILS

Avetta (Aug 2021 - May 2022)

Senior Software Engineer II

Description

Maintain supply-chain and safety support system comprising several back-end services and user client.

  • Back-end services in Scala

  • Front-end client in Elm

Primary Languages & Frameworks

Scala, http4s, Cats Effect, Circe, Play, MongoDB, Elm

SESCO Enterprises (Jan 2021 - Jul 2021)

Development Manager

Description

Lead and mentored team of software developers in support of in-house energy traders. The chief products being:

  • Trading Data Acquisition System deployed to AWS via Kubernetes (Haskell)

  • Analysis Front End (JavaScript, Vue)

  • Legacy Analysis System (Java)

Jack Henry & Associates : Banno (Jul 2019 - Dec 2020)

Software Engineer

Description

Create backend services integrating core financial systems and end-user clients.

  • Write cloud-side microservices in functional type-safe Scala

  • Introduced and championed Domain Driven Development

Methodology & Quality

Type Driven Development, Well-typed Functional Programming, Domain Driven Design, PR’s, XP

Platform & Tool Suite

AWS, Linux/MacOS, VIM, sbt, Jenkins, Git

Primary Languages & Frameworks

Scala, http4s, fs2, Cats Effect, doobie, Circe

Arcadia Solutions (Feb 2018 - Mar 2019)

Software Engineer

MACK Project
Description

The system that our team was tasked with was conceived to serve two major functions related to Big Data at Arcadia. The first was to monitor databases at customer sites and to ingest electronic health records (EHR) to AWS S3. The second was to facilitate configuration of the on-premise portions of the system and to monitor its health and status.

  • Wrote cloud-side microservices in functional type-safe Scala

  • Mentored junior staff, particularly concerning idiomatic Scala

  • Hosted services as Docker containers running under AWS Fargate

  • Configured and deployed all AWS infrastructure using Terraform

  • Serialized data with Circe to help ensure type safety

  • Authenticated service consumption with JWT tokens

  • Streamed EHR data to AWS S3 buckets for Spark processing

  • Created authenticated Prometheus pushgateway proxy for external clients

  • Created custom Kinesis Firehose logback appender to stream event data to S3 bucket

Role

Engineer and Mentor

Methodology & Quality

Type Driven Development, Well-typed Functional Programming, Domain Driven Design, PR’s and Code Review

Platform & Tool Suite

AWS, Linux/MacOS, VIM, sbt, Travis, Git, Docker

Primary Languages & Frameworks

Scala, Scalatra

RAND Corporation (Jan 2015 - Jan 2018)

Software Developer
General web work and Bio Tool. Care, feeding, and customization of RAND’s Adobe Experience Manager CMS (mostly involving JSP and other Java). Introduced and employed DevOps tools such as Vagrant, Docker, Ansible Etc.

Bio Tool Project
Description

SPA utility to manipulate public researcher bios and associated workflow.

  • Wrote reactive frontend in Elm, a highly performant, well-typed functional ML language

  • Implemented data service in NodeJS

  • Leveraged Lodash FP in backend to facilitate functional programming style

  • Encapsulated development environment in Docker containers

  • Deployed deliverables as Docker images

Role

Designer and Implementer

Methodology & Quality

Type Driven Design, Functional Programming

Platform & Tool Suite

Linux/MacOS, VIM, Git, Docker

Primary Languages & Frameworks

Elm, JavaScript, Lodash FP, NodeJS, MySQL

Asurion (Dec 2014 - Jan 2015)

Senior Groovy Developer
Contract: Organizational unit of approximately 178 employees, including the incredible team with which I was privileged to work, was sadly eliminated after one short month.

eLynx (Nov 2014 - Dec 2014)

Senior Software Engineer
1 Month Contract: I provided assistance in transitioning software acquired from acquisition of Medallion Analytics. This was essentially guidance and a continuation of the activities performed at Medallion.

Medallion Analytics (May 2012 - Oct 2014)

Software Architect

(Medallion was acquired by eLynx in October of 2014)

Description

Developed mortgage loan package processing systems. In particular, designed and created a system for disassembling, reordering, and auditing closing packages submitted by various means in PDF format. At the core of this design was Apache Camel (not to be confused with OCaml, alas) which materialized various Enterprise Integration Patterns, enabling a message and event oriented system and providing a flexible abstraction by which data was exchanged with various organizations.

  • Implemented integration patterns as Camel routes

  • Developed particular data manipulation in Camel processes using JVM languages Groovy, Scala, and occasionally Java

  • Managed modules in Karaf (OSGI) upon which Camel is built

  • Created various other associated services and applications in JEE

  • Rigorously practiced TDD

Role

Architect and Implementer

Methodology & Quality

Enterprise Integration Patterns, TDD, JUnit, Mockito

Platform & Tool Suite

Linux (Debian/Redhat), Maven, VIM, Git

Primary Languages & Frameworks

Bourne Shell, Camel, Groovy, JEE (Glassfish), Jenkins, JMS (ActiveMQ), Java, JSON, Karaf (EIP/OSGI), MDB, Nexus, Perl, REST, Scala, SOAP, SQL, Spring (IoC), Velocity, XSL-FO, XSLT, YAML

Summa (Oct 2011 - Apr 2012)

Software Developer (Contract)

Concise/FI360 Contract
Description

Enhance client’s existing fiduciary web application.

Role

Developer

Methodology & Quality

Test Driven Development (TDD)

Platform & Tool Suite

Ant, JUnit, Mercurial, SQL Server, Subversion, WebLogic Application Server

Primary Languages & Frameworks

J2EE, Java, JavaScript, JDBC, JSP, JQuery, Perl (custom code generation) SQL

Platinum Solutions (Feb 2009 - Oct 2011)

Sr. Software Engineer

CNS Project (FBI)
Description

Common Name Search. Being "Common" in two senses of the word. It addressed difficulties associated with searching of common names and it was a service common to several different systems. Included in the scope of this project was the retrofit of an existing system to make use of CNS.

Role

Architect and Software Lead

Methodology & Quality

Aspect Oriented Programming, Enterprise Application Architecture Patterns, Enterprise Integration Patterns

Platform & Tool Suite

Linux, Vim, MVS, JCL, z/OS, Ant, Git, TDD, Tomcat, Jetty

Primary Languages & Frameworks

C++, C, COBOL, JMS, Java, Perl, REST

EIMS Project (FBI)
Description

Created a REST endpoint for the CJIS Enterprise Identification and Management Service (EIMS). Also produced DataPower services, the XSLT work for which was developed and tested independently of the appliance itself.

Role

Developer

Methodology & Quality

Domain Driven Development

Platform & Tool Suite

Linux, Vim, Ant, DataPower, Git, Jetty, Spring, Tomcat

Primary Languages & Frameworks

Hibernate, JAXB, JAX-RS, Perl, REST (JAX-RS), SAML, SOAP, XSLT

Lockheed Martin Corporation (Jan 2008 - Feb 2009)

Software Engineer, Staff

OneDOJ Project (FBI, DOJ)
Description

Lead Software Engineer and Architect on the OneDOJ (formerly RDex) task for the FBI Criminal Justice Information Services on behalf of the United States Depart of Justice.

Role

Architect, Mentor, and Software Lead

Methodology & Quality

Aspect Oriented Programming, TDD

Platform & Tool Suite

Ant, Git, Vim, Grails, Jetty, Subversion

Primary Languages & Frameworks

Acegi, Groovy, Java Web Services, Java, LEXS, LEISP, Perl, SOAP, Tomcat, XML/XSLT

Newbold Technologies (Feb 2007 - Jan 2008)

Sr. Software Engineer

Description

Enterprise-scope software account integration and control system for centrally administrating disparate software services as needed by multi-site hospital/healthcare system.

Role

Architect, Mentor, and Software Lead

Methodology & Quality

Domain Driven Development, TDD

Platform & Tool Suite

Linux, Vim, NHibernate, Nant, NUnit, NMocks, Subversion, CVS

Primary Languages & Frameworks

C#, Mono (.NET on Unix/Linux), Castle Windsor (Inversion of Control), Castle Monorail (.NET MVC Framework), Java, Saxon, XML/XSLT

Lockheed Martin Corporation (Feb 2006 - Feb 2007)

Software Engineer

IAFIS Project (FBI)
Description

HTTP integration of the EFCON and ITN segments of the FBI Criminal Justice Information Services Integrated Automated Fingerprint Identification System (IAFIS).

Role

Sole Designer and Implementer

Methodology & Quality

Test::More test framework

Platform & Tool Suite

Linux, Vim, Apache

Primary Languages & Frameworks

C, Perl, C ←→ Perl Integration, Apache, Mod-Perl

Grant Street Group (Jun 2005 - Feb 2006)

Software Developer

Description

Web-based financial auction applications built on a LAMP architecture.

Role

Development and technical support

Platform & Tool Suite

Apache, MySQL

Primary Languages & Frameworks

Linux/OSX, Vim, Perl, Perl DBI, JavaScript, D HTML

NDCHealth (Oct 2003 - Jun 2005)

Sr. Software Engineer

Description

TechRX products for prescription processing and workflow.

Role

Developer and QA Engineer

Methodology & Quality

Developed in-house Java testing framework

Platform & Tool Suite

Linux, JUnit, Autoconf, CVS, Sybase

Primary Languages & Frameworks

Java, C, Curses, Perl, Bourne Shell, XML/XSL, SQL

Development Dimensions International (Jun 2000 - Jul 2003)

Software Engineer

Description

Web-based multi-tiered LAMP skill assessment systems

Role

Development

Methodology & Quality

SCRUM

Platform & Tool Suite

Apache, Autoconf, CVS, Linux, Oracle, PostgreSQL, SQLserver, Vim

Primary Languages & Frameworks

Asp, C++, DHTML, ODBC, Perl, SQL, XML/XSL

ANSYS, Inc. (Apr 1991 - Jun 2000)

Developer and QA Engineer

Task Summary
  • Created regression testcases for flagship Finite Element Analysis code

  • Created software development support tools

  • Created testcase library management system enforcing control policy and work flow

  • Platform LSF Administration

  • Developed remote software license key system (over SMTP)

  • Created Ansys GUI components

  • Designed and implemented distributed cross-platform system featuring:

    • System build process

    • Management, revisioning and automated processing of site specific patches and modifications

    • Configuration control and revisioning for site specific language specifications

  • Designed, implemented and maintained ISO9000 certified document management system, including WYSIWYG HTML editor

  • Development process metrics monitoring and visualization applets

Methodology & Quality

Continuous Integration

Platform & Tool Suite

Autoconf, CVS, Apache, M4, RCS, SCCS, UNIX (several variants), VMS

Languages & Frameworks

Bourne Shell, C, C++, CGI, C Shell, Fortran, Java, Perl, SMTP, Tcl/TK, X11