I'm doing software development professionally and as a hobby for over 30 years now. And OpenSource software for almost as long, hence a a lot of my stuff can be found on the Interwebs, e.g. on GitHub.
Business
ZeeZide / Freelance:
Working on projects/products for ZeeZide GmbH,
as well as doing freelance work.
If you got some interesting project, feel free to
contact me.
Timeframe: 2015-today
Technologies:
SwiftUI,
SwiftNIO,
and more.
Undisclosed:
Major car manufacturer.
Owning/developing a Swift SDK for secure communication with a headunit over
CarPlay
protocols.
Protoyping various car automation features.
Timeframe: Aug 2022-Dec 2023
Technologies:
CarPlay,
External Accessory framework,
Network.fwk,
Siri Intents,
Apple Maps.
Undisclosed:
Helped a startup implement an iOS
Network Extension,
including a Network.framework based HTTP proxy.
Timeframe: Nov 2021
Technologies:
Network Extension,
Network.fwk,
http_parser,
SQLite.
Undisclosed:
Major car manufacturer.
Implemented a Swift SDK for secure communication with a headunit over
CarPlay
protocols.
Timeframe: Sep/Oct 2021
Technologies:
CarPlay,
External Accessory framework,
Network.fwk.
Past for iChat.app:
Simple but fancy viewer for iChat chat log files on macOS Big Sur.
Written in SwiftUI.
Timeframe: 2021
Technologies:
SwiftUI,
QuickLook,
Swift.
Battery Status for HomeMatic.app:
Simple iPhone app reporting on the battery of
HomeMatic home automation devices.
Timeframe: 2021
Technologies:
SwiftUI,
HomeMatic,
Swift.
Shrugs.app:
A native macOS client for the Slack messaging service.
Written in Swift, using UXKit/AppKit.
Timeframe: 2018-today
Technologies:
Slack API,
AppKit,
UXKit,
Swift.
HMScriptEditor:
A macOS app for testing and running
HomeMatic scripts.
Timeframe: Q4 2018, Nov 2021
Technologies:
HomeMatic,
AppKit,
SwiftUI.
Undisclosed:
Helped a tech startup to implement a roaming solution,
primarily working on the iOS SDK and the iOS application parts.
Server side Swift running on the client, yay!
Timeframe: 2016-2018
Technologies:
Noze.io,
Swift,
UIKit
Apple/iCloud:
CalDAV/CardDAV client for Microsoft Outlook,
Chrome bookmarks syncing extension.
Timeframe: 2010-2013
Technologies:
CalDAV,
CardDAV,
C,
C++,
SQLite,
MAPI
Outlook plugin:
I worked on building a
MAPI message store provider
for
Microsoft Outlook
which stores Outlook entities into
GroupDAV
/ CalDAV
/ CardDAV
capable WebDAV servers.
Well, ZideOne has ceased operations. Don't ask.
Timeframe: 2007-2009
Technologies:
C,
C++,
SQLite,
MAPI,
GroupDAV,
WebDAV,
CalDAV
Chamber Management System:
I design and lead the development of a web based management system
for a chamber of pharmacists in Germany. The system is built
in Java on top of OpenGroupware.org technology.
Timeframe: Nov 2007-Jul 2009
Technologies:
OGo,
Go,
OpenOffice.org,
Java
OpenGroupware.org:
For
SKYRIX Software AG
I architect, implement and maintain extensions to the OGo groupware
server.
This includes work across all layers of OGo, from the application
logic through protocol layers up to the web interface.
Timeframe: 1996-2008
Technologies:
C,
Objective-C,
Linux,
PostgreSQL,
SOPE
SMS/MMS Platform:
An enterprise scale SMS/MMS transaction and service platform which is
in use by various large media customers, MNOs and SMEs.
My primary work is on system reliability, mobile handset detection and
on-the-fly MMS repurposing.
Timeframe: Feb 2006-Sep 2007
Technologies:
MMS,
SMIL,
C,
Objective-C,
Java,
Tomcat,
Linux,
PostgreSQL
PostgreSQL Cluster:
To secure the data in a large scale deployment of electronic
datarooms
we configured a
PostgreSQL
warm standby replication cluster using the write ahead logging
facility of the server.
The datarooms are accessed using a set of
Ruby on Rails
web applications.
Timeframe: Apr-Aug 2007
Technologies:
PostgreSQL,
Ruby on Rails
Card Management System:
For a large German trust center I architect and lead the development of
a system to securely manage applications for qualified signature /
encryption cards (health professional cards).
Prototypes implemented in SOPE, later moved to Java/Go.
Timeframe: Feb 2004-Apr 2007
Technologies:
Java,
Jetty,
Go,
SOPE,
HPC,
Smartcards,
OpenSSL,
MySQL
Agenor:
For a large French ministry I designed and led the development of a
massively scalable groupware server. Designed to serve 60.000 ministry
workers.
The project kicked off the ScalableOGo OpenSource project which is currently
being continued by Inverse.
Timeframe: 2004-2005
Technologies:
C,
Objective-C,
PostgreSQL,
GroupDAV,
WebDAV,
CalDAV
Instant OGo:
Designed and implemented an administration web interface for various
Linux services. A proprietary OGo component which is in use in the
excellent
Instant-OGo
product.
Timeframe: 2003
Technologies:
OGo,
Objective-C,
Linux,
SOPE
SKYRiX Publisher:
Enhanced the SKYRIX web application server (now OGo) with an enterprise
content management system. Was in use at a large plant research institute
to maintain thousands of documents in a structured way.
Timeframe: 2002
Technologies:
OGo,
Objective-C,
SOPE,
Content Management
OpenSource / Sparetime
Lighter.swift:
A set of technologies applying code generation to access
SQLite3
databases from
Swift,
e.g. in iOS applications or on the server. Like SwiftGen but for SQLite3.
Super fast and fully typesafe.
Timeframe: Apr 2022
Technologies:
SQLite,
Swift Package plugins.
ViewController:
An approach to deal with application/navigation state within SwiftUI
applications. Present as you used to!
Timeframe: Apr 2022
Technologies:
SwiftUI,
MVC.
docc2html:
Swift package to read
DocC
archives and a tool to export them as a static website.
Timeframe: Jul 2021
Technologies:
DocC,
Swift.
Mio:
A macOS port of the
Nio chat
client for Matrix.
Timeframe: Mar 2021
Technologies:
Matrix,
SwiftUI,
Swift.
NWHTTPProtocol:
An HTTP protocol parser (aka NWProtocolFramer) for the
Apple Network.framework, an implementation of the
Transport Services API (taps)
in Swift.
Timeframe: Oct 2020
Technologies:
Network.framework,
taps,
http_parser,
Swift.
5 GUIs:
A tiny macOS SwiftUI app that can detect the GUI technologies used in other
apps, i.e. whether they use Electron, AppKit, Catalyst, etc.
Timeframe: Oct 2020
Technologies:
LLVM,
SwiftUI
SwiftBlocksUI:
Slack
can be enhanced with
interactive dialogs and dynamic messages.
Buttons, Pickers, TextFields and more.
SwiftBlocksUI
is
SwiftUI
for Slack applications.
Timeframe: July 2020
Technologies:
Slack API,
SwiftUI,
Swift.
Direct to SwiftUI:
An adaption of an old
WebObjects
technology called
Direct to Web for
SwiftUI.
Instant CRUD
apps, configurable using
a declarative rule system,
yet fully integrated with SwiftUI.
Timeframe: August 2019
Technologies:
SwiftUI,
Swift,
DirectToWeb.
SwiftUIRules:
SwiftUIRules
adds a declarative rule system to the
SwiftUI
Environment feature.
Think: Cascading Style Sheets or Direct to Web for SwiftUI.
Timeframe: August 2019
Technologies:
SwiftUI,
Swift,
DirectToWeb.
SwiftWebUI:
At
WWDC 2019
Apple announced
SwiftUI.
SwiftWebUI
is bringing that to the Web ✔️:
The missing ☑️.
Timeframe: June 2019
Technologies:
SwiftUI,
Swift NIO,
Swift
SwiftPM Catalog.app:
A macOS frontend to the
Swift Package Index.
Timeframe: Q4 2018
Technologies:
SwiftPM,
AppKit,
UXKit,
Swift.
SwiftObjects:
An experiment to figure out how the
WebObjects
API might look like in
Swift.
Also:
An Introduction to WebObjects, in Swift.
Timeframe: June 2018
Technologies:
WebObjects,
Swift NIO,
Swift
SwiftyLinkerKit:
This is an easy way to work with
LinkerKit
components in
Swift.
Includes
SwiftyTM1637,
a driver for the TM1637 7-segment chip,
as well as an IRC
LinkerKit chat bot.
Timeframe: Jun 2018
Technologies:
LinkerKit,
SwiftyGPIO,
Raspberry Pi,
Swift
swift-nio-irc:
SwiftNIO IRC
is a
Internet Relay Chat (IRC)
protocol implementation for
Swift NIO,
a basis for building your own IRC servers, clients and bots,
a sample IRC server
(including a web client),
as well as
some IRC bots,
written in the
Swift
programming language.
Timeframe: 2018-today
Technologies:
Swift NIO,
IRC,
Swift,
WebSockets
swift-nio-redis ✭
Redi/S:
Includes a
RESP
protocol implementation for
Swift NIO,
a convenient
Redis client library
for Swift,
and a fast Redis server written in Swift:
Redi/S.
Timeframe: 2018-today
Technologies:
Swift NIO,
Redis,
Swift
µExpress:
A tiny but useful Express-like web framework built upon
Swift NIO,
the new async-IO Swift framework by Apple.
Popular blogpost in which we build µExpress:
A µTutorial on Swift NIO.
Timeframe: 2018-today
Technologies:
Swift NIO,
Swift
SwiftXcode:
Use
Swift Package Manager
directly within in Xcode.
Ready-to-go Xcode templates for
iOS apps, macOS tools, SwiftNIO and Kitura.
No more swift package generate-xcodeproj!
Timeframe: 2018-today
Technologies:
Xcode,
Swift Package Manager
PL/Swift:
Custom SQL functions and types for the PostgreSQL database server,
written in the Swift programming language.
That is what PL/Swift does.
Timeframe: 2018-today
Technologies:
PostgreSQL Extensions,
Swift
UXKit:
Write code that works on both, UIKit and AppKit.
Not only useful for deployment to macOS, but during development,
reduce simulator/device testing annoyances.
Drives
CodeCows
/
ASCII Cows.
Timeframe: 2017-today
Technologies:
UIKit,
AppKit,
Swift
Swift Server Project HTTP APIs:
Wrote a
GCD based, asynchronous implementation
of the proposed, official Swift Server API.
Maybe this gets pulled, maybe not. Probably not :-)
Timeframe: 2017
Technologies:
GCD,
Swift
ApacheExpress:
mod_swift
on steroids.
Host Swift within Apache, that is, reliably :-)
Stay tuned, a preview is available, but something bigger is in the works.
Timeframe: 2017-today
Technologies:
Swift,
Apache,
mod_dbd
VueXcode:
Want to edit Vue components in Xcode, but they just show up in black&white? Trying to change the file type using the 'Type' popup, but Xcode can't remember? Use VueXcode.
Timeframe: 2017
Technologies:
Swift,
Vue.js
AppKit, Xcode, Cocoa
ZeeQL:
Standalone Swift ORM / database access library primarily inspired by EOF,
and in consequence CoreData, adding some ActiveRecord concepts.
Can be used on Swift server, mobile or desktop.
Timeframe: 2017-today
Technologies:
Swift,
EOF, CoreData,
SQLite3,
PostgreSQL,
mod_dbd
dockSwiftOnARM:
Docker images
for the Swift programming language
that work on ARM platforms, specifically the
RaspberryPi.
Including Server Side Swift via
mod_swift.
Timeframe: 2017-today
Technologies:
Swift,
Docker,
RaspberryPi
mod_swift:
A toolkit to write native Apache modules in Swift.
Includes a subset of the Connect/Express framework of
Noze.io
which makes it very easy to write modules.
Instead of reinventing the HTTP server, hook into something that just works
and is battle proven.
Timeframe: 2017-today
Technologies:
Swift,
Apache,
JSON, HTTP
Noze.io:
The "Server Side Swift aS a Service" toolkit 😉
Noze.io are Node.js-like, evented I/O streams for Swift.
Implements core Node modules like leftpad, net or http,
as well as some external ones, like Connect and Express.
Timeframe: 2015-2017
Technologies:
Swift,
GCD,
JSON, HTTP, Streaming
SwiftSockets,
SwiftyHTTP,
SwiftyExpat:
SwiftSockets is kind of a demo on how to integrate Swift
with raw C APIs.
More for stealing Swift coding ideas than for actually
using the code in a real world project.
It also comes with a great Echo daemon as a demo, it's
always there if you need a chat.
Timeframe: 2014-2016
Technologies:
Swift,
GCD,
Expat, XML, HTTP
Go:
Go is a set of Java frameworks to build powerful Ajax, web and web service
applications. Comes with a lot of WebObjects compatibility as well as
support for Zope concepts.
Timeframe: 2005-2010, 2014-today
Technologies:
Java,
Tomcat,
Jetty,
Eclipse,
JDBC, HTML,
WebObjects,
Zope
ScalableOGo:
A groupware server designed for massive scalability. The result of the
Agenor project. This is a completely stateless application with a novel
storage concept which allows high scalability despite using a RDBMS
storage backend. For 60.000+ users.
Timeframe: 2004-2009
Technologies:
GroupDAV,
PostgreSQL,
SOPE,
Objective-C
GroupDAV:
During a
KDE/OGo meeting
we designed a new groupware protocol to allow the lots of OpenSource
groupware servers to connect to OpenSource groupware clients.
Timeframe: Dec 2004-2009
Technologies: WebDAV, iCalendar, vCard, Calendaring
OpenGroupware.org:
I'm the project lead of
OGo
and coordinate the small but excellent community. Doing talks on
various events.
Currently working on the Java port of OGo, OGo/J.
Timeframe: 1996-2009
Technologies:
C,
Objective-C,
Linux,
PostgreSQL,
SOPE
SOPE:
Initially a clone of the WebObjects 4.5.1 web application framework,
SOPE was enhanced with concepts from the modern Zope environment.
SOPE is the application server used by OGo as well as SOGo.
Includes a large collection of modules:
XML parsers, iCalendar/vCard processing, NIO streams, EOControl,
MIME/IMAP4 support, LDAP wrappers, database drivers, the appserver
itself, etc
Timeframe: 1996-2009
Technologies: Objective-C, HTML, WebObjects, Zope,
Database C Libraries,
MIME, IMAP4, LDAP, EOF, XML-RPC, SOAP, SAX, DOM
Remote iTunes:
Prototyped a small application to use the Nokia 770 as a remote
control for iTunes running on an iMac.
Timeframe: 2005
Technologies:
Maemo,
Linux,
AppleEvents, Cocoa,
Objective-C
libFoundation:
A clone of the OpenStep Foundation library, similar to gnustep-base.
Initially developed by Ovidiu Predescu and friends. Took over maintenance
around 2000. Worked on adding support for garbage collection.
Timeframe: 1996-2009
Technologies: GCC, Objective-C, Boehm-GC
GNUstep:
Worked on various GNUstep subprojects. Improved the gnustep-make library,
assisted the creation of the GSWeb framework, enhanced the GNUstep database
library with additional adaptors and features. Bugfixes in the base library.
Timeframe: 1996-2009
Technologies: GCC, Objective-C, Make
libobjc:
Designed and assisted implementation of garbage collection support for
GNU Objective-C in cooperation with Ovidiu.
Timeframe: 1997
Technologies: C, ObjC Runtime, GCC
GTKKit:
Implemented an Objective-C wrapper around the GNOME gtk+ GUI library.
Modelled after AppKit where possible, integrated NSRunLoop with the X11/GDK
event handling.
Timeframe: 1998
Technologies: C, gtk+, X-Windows
Apache ObjC:
An Apache module to enhance the server with regular Objective-C
NSBundle packages.
Technologies: Apache API, C, ObjC runtime
NGPython:
Wrote an Objective-C / Python bridge for use in the Skyrix 3 web application
server. Full support for Java-Bridge like 'jobs' files and a Pythonic API
to Objective-C.
Timeframe: 1998-2000
Technologies: CPython Embedding, ObjC runtime
NGJavaScript:
Wrote an Objective-C / JavaScript bridge for use in the form engine of the
Skyrix 4 server. Allowed users to write small applications using HTML and
JavaScript inside the groupware system.
Timeframe: 2000-2003
Technologies: C, ObjC Runtime, Mozilla SpiderMonkey
mod_ngobjweb:
A non-streaming Apache module to forward HTTP requests to backend application
servers. Capable to distribute requests across cluster nodes with a central
registry daemon (snsd). Support for sessions stored in volatile memory.
Now part of SOPE.
Timeframe: 1996-2009
Technologies: C, Apache 1/2 API
CocOOo:
Small AppKit application to view OOo files. Loads the XML stored in
the OOo file, transforms it into HTML which is then displayed in a
WebKit view.
Timeframe: 2003
Technologies: AppKit, WebKit, OpenDocument Format, XSLT, Objective-C