Eric Wittmann
Senior Principal Software Engineer
Phone: (203) 744-9727
GitHub: EricWittmann
About Me

Over 20 years as a professional Software Engineer/Project Lead with experience in the full lifecycle of software design, development, testing, and deployment using diverse tools, technologies, and techniques.

Technical Skills
Java
SQL
TypeScript/JavaScript
HTML/CSS
Python
Angular
React
Kubernetes/OpenShift
Docker/Podman
Servlet/J2EE/JPA
REST APIs (JAX-RS)
Vert.x (Async Java)
Quarkus
Spring/Spring MVC
Maven/Ant
Git/SVN/CVS
Tomcat/WildFly/Jetty
XML/XPath/XQuery (SOA)
Swagger/OpenAPI
Eclipse/WebStorm
Education
Yale University (1998 - 1999)
Master of Science in Computer Science
Bucknell University (1994 - 1998)
Bachelor of Science in Computer Science
Work Experience (click job for details)

Working in the JBoss Middleware division as the open source (upstream) project lead for several projects including S-RAMP (later renamed to Artificer), DTGov (design-time governance), APIMan (API Management), and Apicurio (APIs and Schemas).

Primary Skills: Java, TypeScript, HTML/CSS, SQL, maven, git, WildFly, Quarkus, React, Angular, Vert.x, APIs, OpenAPI, OpenShift
  • Project lead for Apicurio, an open source community organized around tools for APIs and Schemas. Primary sub-projects include Apicurio Studio and Apicurio Registry.
  • Project lead for APIMan, an API Management solution with full management UI (Angular 1) and separate API Gateway (JAX-RS+WildFly or Vert.x).
  • Served on the Eclipse Microprofile technical committee for the Microprofile OpenAPI sub specification.
  • Served on the Oasis technical committee for the S-RAMP specification.
  • Major contributor to the DTGov project, a design-time governance solution that coupled a custom UI with jBPM workflows.
  • Primary contributor to the S-RAMP project (later renamed Artificer), a SOA artifact repository (J2EE application with GWT/Errai UI).
  • Guided/mentored more junior engineers on the team.
Developing a wide range of solutions to serve the IT needs of Yale University, including open source public events calendaring (Bedework), Identity and Role management, and SOA/ESB initiatives.
Primary Skills: Java, SQL, HTML/CSS, maven, svn, JBoss, SOA, GWT
  • Supervised a small team of primarily Java software developers responsible for a range of applications such as CAS (central authentication server), Portal, Calendar, and IDM (Identity, Access, and Role Management).
  • Designed/architected a new J2EE/GWT application for provisioning accounts and roles within the university.
  • Customized and deployed the Bedework open source calendaring software to serve Yale's public events calendaring needs.
  • Added a number of features not present in Bedework, including page caching, additional administrative functions, automatic provisioning of new calendars, etc.
  • Served on the Bedework project's Steering Committee and currently serve as the committee chair.
Developing server technology and tooling, using Java Enterprise technologies, for BPEL (Business Process Execution Language) technologies. BPEL is an XML based process orchestration language. The ActiveVOS product includes an enterprise BPEL runtime engine (a J2EE application) and a visual Designer (Eclipse based IDE).
Primary Skills: Java, SQL, SOA, XML/XPath/XQuery, ant, svn
  • Created a unit testing framework for testing BPEL processes (called BUnit) – this framework was later added as a major feature of the product.
  • Created an Eclipse build framework for validating and indexing web service resources (BPEL, WSDL, Schemas, etc…) – this framework was later added as a major Designer feature.
  • Designed and implemented the BPEL process state persistence layer for saving the state of a running BPEL process to a data source (extended to support failover/recovery).
  • Implemented support for two XML-based databases as persistence engines: Software AG’s Tamino XML database and the open source eXist XML database.
  • Developed workflow extensions to the BPEL engine based on the WS-BPEL4People and WS-HumanTask specifications. This allows people to participate in BPEL orchestrations.
  • Implemented support for XPath, XQuery, and JavaScript expressions within BPEL processes.
Working as a senior engineer on a J2EE "Telecommunications Cost Management" application. The application helped companies reduce their telecommunications spend by importing billing data, managing inventory, and analyzing usage costs.
Primary Skills: Java, SQL
  • Responsible for the Assurance subsystem, which analyzed large amounts of billing data and report problems or billing discrepancies.
Working as a designer and implementer of both a Java based server product as well as a C++ based, Windows client application. Mirror Worlds Technologies had two products, both based on a "time-centric" content management software paradigm envisioned by Yale professor David Gelernter. The server was a groupware/collaborative product that allowed multiple users to store, retrieve, and share documents through a web browser. The client application was a utility that installed on a single user’s Windows PC and allowed the user to search for their "stuff".
Primary Skills: Java, HTML/CSS, JavaScript, C++, Ant

Server Projects

  • Co-designed a front-end (user interface) custom MVC infrastructure using servlet and JSP technology.
  • Designed and implemented a plug-in command architecture using packaged JAR files and custom class loaders. The system allowed server administrators to add functionality to the server without restarting it.
  • Designed and implemented a unique dynamic view of search results using HTML/JavaScript.
  • Wrote an indexing module based on the Lucene Indexer. This module enabled the server to function on a greater number of platforms, because it was written completely in Java.

Client Projects

  • Implemented a custom user interface class library using SDL (a cross platform drawing library). This included the creation of a custom widget set, along with some integration with the Windows GDI (font rendering, tool tips, etc…).
  • Used the C++ API binding of the server’s Soap/XML programmatic interface to allow the client application to communicate with the server. This feature extends the client application beyond its intended use of searching only a single user’s files.
  • Leader of a team that designed and prototyped a next generation 3D interface to the client. The prototype used OpenGL to render search results as a three-dimensional stream of data.