Custom Memory Allocator & Multithreaded File Compression Tool
C, POSIX Threads, Memory Management APIs (‘mmap’, ‘munmap’), System V IPC mechanisms.
Memory Allocator
- The memory allocator provides dynamic memory management capabilities, while the file compressor allows multiple CPU cores to accelerate compression tasks.
- Developed from scratch in C, featuring algorithms for first fit, best fit, worst fit, and next fit strategies to allocate memory dynamically with minimal fragmentation.
- Utilized system calls like ‘mmap’ for memory mapping and ‘munmap’ for releasing, ensuring efficient use of virtual memory.
- Implemented memory coalescing and block splitting to optimize the usage and management of memory blocks.
File Compression Tool
- Employed POSIX threads (pthreads) for creating concurrent execution threads, each handling a portion of the file to compress data efficiently.
- Utilized shared queues with mutex locks and condition variables to manage tasks among threads safely and effectively.
- Implemented a producer-consumer model to dynamically allocate file segments to threads, ensuring load balancing and maximizing CPU utilization.
Custom Unix Shell Implementation
C programming language, Unix system calls (‘fork', ‘exec’, ‘wait’, ‘pipe’), process control, signal handling, file I/O operations, and POSIX APIs.
- Developed a custom Unix shell in C, offering advanced features including command execution, input redirection, batch script processing, and background task management.
- Implemented sophisticated parsing techniques to interpret user commands, supporting argument parsing, input redirection (>), and execution of both built-in and external commands via system calls.
- Enabled the shell to run in batch mode, processing commands from a file sequentially, allowing for automated script execution without user interaction.
- Implemented essential built-in commands such as ‘cd’ for directory navigation and ‘path’ to customize the search path for executable files.
iOS Developer | WalletWizard App
Swift, SwiftUI, Xcode, PhoneNumberKit for phone number validation, async/await for asynchronous API calls, JSON for API communication.
- The development of WalletWizard is an iOS app designed to simplify personal finance management. Implemented SwiftUI to design and implement a clean, user-friendly interface that enhances user experience. Integrated dynamic UI components and animations to create a responsive and interactive experience.
- Implemented a robust authentication system using phone number verification for user authentication.
- Developed a backend communication system to interact with custom APIs for operations such as account creation, deposits, withdrawals, and transfers, ensuring real-time data synchronization.
- Integrated UserDefaults for secure storage of user preferences and authentication tokens, enabling a personalized and convenient user experience.
- Designed and implemented an user token authentication system to allow users to save their account information based on their phone number and username.
Gameplay Programming | Super Fox
Unity/C#
- Developed "Super Fox" using Unity and C#, lead the design and implementation of critical game mechanics and features.
- Developed on character and enemy movement/physics, input, animation/visuals, user interface, and game logic.
- Designed the user world and characters using multiple assets.
- Engineered interactive elements within the game world, such as platforms that follow predetermined paths and items that players can collect to progress through levels.