professional software development
I've been employed as a software developer since Oct-1999, working for one of the largest and oldest global IT companies that created the Silicon Valley, an admired company culture, and eventually broke apart to become (among others) the seventh-largest software company in the world, then moved to a edutainment startup where I was one of the first 10 employees and among the first hired developers.
Here's a short overview of the products, technologies and software I've been involved with:
Jan-2024 - Aug-2024
Minecraft-based programming course "CodeQuest" for schools
- Revived abandoned Java-based Minecraft plugins and a Python API to build a robot-based interactive game that teaches programming to pupils.
- Python metaprogramming establishes a game loop around student-provided code that controls and interacts with the game story within Minecraft.
- A customized Jupyter notebook represents the IDE; I've implemented Python sandboxing via Linux user management so that user code doesn't disrupt the container hosting the game.
More...
May-2022 - Dec-2023
Minecraft logic engine plugin "ReLoAd" as a subscription service for young electronics geeks
- Adopted a prototypical code base, established and revamped agile development processes and automated testing, supporting a diverse development ecosystem of Linux, Windows, and MacOS.
- With a colleague, I rewrote the entire logic engine implemented in Java, pruning inefficient and cumbersome code and failed experiments, fixed bugs and vastly improved performance and stability while getting rid of half of the original code.
- Improved and generalized the GitHub-based CI/CD pipeline, extracting custom actions and adding caching of build artifacts and container base images, monitored the builds and server infrastructure, migrated server infrastructure from a legacy cloud management platform (Pterodactyl) to Kubernetes.
More...
Jan-2017 - Sep-2021
Cloud application configuration and coordination for ITOM Operations Bridge Suite
- Refactored a prototypical procedural Suite configuration application into a robust, object-oriented design that allowed major rework of the underlying architectural foundation while doing feature work and quarterly releases.
- Implemented orchestration of adding, removing, and reconfiguring individual Suite capabilities via asynchronous web service calls and a status engine that itself reports back consolidated status (in a Composite design pattern) to the Suite foundation.
- Third-level product support for Suite and Micro Focus Operations Bridge Manager legacy components.
More...
Feb 2016 - May-2017
Containerized downsized Monitoring component for a Hyperconverged Appliance
- Learned about Docker containers, implemented automated builds of container images and setup of Docker compose environments with 6 containers for development and testing.
- First steps with and troubleshooting in a Kubernetes private cloud environment that runs a virtual hyperconverged appliance comprised of multiple cross-company components.
- Implemented container installation variant of a large legacy application while maintaining the classic installation options via feature switches, preprocessing, and post-installation customizations.
- Coordinated and trained other remote teams on container technology, published shared functionality for reuse across the organization.
More...
Feb-2014 - Aug-2017
Monitoring Automation component for HP Operations Manager i, the next-generation Operations Management product
- Implemented Health Check server-based monitoring feature in a small Agile team, collaboratively working on the project's analysis and contributing enhancements to the Node Editor's UI and backend.
- Closed functionality gaps via command-line automation interfaces as requested by customers, refactoring legacy code and increasing code coverage along the way.
More...
Mar-2011 - Feb-2016
Content Management component for HP Business Service Management, a complex multi-product suite
Joined another developer to maintain and grow a component that was developed for the HP Operations Manager i product, but then got re-used and incorporated into the overall management suite comprised of multiple products which were concurrently and independently developed at multiple sites.
- Split off command-line utility to work on the application server, not the web server, using JMS for remoting to the back-end Grails application.
- Added abstraction for factory vs. custom content across the entire stack to enhance customizability and enable multi-tenancy for a planned SaaS offering. This cross-cutting concern had to be spliced into all administrative Grails backend services and controllers. The Flex frontends all needed similar visualization and wiring. The main challenge was avoiding duplication even though much historical baggage had already accumulated, and there were three different techniques of communicating with the backend (REST with hand-made XML, JAXB-generated XML, and BlazeDS), and a mixed Flex 3 / 4 frontend implemented with various architectures (Cairngorm, Parsley, Presentation Model).
- Implemented new file format (consisting of existing XML structure now in a ZIP file with referenced attachments), re-wrote import functionality in HTML and integrated a preview feature.
- Implemented additional filtering of Artifact trees, improved stability and maintainability, fixed last remaining visible bugs.
- Content trim down of legacy Artifacts, coordination with second-party teams to phase out support, implementation of custom upgraders.
More...
Jul-2009 - Jun-2011
Event integration adapter for HP Operations Manager i, the successor of a leading management suite
Drove the use case analysis with all stakeholders and contributed to the planning and design of the first release, then focused on build, installation and consumption of major internal components during the second release. Shared responsibility for the implementation together with five fellow developers, and acted as the liaison for the sole component that was consumed by another offsite team.
- Contributed to web-based management UI implemented in DHTML, Adobe Flex and a Apache Tomcat 6-based web container Java backend using BlazeDS and Spring.
- Implemented two JNI wrappers for native functionality and oversaw the multi-platform build and packaging.
- Refactored the build process to remove duplication, streamline development, and allow for easy consumption of dependent in-house packages.
- Created elaborate, multi-platform application installer and designed the upgrade strategy.
- Channeled back many fixes and defect reports against the internal installer framework which caused the discovery of outdated components that severely affected the Windows/x64 platform, and lead to the eventual re-assignment of the framework's maintenance to another team in another site.
More...
Jun-2005 - May 2008
Incident data and process connector between the HP OpenView Service Desk service management system and 3rd-party vendor systems, especially SAP Solution Manager
After participating in the initial analysis and collaboration with another big company to develop an official web service interface, I initially only worked part-time on this product, which then consisted of an evolved prototype developed by a hodgepodge of developers. My contributions to the product included:
- Implementation of Java 1.4 support and self-test tool that exercised a third-party system via a SOAP web service interface and the host system via a proprietary Java interface.
- Refinement of shared components for tracing, logging and configuration handling.
- Implementation of Java connector via Apache Axis (version 1, later 2) running in an Apache Tomcat 5.5 web application server.
- Upgrade to incompatible new host system interface, then parallel support of a completely different new (acquired) host system.
More...
Jan-2000 - Jul-2005
Internal configuration and deployment component for HP OpenView Operations for Windows, a leading application management suite
I first worked together with a senior developer, then alone on this component for five releases. It was closely related and (among others) consumed by the SAP monitoring plugin mentioned below. In contrast to that product, the target audience were fellow development teams (who were located in other sites around the world).
- Implementation and refactoring of C++ prototype into maintainable code.
- Configuration plug-in implemented as ActiveX control with MFC, running under Microsoft MMC.
- Design and implementation of simple file transfer and remote execution mechanism through WMI, which is Microsoft's implementation of the WBEM standard. Enabled consumption as a framework, a C++ library or a Windows command-line application. I designed an object model and extension points for the framework.
- Support for various Unix flavors and shells for the remote location.
- Automated test suite implemented partly in C++, partly via a mock DCOM object that was rapidly coded in Microsoft J++ and used a socket connection to a Java mock driver and test oracle. (Yes, freaky, but also highly effective.)
- Creation and maintenance of hypertext specification, manual and API documentation.
More...
Oct-1999 - Jun-2006
SAP R/3 monitoring plugin for HP OpenView Operations for Windows, a leading application management suite
I worked in a team of about 5 other developers on this product for seven releases, with a release cycle of roughly one year. During that time, I covered various areas:
- Porting of X/Motif applications to Microsoft Windows NT 4.0, using Visual C++ 6 and Microsoft Foundation Classes.
- Bugfixes and enhancements to a huge pile of legacy multi-platform C code.
- Developed tracing and logging framework and library to be used throughout the product.
- Developed pluggable encryption and syntax verification components in DCOM technology.
- Implemented SAP discovery module in Perl.
- (Un-)installation scripts in Windows shell script and VBScript.
- Introduced unit testing in Perl and C++.
More...
Ingo Karkat, 28-Mar-2009, last update 23-Sep-2024