I'm an independent software engineer writing open-source software and providing services related to software development. I'm focusing on writing and designing high performance code in C++ that can take advantage of CPU specific optimizations, multithreading, and JIT compilation. I'm focused on increasing the performance and reducing the memory footprint of existing software and writing new optimized software from scratch. I have started several open-source projects in this area that are successful and that should demonstrate my deep understanding of hardware and how to write highly-optimized software for it.
Please check out the Services page if you are interested in services that I offer as an independent software engineer. I'm available for both short-term and long-term contracts that involve consultations, writing new code, and improving the existing one. I'm also preparing workshops to help companies with training people to write better code in terms of runtime performance, so please contact me if you are interested in these kinds of services. B2B contract is possible.
I'm an open-source enthusiast and founder of the following open-source projects, which I have developed in my spare time:
AsmJit is a lightweight library suitable for low-latency machine code generation written in C++. It can generate machine code for X86, X86_64, and AArch64 architectures. It has a type-safe API that allows C++ compiler to do semantic checks at compile-time even before the assembled code is generated or executed. It also provides an optional register allocator that makes it easy to start generating machine code without a significant development effort.
AsmJit has been used extensively in research and both open-source and commercial projects.
Blend2D is a high performance 2D vector graphics engine written in C++ and released under the Zlib license. The engine utilizes a built-in JIT compiler to generate optimized pipelines at runtime and is capable of using multiple threads to boost the performance beyond the possibilities of single-threaded rendering. Additionally, the engine features a new rasterizer that has been written from scratch. It delivers superior performance while quality is comparable to rasterizers used by AGG and FreeType. The performance has been optimized by using an innovative approach to index data that is built during rasterization and scanned during composition. The rasterizer is robust and excels in rendering complex vector art and text.
The following projects are smaller projects I have developed to either showcase the use of AsmJit or to solve some problems I was having at some point in time:
I have worked on the following projects (which got open-sourced at some point) as part of my professional career. Commercial projects that are not open-source are not listed here as there is no way to verify my contribution to them publicly.
Sneller is a SQL query engine written in Golang designed for querying unstructured data with SQL expressions. The execution engine (called VM in the source code) is written completely in x86_64 assembly with the use of AVX-512 extensions to make it possible to process gigabytes of data per second per core. The engine works with JSON, but JSON is converted to Amazon ION binary format and then compressed by Iguana, which is a new compression algorithm that was designed to take advantage of SIMD instructions (AVX2 and AVX-512) and was also developed by Sneller. The query engine supports advanced features such as joins, advanced filtering, regular expressions, math operations, and vector search.