- I love turning an idea into funtional code, thinking about the implementation of projects and code-ideas gets me higly motivated
- Experienced in C-programming and in the process of becoming a great C++ programmer
- I love low-level programming languages as they give you a lot of freedom and if something doesn't work its entirely on you.
- Starting my last Codam Project (Transendence) in a few weeks, actively looking for a job opportunity for february.
- I occasionally give a CODAM workshop on starter-level python using the pixelcorp workshop
- I have a good understanding of C and CPP, I have used python for a few small projects but don't have a broad understanding of it.
-
Git: for all of my teamprojects we used repositories with branches and pull requests
-
Bash: I have been using the bash terminal since the start of CODAM
-
VScode: VScode is my main IDE for all of my projects.
-
LLM: I use a VScode wrapper called cursor to incorporate chatGPT into my code editor with an API key, this allows me to efficiently improve my code using AI.
This is where I display all of my CODAM projects. Codam is a school that is part of the 42-school network, which encourages peer-to-peer learning, self-study and core programming concepts in C & C++.
Minishell was the first team project and my first BIG coding project with many different parts. Working on minishell involved many complete project rewrites and gaining a deeper understanding of bash. Together with my project partner, we introduced our own vector data type in C to make parsing, expanding, and processing inputs easier. This project really forced me to make a good plan for the project architecture and to write robust code that was easy to update and rewrite where necessary.
cub3d was a team project, but because it could be easily separated into parsing and rendering, it felt more like a solo project. The project was very interesting as I implemented a custom raycasting algorithm, which was a big challenge but also lots of fun. The satisfaction of creating a working (simple) game that runs smoothly felt like an amazing accomplishment.
webserv is a team project where I collaborated extensively and gained a greater understanding of how websites and servers work. Webserv involves handling multiple server addresses and multiple clients, reading and interpreting an HTTP request, and generating an appropriate response. This project has been a lot of fun so far because it's the first big project where I can implement my C++ skills and build C++ classes much larger than in the modules. It's also exciting to be constantly learning about how HTTP and managing connections through epoll() work.
Below is a list of all the projects I have completed so far at CODAM. I am currently still working on webserv and inception. Once these two are finished before the end of the year, I can start my final project.
note: most of these projects were in my private mono repo, I moved them to display but because of that there is no commit-history to review
| Project | Details |
|---|---|
| Libft | Description: Writing a Custom C function library. Key Learning Point: - Creating a library - Mastering and understanding C standard library functions |
| Born2beroot | Description: Installing and manually setting up a Debian VM. Key Learning Point: Understanding of Linux system administration No Repository: Born2beroot the VM was installed and reviewed at CODAM |
| ft_printf | Description: Implementing a custom version of printf(). Key Learning Point: - va_list datatype- Pointers and decimal to hexadecimal conversion |
| get_next_line | Description: Implementing a function to read a line from a file descriptor. Key Learning Point: - Use of static variables - File I/O operations |
| push_swap | Description: Implementing my first algorithm (RADIX) to sort 2 stacks. Key Learning Point: - Algorithm design - Parsing of large input |
| so_long | Description: My first graphics project, creating a small 2D game. Key Learning Point: Basics of graphics programming |
| pipex | Description: Mimicking the behavior of a pipe in the bash terminal. Key Learning Point: - Process management fork()- Inter-process communication pipe() |
| Philosophers | Description: Solving the dining philosophers problem using multithreading. Key Learning Point: - Program architecture - Thread management - Using mutex locks |
| minishell | Description: Creating a custom built version of the bash terminal Key Learning Point: - Command parsing - Signal handling - Running multiple processes - Executing programs with params - Using a custom built vector datatype in C |
| cub3d | Description: Developing a basic 3D game engine using raycasting. Key Learning Point: - Raycasting techniques - 3D rendering - Game loop management |
| NetPractise | Description: Setting up basic network magic. Key Learning Point: - Network configuration - IP addressing - Routing No Repository: NetPractise were small, no code, exercies reviewed at CODAM |
| CPP Modules 00-04 | Description: Introduction to C++ programming concepts. Key Learning Point: - Object-oriented programming - Encapsulation - Basic C++ syntax |
| CPP Modules 05-09 | Description: Advanced C++ programming techniques and concepts. Key Learning Point: - Templates - STL - Exception handling - Advanced OOP concepts |
| webServ | Description: Building a simple HTTP server from scratch. Key Learning Point: - HTTP protocol - Socket programming - Server-client architecture - Parsing of the configuration file |
| Inception | Description: Setting up a multi-container Docker environment. Key Learning Point: - Docker - Container orchestration - Service management |
