Hello! My name is Mahdi Almusaad. I am experienced in OpenGL graphics programming and cross-platform development. This self-hosted website serves as a showcase of my projects and a collection of blogs to document programming history and guides, particularly in the C programming language.

Feel free to contact me for any questions.

Blogs


See my latest blogs on all things programming:

Creating Programs with OpenGL

When you use a phone or a computer, you may be curious to know how they actually render graphics on to your screen. The simple answer is that they use a graphics library, with the specific variant depending on the operating system. You may not be surprised to know that Windows uses Microsoft's DirectX, while MacOS/iOS uses Apple's Metal graphics library, while most other OSs use some combination of OpenGL (standard and ES) and Vulkan...

Full blog - Creating Programs with OpenGL

Robust Program Design - What to do when malloc fails?

If you have been writing C for any amount of time, you probably know the malloc function. It takes in a number of bytes, and returns a void pointer to some "allocated memory". But it can also fail in case no memory is available, in which case no allocation occurs and it returns a NULL pointer...

Full blog - Robust Program Design - What to do when malloc fails?

Projects


Read more about my self-developed projects in the dedicated page.

Procedural World Generator

A procedural open-world game written in C and OpenGL, made to be efficient without compromising on features.

Blocky world with trees, a river and a cloudy, starry night sky

Portable C utilities library

A portable C utilities library to get rid of #ifdef's from your code and simplify the development of portable software with a wide variety of features including efficient networking, threading and system information retrieval.

Modern C Math Library

A header-only general mathematics library designed as a modern addition to the standard C mathematical library with linear algebraic structures, improved RNG and Perlin noise generation.