Here are some things I worked on:
-
Dynamic DNS using DigitalOcean API
Helps connect to a local network device that has a dynamic IP.
Written in Rust.
Tested with Github Actions.
Built with docker.
Deployed using docker-compose.
Runs on Linux and macOS.
-
Qt CMake Port - Initiative to build Qt6 using CMake instead of qmake
Working as project lead and developer, implemented building blocks to allow easier porting from qmake to CMake, fixed the CMake subprojects to build on Windows, Linux and macOS, investigated usage of vcpkg Conan and hunter as source of 3rd party dependencies, investigated iOS support in CMake, contributed upstream patches to CMake and vcpkg, improved python pro2cmake conversion script.
-
qbs - C++ build tool
Worked on improving macOS and iOS support (framework support, multi-arch builds).
-
Qt For Python - CPython bindings for the Qt 5 framework
Worked on build system integration and packaging (setuptools and CMake) for the main desktop platforms (Windows, Linux, macOS), as well as implementing features like QML type registration from Python, and lots of bug fixing (memory management issues, ref count issues, mismanagement of various C++ types in CPython, etc).
-
Qt WebEngine - Qt API exposing the Chromium browser
Mostly debugging and fixing issues, occasional security patch back-porting, Chromium version rebasing.
-
Qt Creator - Cross platform IDE for C++ development
Various small fixes for the macOS / lldb debugger integration.
Implemented a context-aware selection expansion mechanism for C++ (it’s a mouthful, I know), similar to the one showcased in Jetbrains IDEs here.
-
Node Convert - a Drupal 6 / 7 PHP module for converting nodes between different content types
Developed, tested, packaged, released.
-
Native Debugger Commands cheatsheet - A table of commonly used commands for native debuggers (gdb, lldb, cdb / WinDbg)
The page above has the same content as the official lldb page here, with a third column for Windows debuggers. Still a work in progress.
-
Qt For Python / macOS / CPython reverse engineering war story - Just one of my war stories trying to fix an obscure bug
This involved disassembling macOS’s AppKit framework with Hopper, to try and figure out why using a newer build of CPython triggered different behavior of display updates of an NSView backed by layers, which caused Qt’s QWindows not being redrawn.