Developer experience

Practicing software engineering, I have been involved in designing and developing heterogeneous systems. I have taken part in crafting high-performance applications as well as cross-platform solutions. My interests include 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, 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

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

Besides being affiliated with for-profit companies, I have run various open-source projects. Products released as part of these projects have been top-ranked by their user community, including several Joomla extensions:

Check out the complete list of repositories on BitBucket.

Proficient

Paradigms and programming languages I use in daily work and fields where I have over 10 years of experience.

  • Software design, architectural and design patterns
  • Applied research
  • Multi-paradigm languages:
    • C++ (C++11/14 with Standard Template Library and Boost)
  • Interpreted (script) languages
    • Python
    • JavaScript and web technologies

Advanced

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
    • C# (Windows Forms, ASP.NET)
    • Java/JavaScript cross-compilation with Google Web Toolkit
    • PHP Hypertext Preprocessor (Joomla CMS system)
  • Imperative languages
    • Compiled languages
      • C
    • Script languages
      • Python 2/3
      • MatLab (procedural and object-oriented)
  • Declarative languages
    • Logic languages
      • Prolog (SWI-Prolog)
        • clp(fd) (Constraint Logic Programming over Finite Domain)
    • Query languages
      • Structured Query Language

Experienced

Fields where I am able to work individually but where I have no formal experience.

  • Object-oriented languages
    • Java Standard Edition

Intermediate

Fields I have been acquainted with either during my academic years or in corporate projects but where I have no major experience.

  • Java
    • Enterprise Edition
  • Vendor-specific SQL extensions
    • Microsoft SQL Server T-SQL
    • Oracle PL/SQL
  • Language grammars (ANTLR, Spirit)
  • Functional languages
    • Alice
    • Haskell
    • OCaml
  • Pascal