I'm Niki 👋, I'm studying programming at 42Lausanne and have a passion for it, most especially when it's a group endeavour.
Here are some of the projects I'm most proud of:
A single page site for playing multiplayer games of pong, as well as community management, friends, chatrooms and spectator mode. The backend uses Nestjs for the server, PostgreSQL for the database and Prisma as an ORM to communicate between the two. The frontend uses React for the user interface Reactrouter to get SPA client side routing, with TanStack Query v4 for state management. The styling was done using the TailwindCSS design system. A five person project [git repo]
A http server that support POST, GET and DELETE, cookies and session management, and a configurable CGI, examples provided in php, python and bash. The server uses the kqueue
api for request multiplexing, the GCI execution is also added to the queue for a seamless no hang experience with multiple concurrent requests.
A three person project [git repo]
A 3D ray-tracing rendering engine built from the ground up using the minilibx for a basic X-Window api. It supports basic primitives, Plane, Sphere, Cone, and Cylinder, as well as texture mapping images or a configurable checkerboard pattern. The engine also supports the Phong reflection model with shadows from multiple light sources and correct color mixing. Particular attention was given the optimization, mainly for the development experience, debugging the maths function for the various shapes was non trivial. Multithreading was implemented with pthreads
api and thought was given to the data-structures used.
A two person project [git repo]
A simplified shell, imitating the behavior of bash, in/out files, pipes, wildcards and control flow with && || ( ). Also includes a unittest framework written in bash, implemented to ensure correctness during development. A two person project [git repo]
Mandelbrot, Julia and Burning Julia fractal rendering, written in C
using a basic graphics library the minilibx. The complex number maths was custom implemented along with panning an zooming.
A solo project [git repo]
I love the fast paced goal oriented format of the GameJam/Hackathon, the team dynamics and the mission to compleat a project. For all of my submissions I took the role of programmer and used GoDot, chosen for it's excellent documentation and solid browser performance, and used it's GDScript, a python like language for development.
Event: UPsi Jam 2.0 A physics based game with falling balls and mechanics in place to direct them to your opponent for them to deal with. A four person team [git repo] [itch page]
Event: Global Game Jam Geneva 2023 A tower defense style game with a resource gathering phase. A massive nine person team [git repo] [itch page]
Event: LevelUp 2023 A story based dungeon crawler with branching options and specific text for various event combinations. A three person team [git repo] [itch page]
page last updated jan 2024
ps. if you notice any spelling errors or weird grammar, don't hesitate to tell me