Hi there

I'm Yunze Zhang

Chemical Engineering Chemistry Electrical and Computer Engineering

About Me


Nice to see you here!
I am Raplis Zhang, a graduate student from Duke University, and I'm going to graduate in May 2024. I am good at data structure & algorithm, Java & C++ OO design, system programming (concurrency, TCP socket). I have a strong passion for writing high quality code.
And I love my cat "Mimi"!

Skills and Honors


C/C++ (Skilled), Verilog, Java, Python
Valgrind, GDB, Linux Environment, Git, Junit
English (skilled, Duolingo: 125), Chinese (mother language)
Learning Excellence Award (First Prize: 2019, 2020 Second Prize: 2021), etc
Outstanding Merit Student of School (2021)
Outstanding Graduates of Dalian (2021)
National Undergraduate Mathematics Contest(National Second, Third Prize)

Projects


Hot Potato (C/C++, Socket)


  • Designed and implemented a multi-process hot potato game based on TCP connection using C/C++ where players randomly pass the potato to the left or right
  • Added a timer function at the host end to randomly end the game and output the potato path
  • Used select function to manage multiple socket file descriptors, and implemented ring network structure and message passing mechanism

Battleship Game (Java, Gradle)


  • This text version of the board game was designed using Java language and built through Gradle, supporting everyone and man-machine battle
  • Followed the Single Responsibility Principle and Interface Segregation Principle, two Interfaces and 20 Classes were used for design
  • Followed the principle of test-driven development, and achieved branch tests with 100% coverage
  • Used Git to manage code modification, submission, and host the code on Gitlab

Thread-safe memory allocator (C, thread-safe)


  • Used Best-Fit and First-Fit allocation strategies, implemented malloc and free functions, and conducted performance evaluation based on memory usage and allocation time
  • Used NoLock (Thread Local Storage) and Lock (pthread mutex) to implement the memory allocation function of the Best-Fit strategy, and through the code test, it is guaranteed to be thread-safe.
  • Used Valgrind to check memory leaks and GDB to debug.

Tetris Game(Verilog, Assembly Language)


  • Wrote a processor with a clock frequency of 10MHz and support 16 instructions in Verilog
  • Used assembly language to write the program of the game, and design seven functions such as rotation, pause, elimination, and random shape of the square
  • Converted the game program into binary code and input it into ROM
  • Output the picture of 640*480 pixels to the display through the VGA interface, and used the PS2 keyboard to control the block
  • Designed the UI of the game on the monitor

Catte(Android)


  • Optimized the open-source project BladePlay by introducing a new color theme.
  • Fixed issues related to permission retrieval, playlist shuffling, song playback, and album image loading.
  • Added functionalities such as music file filtering, song list expansion, song switching by sliding, and song play count tracking.