Kijong Uhm
Verified Expert in Engineering
Embedded Software Developer Developer
Suwon-si, Gyeonggi-do, South Korea
Toptal member since September 17, 2021
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.
Portfolio
Experience
- Linux - 20 years
- Embedded Systems - 20 years
- C - 20 years
- Embedded Linux - 15 years
- Linux Device Driver - 5 years
- C++ - 3 years
- Android TV - 2 years
Availability
Preferred Environment
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.
Work Experience
Senior Software Engineer
Humax
- 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
Ubiwise
- 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
Hannae Technology
- 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.
Software Engineer
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.
Experience
Android TV Set-top Box
DVB Stream Analyzer
https://sourceforge.net/projects/pyucsiLinuxTV 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 Bot
https://github.com/ukayzm/opencv/tree/master/visitor_alarm_telegram_bot2-wheel Balancing Robot
https://github.com/ukayzm/balancing_rbtPBX and Call Simulator
Reliable Multisession Transmission Protocol (RMTP)
https://github.com/ukayzm/rmtpThis 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 Sensing
https://github.com/smartfarmathome/deviceKey Details
• 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.
JavaScript API Performance Improvement
Three companies were involved in the API calls:
• Company A—Web app in JavaScript
• Company B—Web Browser
• My Company—Database access and overall integration
This complex call path made the analysis challenging, and it took a few months to identify the bottleneck. I was in the center of the communication and had to write many test codes in JavaScript to prove the cause I identified.
The Cause
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.
Porting Z/IP Gateway to Android
Education
Master's Degree in Computer Networking
Hanyang Graduate School - Seoul, South Korea
Bachelor's Degree in Electronic Engineering
Hanyang University - Seoul, South Korea
Skills
Libraries/APIs
OpenCV
Languages
C, Embedded C, C++, Java, Embedded C++, Bash, Bash Script, Python, JavaScript
Platforms
Embedded Linux, Linux, Android TV, Arduino, Android, Bluetooth Low Energy (LE), Windows CE, MS-DOS, Raspberry Pi
Storage
SQLite, JSON
Paradigms
Unit Testing
Other
Embedded Software, DVB-T, Embedded Systems, Performance Improvement, Embedded Development, Yocto, Linux Device Driver, Software Project Management, Computer Networking, Real-time Operating System (RTOS), TCP/IP, Performance Optimization, Memory Management, Project Coordination, Arduino IDE, Firmware, Microprocessors, Electronic Engineering, Networking, Sensor Fusion, Linux Kernel, ESP32, ESP8266, Device Drivers, Linux Kernel Drivers, Telegram Bots, Sensors & Actuators, Architecture, STB, Z-Wave
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring