Projects


Spartan game entine GNU/Linux port (WIP)

Port of the Spartan game engine to the GNU/Linux operating system.

Skills learned:

  • Differences on Windows/GNU toolchains
  • Docker (used for build environments)

Userspace slab allocator (Finished)

Userspace slab allocator to investigate it’s usefulness. Project used as my end of degree project.

Skills learned:

  • Inner workings of the SLAB allocator
  • Low level userspace linux memory management
  • Writing skills

DTB Parser (Finished)

Command line utility for parsing DTB files.

Skills learned:

  • Inner workings of the Device Tree Blob format

PBR Renderer (Finished)

Simple PBR renderer using OpenGL for learning purposes.

Skills learned:

  • Cook-Torrance rendering model
  • Graphics programming
  • OpenGL API

liblinalg (Unmaintained)

Lineal algebra library that implements vectors and matrices of variable sizes and operations between them. Uses special instructions like SSE to accelerate those operations. Has a important bug when calculating the resulting matrix size.

Skills learned:

  • Vectorization using SSE instruction
  • Testing
  • Benchmarking

Latex document templates (Unmaintained)

Templates for LaTeX documents

Skills learned:

  • Advanced LaTeX

Latex document templates (Unmaintained)

Templates for LaTeX documents

Skills learned:

  • Advanced LaTeX

LMake (Unmaintained)

LuaMake or LMake is a statement based low level build system aimed to provide flexibility to modify all parts of how your binary is built. LMake is not a project generator, instead, invokes the compiler/linker when necesary.

Skills learned:

  • Merge request workflow for development
  • Use of modern C++ features like smart pointers