Junior Software Engineer | Passionate About Coding & Building Solutions.
Contact Me
Currently studying at 1337 Coding School.
I have a passion for working with low-level languages like C, C++, and Java.
I absolutely love problem-solving and enjoy building efficient and scalable solutions that tackle complex challenges.
Expert in C programming, with a strong understanding of core concepts such as memory management, pointers, and data structures...
Proficient in C++ programming, with expertise in object-oriented programming (OOP) principles...
Intermediate in Java, with a solid understanding of object-oriented programming (OOP) concepts...
Intermediate in JavaScript, with a solid understanding of core concepts like functions, objects, and asynchronous programming...
Expert in creating semantic and accessible web pages.
Familiar with creating responsive designs using CSS3, and actively working to improve my skills in layout techniques...
The 42-minishell project involved building a basic shell program that mimics a Unix shell environment. I developed functionality for handling commands, managing processes, implementing piping, redirection, and environment variables. The project helped me deepen my understanding of system-level programming, process management, handl signals, and shell behavior.
The 42-philosophers project focused on implementing a multithreading solution to the classic dining philosophers problem. I developed a simulation where multiple threads (representing philosophers) shared resources (forks) while avoiding deadlock and race conditions. The project helped me strengthen my understanding of synchronization, mutexes, and thread management in C.
The 42-philosophers project involved simulating the dining philosophers problem using processes and semaphores to manage multi-tasking. I implemented concurrent processes where each philosopher (represented as a process) needed to acquire resources (forks) without causing deadlock or race conditions. The use of semaphores allowed for efficient synchronization and mutual exclusion, ensuring that philosophers could safely interact with shared resources while maintaining system stability and performance.
The get-next-line project involved creating a function that reads a line from a file descriptor, handling dynamic memory allocation to store the line and ensuring it can be called multiple times to read successive lines. I focused on efficient memory management, handling edge cases (like EOF and errors), and ensuring the function works for both standard input and files. This project helped me improve my understanding of file I/O, buffers, and dynamic memory handling in C.
The push-swap project involved implementing an efficient sorting algorithm for a stack of integers, using only basic operations like push, swap, and rotate. I focused on optimizing the algorithm to minimize the number of operations, exploring different sorting strategies such as selection sort and quicksort. This project helped me improve my problem-solving skills, deepen my understanding of algorithmic complexity, and work with low-level data structures like stacks.
The minitalk project involved implementing a simple communication protocol between processes using Unix signals. I created a client-server application where the client sends messages to the server, and the server responds using signals to confirm message receipt. This project helped me deepen my understanding of signal handling, inter-process communication (IPC), and the limitations and performance considerations of signal-based communication in C.
The so_long project involved creating a 2D game using the C programming language and the MiniLibX graphics library. The game requires navigating through a maze, collecting items, and reaching the exit, all while avoiding obstacles. I focused on implementing basic game mechanics, handling user input, and rendering graphics, as well as managing memory and game states. This project helped me improve my skills in graphics programming, event handling, and overall software development in C.