I'm an independent software engineer that offers commercial support for AsmJit and Blend2D libraries in addition to consultations and contracted work on any other project, be it open source or proprietary. I prefer to work on projects where performance matters and where C++ language is used for its efficiency and not for legacy reasons. I can use other programming languages too, like Python, JavaScript/Node.js, and Go, but I'm not actively looking for opportunities that would involve these languages without the use of C++.
Commercial Support
This section provides commercial support offerings for AsmJit and Blend2D libraries:
AsmJit
AsmJit is a stable library used by many individuals and companies. AsmJit is released under the Zlib license, which means that companies can use it freely in their products. Commercial support for AsmJit is meant to help both companies using AsmJit and AsmJit itself.
- Consultation - Consult the possible use of AsmJit before you start a project that uses it or during its development.
- Code review - Review of your code regarding the correct use of the library and proposal of possible changes that would make the code better and safer.
- Porting - Porting code that uses outdated AsmJit version to the newest available version.
- Priority bug fixing - Have you found a bug that has to be fixed immediately?
- New features development - Development of new features that would become part of AsmJit.
- New backends development - Development of new backends like ARM, MIPS, POWER, and RISC-V.
Blend2D
Blend2D is a beta product at the moment focusing on software-accelerated high performance 2D rendering. Commercial support for Blend2D is meant to help both companies using (or planning to use) Blend2D and Blend2D itself as the library still needs some work to make it on par with other 2D rendering engines in terms of features.
- Consultation - Consult the possible use of Blend2D before you start a project that uses it or during its development.
- Code review - Review of your code regarding the correct use of the library and proposal of possible changes that would lead to faster rendering.
- Priority bug fixing - Have you found a bug that has to be fixed immediately?
- New features development - Development of new features that will become part of Blend2D. There is a high-level Roadmap overview on the Blend2D homepage, but in general I'm open to implementing any feature that would make sense to be part of Blend2D.
If you don't need a commercial support, but you would still like to support these projects a donation would be appreciated as both projects were written in my free time.
Contracted Work
I'm also offering a contracted work in the area of software development, architecture design, and consulting. I'm expert in the following areas:
Cross-Platform C++
- Knowledge of the C++ language up to C++17 and a daily user of C++11
- Knowledge of operating system APIs including Windows, Linux, BSD variants, and Apple platforms
- Build systems and package managers including cmake, conan, and vcpkg
- Writing a production-grade code in C & C++ that can gratefully handle corner cases and errors
- Experienced and a daily user of tools like ASAN, UBSAN, and Valgrind
High-Performance C++
- CPU specific optimizations targeting SSE2, AVX2, AVX512, and NEON CPU extensions
- JIT compilation targeting X86, X86_64, and AArch64 CPU architectures
- Using multi-threading and atomic operations to implement possibly lock-free solutions in multi-threaded data processing pipelines
Other C++ Skills
- Using Emscripten to compile C++ code to JS/WASM so it can run within a browser
- Extending functionality of C++ applications with scripting languages by embedding virtual machines such as V8
2D Rendering Pipelines
- Design of 2D rendering engines, mostly CPU renderers that use SIMD and multi-threading
- Experience with 2D rasterization and composition pipelines
- Pixel effects (adjustments, color matrix, ...) and convolutions (blur, erode, dilate, ...)
- Text processing and rendering including deep understanding of TrueType and OpenType technologies
- Reading & writing vector images such as SVGs
Data-Processing Pipelines
- Data-processing pipelines and query engines (implementing SQL query engines, ...)
- Acceleration of binary format decoding / encoding by using SIMD instructions
- Acceleration of date-time processing, geo-hashing, and other common functionality used in databases and query engines
General Skills
- Ability to do both design & implementation and to team up with other engineers & take responsibility
- Experience with common development methodologies and a flexibility to adapt to any based on project needs
- Flexibility, not restricted to areas I have previously worked on
Note
My experience should be obvious from the projects that I have founded and from the list above. I'm only looking for new opportunities where I would apply my existing experience and specializations instead of doing generic things like front-end development. I'm pretty flexible though and I'm interested in new areas where performance is critical.
Availability
Since I mostly work on a contract basis I need to schedule new contracts in advance. This means that I should be contacted as soon as possible to be able to either create a new contract window or to decline in case that I'm fully allocated for a longer period of time. I would also note that I have many contacts to other smart people that I have worked with, so I can recommend others if I'm not available at the moment (or bring more people if necessary).
Important
I'm fully allocated, which means I only support open-source AsmJit and Blend2D projects at the moment.
Contact
You can reach me over the email (click) or connect via LinkedIn. Business meeting is possible in Prague, Czech Republic (EU).
Business Entity Information
Please wait until the information is displayed.