Software Development Engineer Internship
2024.3-2024.6
Bytedance Inc.
- Focused on the development and maintenant for large-scale recommender system training
Stay simple. Stay naïve.
Hello! My name is Chen Qiqian [陈启乾] ("Qiqian Chen" is my name in western name order). Here is my Curriculum Vitae, which serves as the short version of this webpage.
Click the button below to download CV:
CV(English) CV(Chinese)I entered Tsinghua University in Fall 2020, majoring the Software Engineering in the School of Software as an undergraduate student.
As in May 2024, my cumulative GPA is 3.75 out of 4, and I'm ranked in top 30% in the School of Software. I'm expected to graduate in July 2024.
High-score courses (A-/4.0 and above, selectively):
In Fall 2022, I went to the University of Waterloo, Canada as an exchange student. I mainly took Computer Science courses in the Math Faculty.
I took the following five courses, and average grade in that term is 89.8 out of 100:
I am very proud to have studied in one of the most famous high schools in China, the High School Affiliated to Renmin University of China(RDFZ). I spent two years studying the Olympic of Information in high school, and got a first prize in the NOIp(National Olympic in Information, Province) in 2018.
Overall, my research interests lie in the optimization and innovation of computer software systems in order to facilitate and scale real-world applications:
The following part introduces industry/research experiences I have had.
Bytedance Inc.
ALCHEM Lab, Purdue University
Student Research Training Program(SRT), Tsinghua University.
Risk Management Technologies Department, Digital Finance, Ant Group
Pacman Lab, Tsinghua University
I focused on developing a graph mining system that could efficiently process heterogeneous hardware (CPU and GPU). I explored algorithmic and architectural optimization strategies for various graph mining applications, with a particular emphasis on Pattern Matching and Frequent Subgraph Mining (FSM). Specifically, I designed and implemented dynamic parallel strategies to optimize the search tree widths of the frequent patterns that form a tree by their vertex numbers. Through this approach, I was able to achieve significant efficiency improvements by hundreds of times in some extreme cases.
GraphSet: High Performance Graph Mining through Equivalent Set Transformations.
Tianhui Shi, Jidong Zhai, Haojie Wang, Qiqian Chen, Mingshu Zhai, Zixu Hao, Haoyu Yang, Wenguang Chen.
I enjoy collaborating with others on projects, and I had the opportunity to work on several courses and personal projects spanning from my time in high school to the present day.
A parallel collision detection algorithm implemented in Rust and wgpu package. Through this program, I learned to programming in Rust (such a interesting language!)
An Android forum app with Kotlin, Jetpack Compose and Django. I was responsible for the proto design and frontend developments. I also work on the several difficult parts: chats and notification with WebSocket, Richtext Editor and Video Player.
A Web Python IDE with Vue3, Typescript and Flask. I was responsible for the editor frontend, and I also designed the structure of the application.
A faked website of Tsinghua University's campus network. This is the course project of Web Front-end Developing, and this project aimed to practice the usage of Vue framework.
A C to LLVM compiler using ANTLRv4 and Python llvmlite package, and it supports the compile of function, loop, and local variables etc. This is the course project on Principles of Assembly and Compilation.
A Windows-painter like application written with MASM and Win32 APIs, and this is the course project on Principles of Assembly and Compilation. This program was quite complex, and learning MASM was so hard that we put entire code in one file.
A GUI chess game written in C++ with Qt framework. The whole developping process was less than three weeks.
A simple simulator written in C++ of an extremely reduced RISC instruction set. This program simulates assembly codes, calculate the memory usage and print the usage result to a BMP image.
A sudoku solver written in a game language: Scratch. I regard this as the start point of my programming life.