Resume

I’m a creative and experienced Senior Software Engineer & Systems Analyst who can handle all parts of the development life cycle. A Solutions focused full-stack developer, that takes a holistic approach to software development, incorporating DevOps, project management, business analysis, and a firm understanding of the data into my working on projects.

I exceed expectations on the toughest problems, with creative problem-solving skills and the ability to code in any language, using the one most appropriate for the task. My primary languages are Java for the back-end, JavaScript for the front-end, Perl for scripting, and C# for Windows. I excel at Systems Integrations and API development.

I can work on the fine details and still see the forest through the trees while using Agile and DevOps best practices to get the job done. I enjoy going from concept to production on projects, and when needed, I handle Database, DevOps, and SysAdmin tasks, both in-house and using AWS.

I remain a natural solo project developer but also work on Agile teams. I’m known for my creative problem-solving skills. Many comment, “It seems there are few technical problems Jeff cannot solve.” I’m a believer in continuous learning and very good at teaching myself and others new skills.

Software and Web Development

I’m polyglot with computer languages and use the one most appropriate for the task.

Languages (Frameworks): Java (Vert.x, Spring, Hibernate, drools, BIRT, JSP), C# (.NET, ASP.NET), JavaScript (React, Redux, jQuery, Node.js), Perl (Dancer2, CGI), Ruby (Rails), PHP, Python (Django), VB.NET, C/C++, COBOL, Haskel, Lua, R (Shiny), Swift, GO

Web Technologies: HTML5, CSS3 (Semantic UI, Bootstrap), LESS, SASS, SVG, XML/XSL, DOM, JSON, RESTful, AJAX

Systems integrations

Data formats: XML, JSON, CSV and flat-files

Technologies: SOAP, WSDL, RESTful, XSLT, RAML

DevOps

Source control: Git (Bitbucket, GitLab, GitHub), Subversion

Build Tools: Maven, ANT, Webpack, NPM/Yarn, Gulp

CI/CD Tools: Shippable, GitLab, Jenkins

Testing Tools: Selenium WebDriver, Cucumber, JUnit, RSpec

Other: Docker, Ansible, Kubernetes (OKD, OpenShift)

Database and Big Data

Databases: Oracle, DynamoDB, PostgreSQL, MySQL/MariaDB, SQL Server, Redis, MongoDB, Cassandra

Applications: Hadoop, Solr

Systems Administration and Networking

Operating Systems: Linux (RHEL/CentOS, Debian/Ubuntu, Arch, Alpine), Windows, UNIX (Solaris, macOS, FreeBSD)

Cloud/Virtualization: Amazon Web Services, VMware, KVM

Server applications: Apache, Tomcat, JBoss, IIS, Exchange

Project Management and Business/Data Analysis

I take a holistic approach to IT/development, incorporating project management, business analysis, and a firm understanding of the data into my working on projects. I work with PM/BA resources when available and perform the management and analysis myself when it is not.

Since maintaining customer focus is vital in meeting their expectations. I try to understand customer needs, listening to functional issues and requirements. Provide information about what is available and possible with both open and closed source applications and proposed applications development. Then creatively match the technical solution to the stated problem.

Independent Developer

Pittsboro, North Carolina ~ August 2015 - Present

Open Library Hosting is a Sole Proprietorship started by myself, to provide open source hosted systems and "Software as a Service" solutions to libraries. I have also been working on developing SaaS applications for small businesses and professionals.

Software and Web Development
  • Develop SaaS web update app for small businesses using Java and Vert.x, for the back-end and JavaScript, React, Redux, and assorted Node-JS modules for the front-end with Semantic UI for CSS.
  • Develop SaaS Memory manager app for professionals using Java, Vert.x, JavaScript, React, Redux, Semantic UI and assorted Node-JS modules.
  • Develop SaaS reserves for libraries using Java, Vert.x, JavaScript and Bootstrap. Used BIRT viewer Java EE app for reporting with AWS Lambda doing the event based ETL to the reporting database.
  • Develop search app for libraries using BlackLight/Solr, Ruby. Created an extra service to add external API results to the Solr results with Lucene, Java, Vert.x.
  • Develop director service to enable institution specific SSO to the other SaaS services.
  • Used REST APIs for separation of the front-end and back-end in SaaS applications.
  • Web application customizations of Drupal and Moodle in PHP.
  • Web development; HTML5, JavaScript, CSS, and graphics design/creation.
  • Worked on docstore services as a backend replacement for OLE.
Systems integrations
  • Integrated OAuth into SaaS apps to enable sign in with Google credentials.
  • Implemented Learning Tools Interoperability (LTI) into reserves app for easy integration with Learning Management Systems.
DevOps
  • Create CI/CD pipelines with Shippable to monitor code changes in Bitbucket, build the applications, upload web artifacts to AWS S3 for CloudFront. It then takes the server artifacts and builds a new Docker image, that is pushed to Amazon ECR and deployed to ECS.
  • Create Docker images to use as base images in the CI/CD pipeline, and push to Docker Hub.
  • Use Maven for Java dependency management, running unit test, and building the server applications.
  • Automate front-end build using NPM/Yarn for node_modules package management, Gulp for Semantic UI’s CSS build. Use Webpack to run Babel and globalize, then bundle the Javascript and CSS.
  • Use RubyGems and Bundler for Ruby gems download/install and Rake for building within Docker.
  • Create Smoke test using Selenium WebDriver and Cucumber.
Database and Big Data
  • Use Amazon DynamoDB as a NoSQL database for web applications.
  • Developed DAOs to DynamoDB with AWS SDK for Java.
  • Used Amazon RDS with PostgreSQL for reporting framework.
Other
  • Setup and manage AWS EC2 servers, configure ECS cluster for running Docker images.
  • Configure AWS Lambda for running server-less code.
  • Configure AWS Virtual Private Cloud (VPC), CloudFront, and Load Balancer.
  • Manage Identity and Access Management (IAM), and monitor events/logs with CloudWatch.
  • Web application setup and hosting for Drupal 7/8 and Moodle.
  • Use Agile best practices to work on development projects.

Sr. IT Analyst
Library Systems & Integration Support

Durham, North Carolina ~ 2009 - Present

The Library Management System (LMS) or Integrated Library System (ILS) is an enterprise resource planning system for a library. At Duke I have worked with three different library management systems. The first is ExLibris Aleph, which is a vended solution Duke has used since 2005. The second is Kuali Open Library Environment (OLE), this is an open source, and community directed LMS. The third is FOLIO an open source replacement for OLE.

Although the LMS is at the core of the IT ecosystem research libraries use, there are many others systems that I support and/or integrate with. Next-generation Library Catalogs (Search apps) are one type I work with including; TRLN Endeca discovery application (a shared library catalog between Duke, NCSU, UNC and NCCU), BlackLight/Solr and ProQuest Summon. There are many other systems including Aleph Reporting Center (Cognos), Blackboard, Sakai, Duke’s E-reserves/course reserves system, ILLiad, Aeon and GFA to name a few.

“Jeff has been instrumental in keeping the systems under Discovery Services umbrella running at optimal performance. He's also the go to person for any complex technical problem that we encounter during the day to day operations. His skills in the areas of programming, system and application management, technical troubleshooting, enterprise application development are of the highest caliber.”
~2015 performance review
Software and Web Development
  • Created the Sync-app, originally a Java EE app to provide continuous data synchronization between Aleph and OLE. Now in Vert.x it serves two functions, bulk fixing of data issues in Aleph, and ETL to “Data Service Center”.
  • Created the Catalog Request System (CRS), a system for the Library Catalogs to make request and perform “My Account” functions against the LMS. This involves creating rules files using the LMS configurations. Then using API calls to the LMS combined with the rules to give the users an improved user experience.
  • Develop and maintain custom programs and SQL queries, to extend the functionality of Aleph or to provide ad-hoc reports based on complex data. Most of the custom programs are in Perl with varying levels of complexity. Perl is the standard language our team uses to extend Aleph.
  • Since the Aleph client is Windows only I have used C# and .NET for adding client side functionality.
  • Used Java to make API calls to a vendor’s web service to create new records from the XML results to add to Aleph.
  • Used C# and .NET for creating specialize printing solutions.
  • I have been involved in, creating an open source LMS written in Java and running in Tomcat.
  • Using my combination of technical and library knowledge to aid in OLE’s continuing development. Submitting patches, testing and adding functionality as appropriate.
  • Support the TRLN Endeca discovery application. This is an Oracle Endeca search application with a JSP/Java front-end.
  • I have also done research and prototypes for VuFind and BlackLight that are Solr based. Duke is currently implementing a BlackLight replacement to Endeca.
Systems integrations
  • Develop and maintain custom programs to interface the library systems with other campus systems and with external service providers. This includes patron loading from the university’s identity management, exporting data to the library’s assortment of Next-generation Library Catalogs, self-checkout machines, SAP, and the many vendor services the libraries use. When interacting with other systems I use appropriate standards to improve interoperability and code reuse.
  • Implementing integrations with other Duke systems.
  • ETL of records from our LMS to the TRLN Endeca discovery application.
  • I implement live circ status updates.
  • Duke also uses ProQuest summon that I provided ETL for.
  • The LMS is central to library operations and interacts with many other systems. I have used my IT knowledge and skills to integrate with many other systems. Aleph Reporting Center (Cognos), Blackboard, Sakai, Duke’s E-reserves/course reserves system, ILLiad, Aeon and GFA..
  • Use Sync-app for huge amount of work involved with exporting, converting and ingesting existing data into OLE, FOLIO, and “Data Service Center”.
DevOps
  • Create CI/CD pipelines in GitLab for automated deployment of CRS.
  • Use Docker for containerization of the systems creating “Server as code”.
  • Automate server configurations with Ansible.
  • Setup build server with Jenkins, Maven and Git for automating OLE builds.
  • Smoke testing of OLE using RSpec and Selenium WebDriver.
Database and Big Data
  • Develop and maintain SQL queries, to extend the functionality of Aleph or to provide ad-hoc reports based on complex data.
  • Worked with Oracle DB as an integral part of Aleph.
  • Setup and developed MySQL/MariaDB for OLE.
  • Creating the “Data Service Center”, exporting LMS data to a Hadoop data-lake with data-warehouse functionality for better reporting and analysis.
Systems Administration and Networking
  • Support ExLibris Aleph ILS system. Aleph is a large client/server application running on Solaris servers (now Linux) with an Oracle backend. It involves maintaining many system configuration tables in a highly customizable environment. Install vendor-supplied updates to the system.
  • Help automate the Aleph client rollouts by creating MSI builds.
  • I setup an Aleph pre-production server with very short notice and a difficult timeline. Saving the libraries money by enabling the failover server to run both pre-production and failover.
  • Helped the team with a major Aleph Upgrade. It was noted "Jeff played an important support role in helping get the upgrade done and should take pride in knowing that the version 20 upgrade was one of the smoothest upgrades the Library has seen with Aleph."
  • Troubleshoot network conductivity and performance issues, escalating to OIT for resolution.
Project Management and Business/Data Analysis
  • Work with staff and other stakeholders on major projects to ensure they go smoothly.
  • Look at user workflows to increase operations and productivity.
  • Fulfilling Duke's commitment as a Kuali OLE Partner, I have been playing a role in the development of OLE. I’m a technical lead and have served on many committees and teams, including: OLE Development, OLE Implementations, OLE Systems Integration and infrastructure Team, OLE Technical Council and OLE Testers.
  • I was active in the Technical Council of OLE, and acted as its co-chair and chair. I was able to tackle some critical issue regarding the development of OLE.
  • I have been an ongoing Endeca Operations Committee member and have served as chair of the committee. With the loss of TRLN’s technical staff I was the main technical person.
User Support and Training
  • Support end-users by researching and clarifying the operation of the system.
  • Work on tickets from RT, service-now or jira.
  • Lend expertise as needed, mentoring IT staff and provide training.
  • Giving presentations like “Deep Dive Into Kuali OLE” at the 2014 DLF Forum.

Technical Support Engineer

Research Triangle Park, North Carolina ~ 2006 - 2009

Provide technical support for NetApp products.

  • Provide assistance with NAS and SANs storage solutions in Windows, UNIX/Linux and mixed environments.
  • Resolve customer problems through the use of technical expertise, knowledge base, and any available tools, addressing them immediately or framing the case and escalating to the appropriate level of support.
  • Helping customers with their data protection and disaster recovery needs.

Electronic Services Manager

Syracuse, New York ~ 2001 - 2006

Manage all aspects of the Council’s Information Technology and was the technical liaison between the council and its members.

Software and Web Development
  • I developed Content Management Systems, Web Portals and Web Applications, using the language and technology that was best for the project, adding style and creativity along the way.
  • The council’s regional library catalog, using Java, HTML, CSS, with custom configuration files.
  • “Word on Women” a web/database application, I designed and developed using ASP.NET, C#, JavaScript, ADO/SQL, XHTML and CSS.
Database
  • Performed all DBA functions including managing SQL Servers and databases as well as security, backup/recovery and performance tuning.
  • Development of databases for client/server applications, using Access/SQL Server for internal databases, ASP/SQL Server for Web applications on Windows and MySQL on Linux.
Systems Administration and Networking
  • Installation and maintenance of the Windows and Linux/Unix servers, including hardware, operating systems and all related applications.
  • Administered the Councils website, Exchange server, regional library catalog, a web portal, and other networking services.
  • Maintain the office computers and a wireless computer-training lab, maintaining the highest security, reliability and functionality as possible.
  • I managed the network infrastructure including wired/wireless LAN, routers, switches and T-1 lines. This includes designing and installing all the network and telecom wiring when the council move to a new building.
  • Provided network security, firewall configuration, antivirus protection, and disaster recovery.
  • Provided network documentation.
Project Management and Business/Data Analysis
  • I perform all aspects of project management to ensure that the development, infrastructure and training projects have the desired outcomes.
  • Developed projects based on functional business requirements.
User Support and Training
  • I provided user support for staff and second level support to Council members to help solve technically challenging issues.
  • Develop and teach technical courses including Windows OS, Hardware 101, Hands-on XML and “How the Internet Works.”
  • Give presentations on emerging technologies at workshops and conferences.

Independent Consultant

Syracuse, New York ~ 1993 – 2001

Provide computer and network management to businesses.

  • Website and application design/development.
  • MS Access Database design/development.
  • Hardware troubleshooting, repairs and upgrading.
  • Operating system installation, troubleshooting and maintenance.
  • Network installation and maintenance.
  • Application support for standard software including MS Office and a variety of specialized applications.
  • Personalized software training.

Working on multiple collaborative projects, I consciously include team members in the decision-making process. Endeavoring to strike a balance between collaboration, effective problem solving and work efficiency. I remain a natural solo project developer but work on Agile teams in projects that require additional communication and input or are too large for one.

Wearing many different hats in the IT field, I’m known for my creative problem-solving skills. Many comment, “It seems there are few technical problems Jeff cannot solve.” This has led to other IT groups asking for advice or assistance with difficult or unusual problems.

I’m a believer in continuous learning and very good at teaching myself and others new skills. I have proven my self-directed learning by being at the cutting edge of new technologies and a reference many IT staff use to learn about the latest technical tools and processes.

Duke University Libraries is at an apex, a point at which several major projects are simultaneously colliding with and playing off each other. Jeff has generously served on two such projects and has done so with skill and grace that is difficult to match. He is collaborative when necessary; patient with those less technologically savvy than him; able to process and discuss the implications of important decisions; and perhaps just as importantly, always willing to share a friendly wave. All these traits, coupled with his prodigious coding talents, make him a worthy candidate for the 2015 Florence Blakely Award.

Microsoft Certified Systems Engineer ~ Windows 2000 (2002)

Syracuse University, CBIT ~ Network Engineer ~ MCSE Windows NT 4.0 (2000)

Syracuse University ~ Liberal Arts (1993)

Contact me