Yunrui Li
1210 W. Dayton St. CS Dept,
Madison, WI 53706
Tel: 608-264-3878(h) 608-262-6629(o)
Fax: 608-262-9777


Seeking a challenging position in software design and development, focusing on DBMS, Operating Systems or Computer Networking.

  • Selected Course Projects in the University of Wisconsin - Madison

    • DBMS/Web. (09/98 - present) As a research assistant for Professor Raghu Ramakrishnan, I involved in the Gestalt project. My work included implementing DDL/DML for gestalts (integrated view on heterogeneous data sources in a widely distributed system); designing and implementing several data wrappers for newspaper sites; and proposing the change management framework for gestalt integration. (C++, Java)

    • DBMS. Designed and implemented several parallel cubing algorithms. (C++, MPI)

    • DBMS/Web. Designed and implemented a query evaluator on XML data, and a "cache applet" that dynamically caches XML query results in the Active Cache web proxy to cut off the traffic to the web server. The "cache applet" recognizes and evaluates sub-queries in the proxy as well. (Java, MSXML, Perl/CGI)

    • Web. Designed and implemented a web crawler that searches for specific web objects. It features configurable searching criteria, flexible policy, pause/resume searching and semi-crash resistance. The whole structure consists of one master program that launches many slave programs into Condor to exploit idle CPU resources. (Java, Condor)

    • DBMS. Implemented various building blocks of a database management system: buffer manager, heap file and heap page, B+ tree indexing and external sorting. (C++)

    • Computer Networks. Designed and implemented a reliable link layer protocol and a connectionless datagram-based network layer protocol that supports multicasting, dynamic rerouting based on network failure, as well as packets of arbitrary length; also implemented a client/server application using BSD socket and POSIX thread interface. (C++, >8,500 lines)

    • Algorithm/Performance Evaluation. Designed and implemented a parallel job scheduler; analyzed its performance on synthetic workloads; designed and implemented GUI representations of job scheduling. (Java)

    • OS/Benchmarking. Designed and implemented several small benchmark programs to measure kernel perforamnce, including system call latencies, context- switch latencies, etc. (C for Solaris)

    • Modeling. Studied and improved the Dynamic Skyscraper Broadcasting scheme for segmented data broadcasting and optimal regional caching. My work includes deriving and solving a set of equations to find the optimal number of channels and other coefficients. (C++)

  • Research Experience in Academia Sinica and University of Sci. & Tech. of China

    • AI. (10/96 - 05/97, Master's thesis) Designed and implemented an agent- oriented language called Descartes; proposed "chained characteristics" paradigm for agent-oriented programming; designed a "characteristics" library written in Descartes itself; designed and implemented a translator that translates Descartes to C++; designed and implemented an integrated developing environment for Descartes. (C++, >24,000 lines)

    • Authoring System. (07/94 - 06/95, Bachelor's dissertation) Designed and implemented an object-oriented authoring system for Windows called Envelope. Envelope allows user to define data types (element types and relationship types) and author their instances using common graphics constructs. Envelope is suitable for authoring diagrams defined as collections of inter-related objects, such as data flow charts and E-R diagram. (C++, >20,000 lines)

    • Compiler. Implemented a compiler that compiles PL/0 (an essential subset of PL/1) code into machine code of a virtual machine; implemented simulator for that virtual machine; implemented a calculator with memory. (C, Lex, Yacc)

    • OS. Implemented a process scheduling simulator and a page replacement simulator. (C)

    • DBMS. Designed and implemented a simple GUI-based integrated database system. (C++)

  • Trivia

    • Reversi (Othello) game for Windows. (06/94, C)
    • Minesweeper game for Windows. (03/94, C++)
    • A memory-resident clock for MS-DOS. (11/92, x86 assembly)
    • Tetris game for MS-DOS. (10/91, Pascal)
  • Languages: C++, C, Java, SQL, Perl/CGI, HTML, XML, Mumps, Pascal, Prolog, Visual Basic, x86 assembly, SmallTalk, FORTRAN.
  • Environments: Visual C++, Emacs, gdb, Purify, Borland JBuilder/Interbase, Visual Basic.
  • Operating Systems: UNIX (Solaris, SunOS, AIX), Windows NT, Windows 95, MS-DOS, OS/2 Warp.

DBMS ( CS564, CS764, CS784), Computer Networks ( CS640), OS ( CS736), Modeling/Performance ( CS547, CS737), Programming Language ( CS704), Master's Research ( CS799, CS790).

  • Passed Ph.D. Qualify Exam in Database Area at University of Wisconsin-Madison, 1998.
  • Zhang Zhongzhi Scholarship (40 out of 4000 students), USTC, 1993.
  • Academic Excellence Scholarship, USTC, 1994, 1992, 1991, 1990.

Available upon request.