Consulting

I am available for consulting projects from time to time. This page documents the areas in which I feel most qualified, which currently include:

I also have experience with some specific C and C++ libraries, which are listed near the end.

E-mail inquiries to consulting at haerdin dot se.

Status as of 2020-03-21: I will be available after summer. Until then I will be busy at Umeå University.

Broadcast

I have several years worth of backend experience in the broadcast world, which includes knowledge of many container formats and details such as timecodes, metadata, field order, color primaries, transfer characteristics, gamma etc.

FFmpeg

I am involved in maintaining parts of FFmpeg, mainly the MXF, LXF and codec2 codebases. Code simplicity and correctness are primary concerns. If you have a project that needs integrating with the FFmpeg command-line programs or its libraries (libav*) then get in touch.

Functional Mockup Interface (FMI) standard

The Functional Mockup Interface standard specifies a way of packaging simulations into .zip files called Functional Mockup Units (FMUs). As the primary developer of FMIGo!, a set of Free Software tools aimed at the FMI standard, I can assist with coupling simulations and integrating FMIGo! into your simulation backend, or general FMI development.

Software quality

Software quality is a rather broad category, the areas I focus on break down into the following subcategories:

Continuous integration (CI)

If you need anything done involving things like porting an existing build system to CMake, or getting a CI system up and running, then this is an area in which I am well acquainted. Anything involving build and test automation.

Optimization

Have some C or C++ programs that need to be sped up? No problem. Often more easily done on GNU/Linux than Windows, both both are possible. Porting serial programs to make use of multiple core or CPUs is also possible in many cases.

Fuzzing and formal verification

Fuzzing and formal verification are two quite time-consuming processes, but are useful for discovering and preventing parsing bugs. This is important for any system that accepts untrusted data from the Internet, or untrusted files on disk.

Libraries

If you have a need for integration with any of the following sets of C and C++ libraries, let me know:

Contact

E-mail inquiries to consulting at haerdin dot se.