Tales about Aviation, Coaching, Farming, Software Development

Stephan Schwab - Software Developer

Programming languages: proficient in Java (J2EE, JBoss, WebSphere, Tomcat, Jetty, Spring Framework family, Spring Boot), JavaScript (ECMAscript) (browser and NodeJS) and JS frontend frameworks (VueJS, React, Angular and similar). Can do Ruby (Ruby on Rails), C, C++ and Objective-C. Used BASIC, Pascal, Perl, Python, Modula-2, TypeScript, VisualBasic (and developed extensions), x86/68000 Assembler. Can still read COBOL.
Databases: SQL, stored procedures (MS SQL, MySQL, MariaDB, PostgreSQL, Oracle), NoSQL (MongoDB)

Search engines: Apache Solr, Lucene, full-text search in databases

World Wide Web: Hypertext (HATEOAS), HTML, CSS, able to create a website with no framework
Concepts: messaging (Pub/Sub, IBM MQ, RabbitMQ, ActiveMQ, MQTT); Event-Based Architecture; Object-Oriented Programming (OOP); Domain-Driven Design (DDD); Clean Code; functional, procedural, structured, declarative programming paradigms. Familiar with UML, state/flow diagrams.
Networking: Ethernet, TCP/IP, DNS, application protocols (HTTP/HTTPS, SMTP, NNTP, other RFCs), routing protocols (BGP, OSPF), DHCP, Firewalls, Cisco routers, LoRa, Internet of Things, LoRaWAN, built and ran an ISP (xDSL) and datacenter
Industrial and agricultural automation: sensors, solenoid valves, actuators, MQTT, Home Assistant, event/rules engines
Working knowledge of Lean (inkl. TPS), Kanban, Scrum (since 2006), DevOps, and the original Waterfall model by W. Royce, mob and pair programming
Test-Driven Development (TDD, BDD, ATDD with Cucumber, Behave) and CI/CD (trunk based) advocate.
Development on Linux since 1993 (v0.98), Windows since 1989 (v2.11), Windows NT since 1993 (v3.1), MacOS since 2001; Infrastructure as Code (Ansible, Chef, Terraform); Virtualization (Docker, Kubernetes, Linux KVM, Vagrant, VirtualPC, VMware)
Conceptually familiar with machine learning, artificial intelligence, neural networks. Heavy user of GitHub Co-Pilot and ChatGPT as assistants.

Trusted by these organizations

Since 2006 I have provided professional services in different roles to the following international clients. See project history for details below.

Germany

  • Mercedes-Benz
  • Versandhaus Walz
  • Deutsche Bank
  • AXA Insurance
  • Virtual Solutions
  • Huawei
  • Webtrek
  • OBI Smart Technologies

USA

  • Independent Health
  • Nationwide Insurance
  • Serials Solutions
  • Cloud9 Analytics

Russia

  • Alfa Insurance
  • Alfa Bank
  • Bank Otkritie

Other countries

  • PH7 (Japan)
  • Raiffeisen Bank (Balkans)
  • Huawei (China)
  • RealWorld Systems (Panama)

Project History

Software development is typically a “team sport”. Highlighting individual contributions and personal performance is actually a negative sign. Therefore I avoid saying “I did X” but prefer to mention what “we did”. That does not take away any credit from my own contributions to that team effort. Due to my extensive experience, I happen to be in a leading role for a topic frequently and people like to follow my advise or recommendations.

Client contacts and further details for the projects listed are available on request.

2024

Development of an agroforestry planning and design tool. ChatGPT is used extensively for research about plant species and their properties as well as a means to speed up development tasks.

  • Fully automated build and deployment (CI/CD)
  • Trunk-based development
  • Java
  • Spring Boot (MVC, REST, Data)
  • Thymeleaf
  • htmx for HTML5/CSS3 frontend instead of a framework
  • HTML5, CSS3
  • MongoDB
  • ChatGPT for subject matter research

Client: Caimito Services, USA

Industry: Agriculture

2024

Evaluated, planned and installed IoT gateway and end nodes to monitor soil humidity, temperature and conductivity to provide automated irrigation to a Miyawaki style forest co-financed by the European Union's LIFE program (via LifeTerra foundation).

  • Created dashboards and automations for power monitoring, to control water pumps and other devices
  • Did the electrical installation and software. The system is solar powered and off the utility grid.
  • Internet of Things Network
  • LoRaWAN
  • NPC
  • BLE
  • Home Assistant
  • Dragino, Milesight, Shelly, and SMA devices
  • Docker, Docker Compose

Client: Caimito Agile Life, Spain

Industry: Agriculture

2021 - 2022

Worked 100% remote with an international DevOps style group on an internal application to manage SonarQube in combination with GitHub Enterprise.

  • Backend development in Java
  • Frontend development in JavaScript with Vuetify
  • Maintenance of Terraform scripts and Helm charts for Kubernetes deployment
  • Fully automated build and deployment (CI/CD)
  • Code reviews and use of Pull Requests (PR) via GitHub Enterprise
  • Developer support for .NET group
  • Coaching of Junior Developers
  • Java
  • Quarkus
  • Quarkus Native, GraalVM
  • Hibernate
  • Maven
  • VueJS
  • Vuex Store
  • TypeScript
  • Vuetify
  • SonarQube
  • Cypress
  • Docker
  • Microsoft Azure
  • Kubernetes on Azure, Ubuntu Micro K8s
  • Terraform
  • Helm charts
  • Keycloak
  • Microsoft .NET
  • Microsoft C#

Client: Mercedes-Benz Bank, Germany

Industry: Financial Services

2021 - 2023

Development of frontend application and marketing website CaimitoEU

  • JavaScript
  • VueJS, VueRouter
  • HTML5, CSS3
  • TailwindCSS
  • Consumption of RESTful APIs
  • PayPal integration for payment processing
  • Web shop with shopping cart and product listing (overview, details)
  • Internationalization (i18n) in English, German, Spanish
  • Trunk-Based Development with feature flags and Continuous Deployment
  • Cypress
  • Keycloak (OAuth2)
  • Docker, Docker Compose
  • NGINX
  • Multiple GitHub Actions workflows for automated build and deployment (CI/CD)
  • Set up and maintenance of production, staging and test environments via Ansible (Debian based virtual servers)

Client: Caimito Agile Life, Spain

Industry: Agriculture

2021 - 2023

Development of ERP system GranjaEU for smallholdings

  • Product design, software development and UX design
  • Restful API development for external users
  • Internationalization (i18n) in English, German, Spanish
  • Test-Driven Development, Rapid Prototyping
  • Trunk-Based Development with multiple daily deployments to production
  • Delivery of emails via JavaMail via Google SMTP services
  • Multiple GitHub Actions workflows for automated build and deployment (CI/CD)
  • Set up and maintenance of production, staging and test environments via Ansible (Debian based virtual servers)
  • Java
  • Spring Boot (REST, Data, Mail, Thymeleaf, Security)
  • Flyway
  • JUnit
  • Maven
  • JavaScript
  • VueJS
  • Vuetify
  • HTML, CSS
  • Cypress
  • Keycloak (OAuth2)
  • Docker, Docker Compose
  • MongoDB
  • PostgreSQL
  • NGINX

Client: Caimito Agile Life, Spain

Industry: Agriculture

2020

Backend for Social Network

  • NodeJS
  • JavaScript
  • VueJS
  • HTML, CSS
  • Functional programming with promises and lodash/fp
  • Coached Senior JavaScript Developers on test-driven development (TDD)
  • Cucumber.js
  • Chai
  • JEST
  • Integration of several external services like OneSignal, Firebase
  • JSON Web Token Authentication
  • Geographically distributed team with team members working from individual locations in Europe, Japan, and USA.
  • Support for debugging an IOS application

Client: PH7, Japan

Industry: Social Networks

2011 - 2012

Created rmq - A Ruby Wrapper for the IBM MQ Series client API

  • Ruby
  • Cucumber
  • IBM MQ Series Message Broker
  • SOA based application in an integration project
  • Coached a large group of developers and testers on Acceptance Test-Driven Development with Cucumber and my tool rmq

Client: Independent Health, Buffalo, New York, USA

Industry: Insurance

2011

Vastly extended RAutomation per client request. RAutomation is a tool to automated Windows desktop programs for testing purposes and enable to use of Cucumber in the context of Acceptance Test-Driven Development.

  • C, C++
  • Windows Win32 API
  • DLL development with Visual Studio
  • Ruby
  • Cucumber
  • Automation of desktop application via Win32 API calls and accessibility features of Windows

Client: Nationwide Insurance, Columbus, Ohio, USA

Industry: Insurance, Financial Services

Code on GitHub

2009 - 2011

In an embedded Senior Developer Advocate role participated in an agile transformation spanning 23 teams and personally provided technical and organizational coaching to 6+ teams and about 80 individuals.

  • Java, J2EE
  • IBM Rational Application Developer
  • IBM Websphere
  • Spring Framework
  • Spring Batch
  • Oracle SQL
  • Ruby
  • Cucumber
  • Pair programming with Developers and Testers
  • Mob / Ensemble programming
  • Business Analysis
  • Story Mapping
  • Executable Specification (ATDD)

Achieved to deliver to production a prototype application within weeks and in time for the first presentation to the internal customer.

Client: Nationwide Insurance, Columbus, Ohio, USA

Industry: Insurance, Financial Services

2008 - 2009

As Senior Software Developer co-created the Summon product. The product ingests academic reference data from different sources, normalizes it and creates a search index for use by a frontend application.

  • Java, standalone
  • Apache Solr
  • Apache Lucene
  • Apache Camel
  • XML
  • Apache ActiveMQ
  • Mentoring remote Chinese team members
  • Remote work with an on-site week every 3 months for team coordination

Client: Serials Solutions, Seattle, Washington, USA

Industry: Academic Publisher

2008

Contractor role to uplift technical skills of software architects and team members on agile development practices including test-driven development and continuous integration.

  • Java
  • Ruby
  • Cucumber
  • Spring Framework
  • IBM Websphere
  • Oracle SQL

Client: Nationwide Insurance, Columbus, Ohio, USA

Industry: Insurance, Financial Services

2007 - 2009

Developed the agile lifecycle management tool Caimito One Team for distributed Scrum teams.

  • Java
  • JavaScript
  • HTML, CSS
  • Thymeleaf
  • MySQL
  • Hibernate
  • Spring Framework
  • Software activation via cryptographic key
  • Deployment as a on-premises software

Client: Caimito Development, Panama City, Panama

Industry: Software

2007

Built Cloud9's Messenger product (webapp) (from inception to deployment to production) using Scrum as methodology.

  • Java
  • JavaScript
  • HTML, CSS

Client: Cloud9, San Mateo, California, USA

Industry: eCommerce

Previous work

I develop software since the early 1980s and have used numerous development tools and programming languages on many different operating systems and environments.

In the 1990s I created one of Germany's early Internet Service Providers (my own company). Besides being co-founder I developed internal applications for provisioning and billing, deployed and configured routers and other devices to connect customers to our network.