"No developer is bigger than the Team" This encapsulates my work philosophy.
- 👨💻 As the founder of the GCC (Global Coding Community), I lead a group that connects passionate developers worldwide, fosters knowledge sharing, and facilitates mutual study verification.
- 💻 I'm currently working at Corinex, a company specializing in network modems. My role involves applying in-depth knowledge of network layers 1 to 3 and working extensively with LCMP and Modbus protocols in a Linux environment, using C/C++
- 🌱 I worked at Samsung Electronis as a software developer using C/C++(14) for 4 years. 🗄️ Involved throughout the software life cycle for SSDs, including requirements analysis, architecture design, large-scale feature implementation in C/C++ (14), bug tracking, adherence to coding standards, code reviews, and Coverity, as well as unit and integration testing. Contributed extensively to memory management and optimization efforts, driving performance enhancements that culminated in the launch of the 990PRO SSD!
- 🎉 Released 990PRO SSD in Samsung, which delivered the highest performance of its time!! 🎉 I have released more than 4 SSD products, but this one is especially meaningful to me because I was actively involved from initial architecture design through development, testing, and the final release.
- 🚀 I've engaged in diverse projects involving C/C++, Linux, Docker,Multi Process/Threading and Graphics at 42 Quebec, Canada.
- 💼 I did an intership as a software developer at the Electronics and Telecommunications Research Institute(ETRI).
- 🚁 I was a member of the 10th Software Maestro sponsored by the Ministry of Science and ICT in Republic of Korea, where I developed a Drone Sharing Service Application.
- 🏆 I received the grand prize in the application category at The Open Software Competition hosted by the Ministry of Science and ICT. - (NIPA President Award).
- 📚 I majored in Electronics and Information Engineering at Korea University, gaining extensive knowledge in hardware, including electronic circuits, semiconductors, and FPGA, as well as software-related expertise in C, C++, and Operating Systems.
My expertise areas are C and C++, and I enjoy creating games using rendering and multithreading with these languages. Currently, I work at a networking company, where I contribute to the Modbus library. The projects below reflect this work.
In collaboration with Léopold, we developed a Minishell mirroring Bash's functionality. I focus on pipe, redirection, and signal handling, we seamlessly supported each other's tasks, resulting in a robust shell implementation. This project deepened my understanding of Unix concepts like multiprocessing and file descriptors, showcasing effective teamwork and modern C programming practices.
Implement a solution to the dining philosophers problem using threads and mutexes. Each philosopher is represented by a thread, and there is one fork(resource) between each pair of philosophers. To prevent race conditions, mutexes are used to protect the state of forks.
2D Game : improving graphics development skills related to window management, event handling, colors, textures, and other related areas using OpenGL library
Developed a 2D game from scratch using OpenGL, incorporating graphic techniques to receive and render textures. Utilized map input hooks to capture user movements, dynamically transforming the map accordingly. Implemented the entire process using a Makefile and my own implemented library.
Sort using two deque : This is a algorithm project where we must sort a given list of random numbers with a limited set of instructions, using the lowest possible number of actions.
The "push_swap" program is a sorting algorithm implementation that takes a stack of integers as input and outputs the smallest list of instructions required to sort the stack. The primary goal is to have the smallest number at the top of the stack. The program uses quicksort with two deques, separating elements based on a pivot value. Additionally, mergesort is employed to determine the pivot.
Minitalk (IPC - Server & Clinet) : The purpose of this project is to code a small data exchange program using UNIX signals.
Create a client-server system for exchanging messages through UNIX signals. The server, launched first, prints its PID. The client, taking the server PID and a string as parameters, sends the string to the server, which then prints it.
MyOwnLibrary: A Comprehensive Implementation of String and List Functions with Dynamic Memory Allocation
MyOwnLibrary is the product of my relentless pursuit of a deeper understanding of C/C++ programming. It serves as a testament to my dedication to this craft. This library not only replicates all the essential functions found in <stdio.h>
and <stdlib.h>
but also takes a step further by implementing a wide array of string and list-related functions. Moreover, it places a strong emphasis on the judicious management of memory allocation, ensuring that efficiency and stability are upheld throughout all operations.
As I continued my journey in C/C++ programming, I embarked on a mission that demanded a profound understanding of variable-argument functions. I decided to recreate the iconic printf
function entirely from scratch. This endeavor proved to be pivotal in helping me grasp the intricacies of variable functions and parameters. It was a challenging but immensely rewarding experience, and it significantly enriched my expertise in the realm of programming.
The implementation of get_next_line
was a project that made a significant impact on my programming proficiency. This project has greatly enhanced my understanding of static variables and functions, emphasizing their importance in managing and maintaining the state across multiple function calls. Beyond this, it has provided valuable insights into the intricacies of file handling and data manipulation. Its primary purpose is to facilitate the reading of content line by line from file descriptors.
Implemented Android application, established a server using MongoDB and AWS, and developed a Ground Control System (GCS) for drone management. The GCS facilitates communication between devices through APIs, allowing consumers to share and utilize drones located at specific places without owning one. Youtube1 Youtube2
- 📫 How to reach me : kay30kim@gmail.com
- 💬 Feel free to ask me about all of your question.
- 🌱 I'm currently learning about graphics and web.