Professional Capacity

3ds Max

Work revolves mostly around performance.

Stingray

Point Cloud research & development.

SFLPhone

Research & Development.



Personal Projects

wsay

Windows equivalent of macOS say. Simple command line text-to-speech with easy file output, voice selection and more.

bench_util

A small C++ benchmarking framework.

fea_getopt

C++17 utf-8 functional argument parsing.

fea_state_machines

A buffet of C++17 state machines. Includes a very fast small fsm, a full hierarchical fsm (statechart) and experimental designs.

fea_flat_recurse

Flat breadth and depth graph traversal/gathering functions.

fea_unsigned_map

A collection of slot maps and hash maps optimized for unsigned keys.

fea_utils

Useful utility functions to do basic things in c++. Includes helpers for file reading and writing (per line, binary, string), string functions (split, starts_with, ends_with, contains, utf conversions, etc), reader/writer mutex wrappers, very basic parallel_for and parallel_task, etc.

defensive_cpp

A collection of compile-time validation rules to harden your classes. Compile-time errors with nice error messages to prevent silently loosing implicitly-declared constructors or default constructors, to enforce the rule of 5, to ensure a type is fast inside a vector, enforce move only, etc.

ns_getopt

Functional C++ argument parsing. A single header that provides the necessary constructs to quickly add long options, short options, raw arguments (filenames) parsing to your software. A help command is automatically generated for you. Supports flags, required, optional, default and multi arguments. The library calls your provided lambdas, functions or member functions when an argument is detected.

Voronoi Eve

An Eve Online map generator prototype based on the Voronoi algorithm. It uses cppRestSDK (Microsoft Casablanca) and it’s asynchronous REST calls to gather Eve Online information using their public APIs. You can choose between Euclidian, Manhattan and Chebyshev distances, or a mix of them. A great example of C++ REST usage.

ParseWineLog

This is a simple, for fun project to parse wine logs. These logs are usually > 1GB, and print all the function calls and returns when using WINEDUBEG=+relay. While debugging various applications, I needed to clean the logs to identify non-returning calls as these are usually (but not always) the cause of a crash. So this is a simple parser, that uses a thread pool and functor “call” objects to parse the log in a multi-threaded way. Conclusion: Multi-threading this is overkill, as it is the read function that needs optimizing, not the parsing :)

DeadSimpleMarkovSentences

This project started out as a framework to parse books (project gutenberg or others) and generate sentences using the learned word chains. It now has an IRC client embedded, which allows it to connect to twitch chat channels, learning and speaking on twitch. The results are quite abrasive and hilarious.

osxScrollReplace

is a simple and small utility to replace your scroll wheel up/down with a keyboard key. Respectively “p” and “l”. This was created after switching to a OS X only setup, where AutoHotKey is unavailable. I use this when playing Dota.



Open Source Contributions

SDL_GameControllerDB

Maintainer of the community sourced gamepad mapping library.

fst

FST is a library of highly optimized containers and algorithms created by Alexandre Arsenault. It has a few containers directly geared towards video game engines. I’ve helped design the APIs for containers. I also contribute SIMD (SSE2) algorithms to the library. It is an ongoing collaboration.

OBSStudio

I have contributed mainly to the client part of the OBS cross-plateform rewrite. I see a lot of potential in the software, but have had to step down as my vision doesn’t align with its creator’s.

SFLPhone

I was hired as an intern at Savoir-Faire Linux to work on the OS X and Windows port of SFLPhone. It is an open-source, enterprise grade, VOIP phone. I worked on the CoreAudio backend and have prototyped some WASAPI features. I also spent a lot of time working on the client framework switch.



Unity Asset Store

NoScope Stats Panel

This Unity Extension helps you find resource heavy GameObjects or mis-behaving scripts by recursing the selected object’s hierarchy and finding stats. It is much more intuitive than the builtin profiler, but less powerful.

It is perfect when you start analyzing a new game, or a port, and you have no idea what is doing what. It also makes for a great companion to the builtin Unity Profiler. Finally, you can also use it while development to quickly spot mistakes, making the final optimization stages easier.

Unity Internal Icons

A simple Unity3D extension that shows all the loaded Editor builtin icons. It is useful when making your own extensions or plugins. Simply double click an icon name to copy it. Use the icon in your own Editor classes with EditorGUIUtility.IconContent().



OS X Ports

ValyriaTear

Valyria Tear is an attempt at creating a free (as meant in the GNU General Public License) J-RPG game.

I was approached by Bertram25 to port the SDL game to OS X (since I had experience in other projects). It was quite straight-forward, and since the switch to SDL2.0, should be even easier.

ManaPlus

ManaPlus is a free OpenSource 2D MMORPG client for Evol OnlineThe mana world and similar servers.