March 1, 2016

Wenji Li

464AB Brickyard Engineering Building
VISA Research Laboratory
School of Computing, Informatics, & Decision Systems Engineering
Arizona State University
699 S. Mill Ave., Tempe, AZ 85281
Phone: (480) 965-9038
2016-02-27 13.44.03



Doctor of Philosophy, Computer Science

Arizona State University, Tempe, AZ USA (Aug 2015 – Present)

Florida International University, Miami, FL USA (Aug 2013 – Aug 2015 )

Advisor: Dr. Ming Zhao

Master of Engineering, Software Engineering (Aug 2009 – Dec 2012)

Beihang University, Beijing China

Specialization in Embedded Software Development

Advisor: Yimin Ge

Bachelor of Science, Applied Physics (Sep 2005 – Jul 2009)

Beihang University, Beijing China

Advisor: Chenlin Gou



Vasily Tarasov, Lukas Rupprecht, Dimitris Skourtis, Wenji Li, Raju Rangaswami, Ming Zhao “Evaluating Docker storage performance: from workloads to graph drivers”. Cluster Computing22, 11591172 (2019)

Vasily Tarasov, Lukas Rupprecht, Dimitris Skourtis, Amit Warke, Dean Hildebrand, Mohamed Mohamed, Nagagramod Mandagere, Wenji Li, Raju Rangaswami, Ming Zhao “In Search of the IdealStorage Configuration for Docker Containers”, in proceedings of 2nd IEEE International Workshops on Foundations and Applications of Self* System(FAS*W’ 17), Tucson, AZ, Sep 2017

Wenji Li, Gregory Jean-Baptiste, Juan Riveros, Giri Narasimhan, Tong Zhang, Ming Zhao “Cache-Dedup: In-line Deduplication for Flash Caching” in proceedings of 14th USENIX Conference on File and Storage Technologies (FAST 16), Santa Clara, CA, Feb 2016


Professional Experience

Software Engineering

Google, Platforms, Sunnyvale, CA USA Dec 2019 – Present

Working on Google scale Storage Products and System management infrastructure

Research Assistant

Arizona State University, Tempe, AZ USA (Aug 2015 – Present)

Florida International University, Miami, FL USA (Sep 2014 – Aug 2015)

Conduct research on cloud and mobile storage systems

Teaching Assistant

Florida International University, Miami, FL USA (Jan 2014 – Apr 2014)

Created and instructed the Android kernel based lab exercises for the class COP 4610 (Operation System Principle)

Linux Software Development Engineer, Intern

Intel, USB & Mass Storage Feature Team, Beijing China (Aug 2011 – Aug 2012)

Developed the USB driver for Intel mobile chipset

Verification Engineer, Intern

Ericsson, PDU CC I&V, Beijing China (Apr 2011 – Jul 2011)

Developed verification environment for Ericsson exchange platform

System Research, Intern

Beihang University, EDA lab, Beijing China (Nov 2010 – Mar 2011)

Developed a prototype of tablet, specialized for multimedia conferencing



CacheDedup (May 2014 – Present)

Study inline deduplication for flash caching. Flash caching is a promising solution to the scalability problems but it faces serious limitations in capacity and endurance. We present a solution, CacheDedup, which embodies a new architecture that decouples the caching of indexing data structures from the caching of actual data, and explores two new cache replacement algorithms that are duplication-ware. My contributions are developing a real prototype of CacheDedup based on dm-cache, and evaluating its performance using real-world traces.

Deduplication Analysis in Mobile Device (Sep 2014 – Jan 2015)

Analyzed storage and network duplication in mobile device. We designed a kernel module on mobile device for capturing storage traces, and VPN server to capture network traces. My contributions are developing the storage trace-capture kernel module based on I/O  scheduler and analyzing the storage duplication.

Android Kernel Projects for the Operation System Course (Jan 2014 – Apr 2014)

Designed and implemented three projects on a physical mobile device (Nexus 7) as the assignments for COP 4610. Also provided tutorials and guidances to the students throughout the entire course. Lab 1 taught students how to unlock bootloader, flash kernel image for Nexus 7, and implement a simple kernel module for the new kernel. Lab 2 developed a new low memory killer that can kill processes according to the CPU and memory usages. Lab 3 taught students how to implement a new round-robin I/O scheduler for the storage on the mobile device.

Performance Analysis of I/O Scheduler for Mobile Devices (Sep 2013 – Dec 2013)

Evaluated the performance of different I/O schedulers for different data access patterns on mobile devices. I designed several experiments for testing the read and write fairness problem and the parallelism characteristics of the embedded NAND flash storage on mobile devices.

USB Driver Improvement for x86 Mobile Chipset (Aug 2011 – Aug 2012)

Analyzed and fixed reported bugs in the USB driver for the x86 mobile chipset. My contributions are analyzing the various issues reported by Intel engineers, identifying the root causes and fixing them with my teammates.

Handheld Multimedia Conferencing System (Nov 2010 — Mar 2011)

Developed a prototype handheld multimedia conferencing system, based on custom-made dual-screen tablets. My contributions are porting the Linux operation system to the Jumbo 2440 development board and developing an image comparison application with MiniGUI graphics library. I also developed a matrix keyboard driver to control a 4*4 keyboard to control the two screens on the tablet that can simultaneously show different contents.


Languages: C, C++, Java, Linux shell scripting, LaTeXe
Platforms: Linux/Android programming on servers and mobile devices