Alan Karimullah


Résumé (two-page)



This website contains information supplement to my résumé.


I actively create programs in my spare time. Some show graphical results of mathematics, some are solvers or macros for small games, and some are games themselves. I also create tools to help myself with images and files. The programs below are ones with something interesting to show in screenshots.




Project ideas

Mandelbrot/Julia zoomer with C++ and CUDA

I am currently creating a Mandelbrot/Julia zoomer in C++ and CUDA. It is the successor to my current largest program, the Mandelbrot/Julia set image generator. My GPU is extremely fast with 32-bit floating-point operations, but you can only zoom so deep. My next step is to experiment with different multiple precision arithmetic libraries to see which one works best on my GPU. I will have to use CUDA libraries or attempt to port CPU libraries to CUDA.

Virtual reality fractals

This is the coolest project I plan to tackle. I will have to learn the math behind some 3D fractals like the Mandelbulb, but I already have experience with ray tracing, which you need to generate these fractals.

Extreme word search generator

I already created a word search generator, but I would like to make an "extreme" one that tries to fit as many words as it can onto the grid using a genetic algorithm. I got this idea when a speaker who was invited to Citigroup (my third co-op/internship) talked about genetic algorithms. They can be used to find near-optimal solutions to difficult problems (e.g. the Travelling salesman problem). I also learned about them in my Introduction to Artificial Intelligence class!

Photo viewer

I don't like many photo viewers because they cover parts of the image with translucent panels, make GUI elements appear whenever you move the mouse, or simple things like not allowing you to move between the first and last images... so I'll make my own! I'll also be able to add any custom features I want.


Bachelor of Mathematics, University of Waterloo
Major in Computer Science
Minor in Combinatorics and Optimization
Minor in Computational Mathematics
Co-operative Education Program

Courses taken