Kang-Pin Chan

Hello, I am Kang-Pin Chan (Tom), a software engineer focusing on system software development with a strong background in data structures, algorithms, and operating systems. I am proficient in C/C++, Python and Rust, and also have great system-oriented experiences in my past job. As a Graphics Software Engineer at Intel, I developed Windows Graphic Driver features to support global teams and ensured efficient log processing and retrieval of core data. Currently, I am a current student at Carnegie Mellon University MS in software engineering, where I will broaden my knowledge and skills. With this hands-on experience, intercultural communication skills, and a knack for tackling complex software challenges, I am eager to contribute my problem-solving abilities and technical proficiency to the Software Industry.


Education

Carnegie Mellon University

Master of Science in Software Engineering
Expected Jan. 2024 - Expected Jun. 2025

University of Southern California

Master of Science in Computer Science
Sep. 2023 - Expected Dec. 2023

National Cheng Kung University

Bachelor of Science in Computer Science and Information Engineering

Overall GPA: 3.92/4.3 (Major GPA: 4.22/4.3)

Relevant Course: DATA STRUCTURE (97, A+), ALGORITHMS (93, A+), OPERATING SYSTEMS (89, A)

Sep. 2016 - Jun. 2021

Work Experience

Intel

Graphics Software Engineering Intern
  • Managed Windows Graphic Device Driver flow with C/C++ to acquire BSOD or TDR data from memory and process data to make WinDbg Tool’s features available in both live and dump file environments

  • Constructed Python script to auto generate 300+ lines of code from driver functions during compile state to reduce effort of maintenance between tool and driver

  • Solved Unit Testing Framework issues with C++ enabling users to reproduce driver scenario captured in ETL files

  • Proposed and fix problems about DiAna tool that uses C# code to parse ETL files into .xml processed by UTF tool

  • Tools were used by 50+ debugging engineers in four global teams for log processing and core data retrieval

Jul. 2022 - Jun. 2023

The Information and Communications Research Laboratories of ITRI

Software Engineer Intern
  • Studied resource of Kata Containers and compiled network paths and protocol information to help team migrate services from Docker to Kata Container to achieve VM-level security while keeping container speed and lightweight

  • Employed juju to deploy Kubernetes charm and Kata charm service and resolved errors in deploying processes

  • Compared and documented the differences in network architecture between Kata charm service and original Kata Containers to ensure the accuracy of the network routes and create references for future deployment

Jul. 2021 - Sept. 2021

Projects

Robotics Lab - National Cheng Kung University

Independent Study, Advisor: Prof. Jenn-Jier Lien
  • Built an automated guided vehicle (AGV) capable of automatically avoiding people and following paths based on Lidar detection in order to accomplish commands called by the User.

  • Collected map data by test driving the AGV through school buildings and saved data for the Robot Operating System module to assist with navigation to the destination.

  • Employed the FER-2013 dataset to build an emotion detection model that can detect 7 kinds of emotion, and integrated the model with a RealSense camera to collect real-time feedback of the user’s reactions so the AGV could modify its service in dynamic response to the user’s feelings.

  • Applied Mediapipe to detect the position of the palm and recognize critical points on the hand to identify and match gestures for 1-5, enabling the user to provide a final rating after each service.

Sep. 2020 - May. 2021

/dev/mem research

research of Linux physical memory image file
  • Utilized Linux tool Crash to validate the memory mapping mechanisms regarding the /DEV/MEM image file.

  • Reserved physical memory to avoid mapping by the memory management(MMU) unit and used mmap to modify the specified reserved memory.

  • Validated the structure of Linux Five-level page tables by calculating the indices of PGD, PMD, PUD, and PTE and used Crash to confirm the output.

  • Circumvented the kernel-protection mechanism — KPTI, ASLR, Spectre, and KASLR — to acquire a fixed virtual base address and achieve an ideal outcome.

  • Computed the offset of attributes in the task struct to modify the information in the process and traversed all processes in the system.

Apr. 2021 - May. 2021

Fibdrv

a Linux kernelmodule that creates device /dev/fibonacci
  • ExploitedLinux virtual file system (VFS) interface to operate device driver as a file descriptor.

  • Implemented a character device driver to calculate i‑th fibonacci number to response a read from user space.

  • Supported in‑kernel big number arithmetic allows calculation with arbitrary integer number.

  • Exploited sysfs to get the calculation time to avoid the overhead of kprintf.

Mar. 2021 - Apr. 2021

Linked-list sort

Sorting algorithms’ analysis for linked list
  • Replaced stdlib rand() with Pseudo Random Number Generator (PRNG) - MT19937, CRYPTMT to establish test data for sorting.

  • Implemented non-recursive quicksort for linked list — 10% improvement in speed against the recursive method.

  • Built an efficient mergesort for linked list — saved 15% of heap usage against naive implementation.

  • Extracted code from lib/list sort.c to build a standalone program and applied several linux tools to compare the performance and dynamic stack usage between the quicksort and lib/list sort.c.

Feb. 2021 - Mar. 2021

Line-bot-elder

Line chat bot with image and train schedule searching function
  • Used the concept of finite state machine to implement the project.

  • Used web crawler to catch image and data from wikipedia and google, also process JSON file to get train schedule.

Dec. 2020 - Dec. 2020

Key-Value-Storage

Key-Value Storages program that can handle PUT, GET, and SCAN instructions
  • Implemented by C++ and able to handle over 16GB size of data.

  • Use LRU as data organization strategy and apply Copy-on Write strategy to reduce the output I/O effort.

Nov. 2020 - Dec. 2020

ETL-Processing

Multi-Threaded program that can convert a CSV file to a JSON file
  • Implemented by C++ and able to handle at least 1GB size of data.

  • Multi-threaded programming - up to 40\% speedup against single-threaded implementation.

  • Compared and analysed the different of thread's number can influence the hardware activity.

Oct. 2020 - Nov. 2020

External-Sort Benchmark & Improvement

External Sort implementation and analyse
  • Constructed the External-Sort code in C++ and was able to handle over 16GB size of data, which outstrips the limit of main memory.

  • Used K-way-external-sort to improve the sort’s cache locality up to 52% and obtained a 23% increase in speed against the 2-way-external-sort.

  • Changed the output strategy to write-back by creating an output buffer and export the sorting outcome in scale which obtained a 20% increase in speed against naive implementation.

  • Used the linux tool (perf) to measure the hardware activity and observe the performance bottleneck.

Sep. 2020 - Oct. 2020

Micro go compiler

A micro Go Compiler for Java assembly code generation
  • Used the Java assembler, Jasmin, to convert the Java assembly code into the Java bytecode.

  • Supported basic operation e.g. Unary Operation, Binary Operation, Boolean Operation and Comparison operation.

  • Supported Print, Type Conversions (Type Casting), if-else and for loop.

  • Abled to cover basic code of Go (declaration, numeric operation, Comparison operation, Print, loop).

May. 2020 - May. 2020

Skills

Programming Languages
Framework & Tools
  • Linux, ROS, Crash
  • Kubernetes, Kata Container
  • OpenCv, Tensorflow, Git

Extracurricular

Apart from being a software engineer, I enjoy most of my time playing sports or dancing. In my leisure time, I am an avid swimmer and break dancer. Swimming and dancing can tremendously relieve pressure from work

I have been a leader of a forty-member dance troupe in college. I choreographed dances and sought performance opportunities for the troupe. Leading the club also entailed teaching dance moves to new members from scratch. Moreover, I also held the performance of the year which was attended by more than 1000 people in 2017.


Awards & Certifications

  • Outstanding academic achievement in school years 2020-2021
  • Outstanding academic achievement in school years 2018-2019
  • Outstanding academic achievement in school years 2016-2017