Practicing software engineering, I have been involved in designing and developing highly scalable heterogeneous systems. I have taken part in crafting high-performance applications as well as cross-platform solutions, on premise and in the cloud. My interests include insights from data, machine learning, multi-paradigm and domain-specific languages, distributed systems, automated software engineering and portable software. I have work as well as teaching experience in software architecture, data pipelines, web technologies, functional and logic programming. Besides being affiliated with companies including IBM, LogMeIn, Ericsson and Nokia, I have run various open-source projects. I have team leadership experience in an agile context, and enjoy speaking and writing on technical subjects. Having a diverse background, with both academic and computer software industry experience, I am able to apply my previous knowledge to solving new and complex problems.
Open-source contributions
Besides being affiliated with for-profit companies, I have run various open-source projects. Check out the complete list of repositories on GitHub and BitBucket. Some of my open-source projects are showcased below.
sigplus
sigplus adds photo and multimedia galleries to a Joomla article with a simple syntax. It takes a matter of minutes to set up but comes with a vast range of options for advanced users.
Despite its versatility, sigplus is completely free. It is a full-fledged product with all features included, there is no need to buy a commercial professional version for extra features or purchase club membership to unlock additional privileges. Since its publication in the Joomla Extensions Directory in March 2010, sigplus has been rated the best extension in the Photo gallery category. Needless to say, if you find sigplus useful, we appreciate a donation.
frugally-deep
frugally-deep is a small header-only library written in modern and pure C++ to run the prediction (forward pass) of a neural network model trained with Keras and Python but without linking your application against the TensorFlow library. It re-implements a (small) subset of TensorFlow, i.e. the operations needed to support prediction, leading to a much smaller binary size than linking against TensorFlow.
I have contributed to the implementation of several layer types including Conv1D, GRU, CuDNNGRU, LSTM, CuDNNLSTM and Embedding as part of our efforts with IBM Watson Media.
Joomla extensions
Products released as part of these projects have been top-ranked by their user community, including several Joomla extensions:
- sigplus image gallery (which incorporates the boxplus pop-up window and the slideplus image rotator)
- showplus image slideshow
- boxplus stand-alone pop-up window extension
- metaudio audio and music library
- BibTeX formatter
Expertise
Fields where I have over 10 years of experience:
- Software design, architectural and design patterns
- Applied research
- Mentoring and team leadership
Paradigms and programming languages I use (or extensively used) in daily work:
- Multi-paradigm languages
- C++ (C++11/14/17 with Standard Template Library and Boost)
- Declarative languages
- SQL
- Interpreted (script) languages
- Python
- JavaScript and web technologies
Fields where I have approximately 2-5 years of (recent or less recent) experience: (Even while I do not necessarily use these programming languages in daily work, I have a strong command of them and able to pick up specifics quickly.)
- Object-oriented languages
- Kotlin
- PHP Hypertext Preprocessor (Joomla CMS system)
- Compiled languages
- C
- Script languages
- MatLab (procedural and object-oriented)
- TypeScript
- Declarative languages
- Logic languages
- Prolog (SWI-Prolog) including clp(fd) (Constraint Logic Programming over Finite Domain)
- Query languages
- Structured Query Language
- Logic languages
Fields I was acquainted with either during my academic years or in corporate projects:
- Object-oriented languages
- C# (Windows Forms, ASP.NET)
- Java Standard Edition and Enterprise Edition
- Scala
- Other languages
- Go
- Java/JavaScript cross-compilation with Google Web Toolkit
- Pascal
- Vendor-specific SQL extensions
- Microsoft SQL Server T-SQL
- Oracle PL/SQL
- Language grammars (ANTLR, Spirit)
- Functional languages
- Alice
- Haskell
- OCaml