Embedded Software Developer Developer
Kijong has been a software engineer in embedded systems for 15+ years and a software project manager and development manager for 5+ years. He specializes in C on embedded Linux and has experience in C++, Java, and Python. Kijong has developed software for set-top boxes, automotive devices, and IoT devices.
ExperienceLinux - 20 yearsEmbedded Systems - 20 yearsC - 20 yearsEmbedded Linux - 15 yearsLinux Device Driver - 5 yearsC++ - 3 yearsAndroid TV - 2 years
Embedded Linux, C, C++, Android TV, Yocto, STB, Python
The most amazing...
...product I've helped develop generated $100 million in sales. I was a software developer and technical expert for the overseas co-development companies.
Senior Software Engineer
- Developed the application software for set-top boxes on Embedded Linux and Android TV with C, C++, and Java.
- Created the application software in the digital video recording system (DVRS) automotive device in Hyundai cars, based on Yocto.
- Developed Linux device drivers for set-top boxes, such as video, demux, tuner, and recorder.
- Managed the software aspects of projects from design to production.
Senior Software Engineer
- Developed device drivers on Windows CE and Linux for an audio touchscreen and a radio receiver.
- Designed a generalized API to access digital multimedia broadcasting (DMB),. a portable TV receiver chipsets from many vendors.
- Developed application software, including SMS and advertisement control on a cell phone.
Senior Software Engineer
- Developed software for detecting dial or digit tones with an FFT algorithm and no extra hardware power.
- Created software to connect and manage calls between internal phones.
- Developed an xDSL device driver and application software on RTOS.
Hanwha Information Communications
- Developed device drivers on RTOS for the Motorola 68360 CPU.
- Created a device driver and network application software for xDSL modems.
- Developed application software on RTOS for a telecommunications device installed near the customer.
Android TV Set-top Boxhttps://sites.google.com/view/droid-tv/pay-tv-provider/jcom-link-xa402
DVB Stream Analyzerhttps://sourceforge.net/projects/pyucsi
LinuxTV Device Driver
Series Recording for Freesat
The product had a low-performance CPU and limited memory, but this function required a lot of data searching and saving. The primary goals for the implementation were performance optimization and highly optimized memory management in RAM and Flash.
Visitor Alarm Telegram Bothttps://github.com/ukayzm/opencv/tree/master/visitor_alarm_telegram_bot
2-wheel Balancing Robothttps://github.com/ukayzm/balancing_rbt
PBX and Call Simulator
Reliable Multisession Transmission Protocol (RMTP)https://github.com/ukayzm/rmtp
This protocol is:
• Similar to TCP in RTOS, which was expensive at the time.
• Extremely lightweight, with 961 lines of C code, including test code.
• Multisession, so it can be used by many threads simultaneously.
• Robust, with 100% transmission even in the environment of 5% packet loss.
IoT Device for Environmental Sensinghttps://github.com/smartfarmathome/device
• The device supports the BLE Environmental Sensing profile to transfer the temperature and humidity data.
• The BLE Environmental Sensing profile is verified with the public application, such as "nRF Connect for Mobile" and "BLE Scanner 4.0" running on iPhone.
• There are no sensors on the board for now, so the data is fake.
• The test app was deployed on Android smartphones to verify the scanning and collecting of data.
Three companies were involved in the API calls:
• Company B—Web Browser
• My Company—Database access and overall integration
The browser had two processes, and the API made too many IPCs. But Company B insisted that they could not improve it because it's a design limitation in Chromium. I suggested a workaround solution to Company B: Make a cache for the object of the API to reduce the amount of IPC. They agreed to implement it, and the execution time was reduced to 25%.
Digital Video Recording System for Hyundai GV70 Car
The software was based on Yocto. I implemented user scenarios such as managing recordings, generating alarms, GUI interface, and user profiles.
Python Tool to Compare Tag Files
It has smart algorithms to help the user better understand the cause of the difference, such as automatically aligning the timestamp, detecting and counting missing items, and visualizing and emphasizing the error point.
Embedded Linux, Linux, Android TV, Arduino, Android, Bluetooth LE, Windows CE, MS-DOS
Embedded Software, DVB-T, Embedded Systems, Performance Improvement, Yocto, Linux Device Driver, Software Project Management, Computer Networking, Real-time Operating System (RTOS), TCP/IP, Performance Optimization, Memory Management, Project Coordination, Arduino IDE, Electronic Engineering, Networking, Sensor Fusion, Linux Kernel, ESP32, ESP8266, Device Drivers, Linux Kernel Drivers, Telegram Bots, Sensors & Actuators, Architecture, STB
Master's Degree in Computer Networking
Hanyang Graduate School - Seoul, South Korea
Bachelor's Degree in Electronic Engineering
Hanyang University - Seoul, South Korea