CHRISTOPHER GRANT JONES Curriculum Vitae ------------------------------------------------------------- CONTACT jones.chris.g@gmail.com 107 Kent Trail (510) 684-5513 Pooler, GA 31322 ------------------------------------------------------------- OBJECTIVE To obtain a software engineering/programming/computer science position in which I solve interesting, difficult problems and implement the solutions. While my interests are general, particular areas of expertise are programming languages and their tools, concurrent/parallel software, and operating systems. ------------------------------------------------------------- EDUCATION 2008 - 2008 ....... (Incomplete) Ph.D in Computer Science University of California, Berkeley Advised by Professor Rastislav Bodik GPA: NA 2003 - 2008 ....... Bachelor of Science EECS, High Honors University of California, Berkeley GPA: 3.888 2001 - 2003 ....... Honors Diploma Glendale High School, Springfield, MO GPA: 3.98 1999 - 2001 ....... College Preparatory Advanced Track Rome High School, Rome, GA GPA: ~100% ------------------------------------------------------------- WORK EXPERIENCE 2007-2008 ............ RESEARCH ASSISTANT UC Berkeley Researched parallel web browsers for future mobile devices. Worked on parallel lexing, parsing, rendering and script execution. Also researched synthesis of concurrent data structures. References: Professor Rastislav Bodik (510) 642-2488 bodik@cs.berkeley.edu Summer 2007 .......... RESEARCH MENTOR UC Berkeley As part of the Intel Undergraduate Research Opportunities program, mentored a fellow undergraduate in conducting research. (Research mentors are usually graduate students.) References: Dr. Sheila Humphreys (510) 643-1974 humphrys@eecs.berkeley.edu Professor Rastislav Bodik (510) 642-2488 bodik@cs.berkeley.edu Spring 2007 .......... COURSEWARE DEVELOPER / TEACHING ASST UC Berkeley o Developed projects for class, including: - Parser for yacc-like grammar specifications - CYK parser generator - Compiler from Skipjax language (a streaming language for AJAX programming) to JavaScript, including a compiler from Skipjax-templated HTML to JavaScript and HTML - Runtime library for Skipjax language o Co-wrote homework and exam questions o Co-wrote discussion notes and taught sections References: Professor Rastislav Bodik (510) 642-2488 bodik@cs.berkeley.edu Spring/Summer 2006 ... SOFTWARE ENGINEER (CO-OP) Riverbed Technology (http://www.riverbed.com) o Designed and implemented replacement core client libraries ("application framework") in C++. Provided improvements both in efficiency and notational convenience. o Designed proprietary CLI command registration and execution language, and implemented lexer and parser for the language using flex and yacc. Offered 10x+ reduction in lines of code compared to previous C-based system. o Designed and implemented high-performance, high-availability, general-purpose statistics database using Berkeley DB. o Lead designer and implementor of general-purpose appliance simulator for testing of statistics, configuration, and upgrades. o Designed and implemented "live" web statistics rendering (graphs and data tables) system using C, Tcl, HTML, and Ajax. o Designed and implemented scalable statistics querying and aggregation architecture for Central Management Console. o Designed and implemented replacement configuration database using Berkeley DB. o Wrote Python bindings for C "application framework." o Designed and implemented next-generation "hwtool" in C++ -- capable of reading hardware specifications from XML and dynamically dispatching available queries published by shared objects. o Various duties as member of Central Management Console team. o Mentored team members in use of device management system, algorithms, languages, and coding style. References: John Cho, Director of Engineering (415) 247-8800 Andrew Gaul, Member of Technical Staff (415) 247-8800 Fall 2005 ............ SOFTWARE DEVELOPER (PART TIME) Riverbed Technology o Co-designed and co-implemented configuration management system for Central Management console. Involved everything from C database backend modules to Javascript GUI widgets. o Designed new web system: move from C to C++, CGI to FastCGI, and Tcl to Python. o Ported web toolkit from Tcl to Python (included template compiler and database wrapper module). References: John Cho, Director of Engineering (415) 247-8800 Andy Pang, Member of Technical Staff (415) 247-8800 Summer 2005 .......... SOFTWARE DEVELOPMENT INTERN Riverbed Technology o Designed and implemented "hwtool" to solve problems related to hardware abstraction. Involved patching Linux kernel ethernet drivers. o Implemented GUIs in Tcl/HTML, CLI commands and database backend modules in C. o Wrote hard disk repartitioning shell scripts. o Various duties as member of device management team. References: Gordon Chaffee, VP of Engieering (415) 247-8800 John Cho, Director of Engineering (415) 247-8800 2004 - 2005 .......... LAB ASSISTANT I (PROCESS STAFF) Berkeley Electronics Research Laboratory/Microfabrication Laboratory Worked with most aspects of semiconductor processing, including film deposition, sputtering, photolithography, wet and plasma etching, and analysis. Reference: Siavesh Parsa, Process Engineering Manager (510) 642-2716 2004 ................ LAB ASSISTANT I Berkeley Electronics Research Laboratory/Microfabrication Laboratory Widely varied duties, including designing Chemical Safety PowerPoint presentation, creating CAD drawings, disposing of and stocking chemicals, and cleaning lab. References: Robert Hamilton, Equipment & Facilities Manager (510) 642-2716 Marilyn Kushner, Junior Development Engineer (510) 642-2716 2003 - 2004 ......... SOFTWARE ENGINEER Turblex Incorporated Designed automated testing suite and monitoring and controlling system for compressors and exhausters. Reference: Richard Vinton, Chief Engineer (417) 864-5599 (Additional references available upon request.) ------------------------------------------------------------- PUBLICATIONS Parallelizing the Web Browser. Hot Topics in Parallelism (HotPar) Conference, 2009. With Rose Liu, Leo Meyerovich, Krste Asanovic, and Rastislav Bodik. Sketching Concurrent Data Structures. Programming Language Design and Implementation (PLDI) Conference, 2008. With Armando Solar-Lezama and Rastislav Bodik. ------------------------------------------------------------- PRESENTATIONS Browsing Web 3.0 on 3.0 Watts: Why Browsers Will Be Parallel. Presented to Berkeley Open Source Quality Group, Intel Research, and Mozilla. With Rastislav Bodik, Leo Meyerovich, and Rose Liu. ------------------------------------------------------------- PROJECTS (RESEARCH/COURSE/PERSONAL) 2008 ........ BROWSER OPERATING SYSTEM (Course) http://cs.berkeley.edu/~cgjones/papers/browseros.pdf Preliminary work on an operating system that is a platform for "web applications." Implemented Google Maps clone in C for Android; found 5-70x difference in performance compared to web browser Google Maps client in Android. Gathered detailed performance data across kernel/userspace. (With Joel Galenson.) 2008 ........ OPTIMIZING REGEXES (Course) http://cs.berkeley.edu/~cgjones/papers/regexp-re.pdf Proved for which expressions regex matchers and regular expression (RE) matchers behave identically, allowing the slower regex matchers to be replaced by faster RE matchers for these expressions. Proposed further heuristics for regex optimization. (With Joel Galenson.) 2008 ........ SWORDPLAY: ONLINE, MULTIPLAYER CROSSWORDS (Personal) (Demo upon request) Crossword puzzle server and browser client supporting single-player, cooperative- and competitive-multiplayer games. 2007 - 2008 . PSKETCH: SYNTHESIZING PARALLEL PROGRAMS (Research) http://sketch.cs.berkeley.edu/ Compiler that fills in a partially-specified program ("sketch"). Personally worked on language design, compiler, and optimizations for concurrent extension, PSketch. (With Armando Solar-Lezama.) 2007 ........ PARALLEL LEXICAL ANALYSIS (Research) http://cs.berkeley.edu/~cgjones/papers/mozilla-talk-08.pdf Created work-efficient, parallel algorithm for DFA matching in lexical analysis. Implemented prototype for STI Cell processor. Algorithm later used by others for parallel regex matching on GPUs. (With Ras Bodik.) 2007 - 2009 . EFFICIENT LEXER FOR PYTHON LEX/YACC (Personal) Pure-Python lexer using DFA algorithm; 50-70% improved performance over PLY 're' lexer. Port to PLY in progress. 2007 ........ BERKELEY UNDERGRADUATE COMPILERS COURSE (Assignments and solutions available upon request) Refocused course to web technologies, practical domain- specific languages and compilers, and simpler lexing/ parsing algorithms that are feasible on today's machines. Personally, designed and implemented course projects, co- wrote homeworks and exams, and taught discussions. (With Ras Bodik and others.) 2006 ........ NACHOS, JAVA OPERATING SYSTEM (Class) (Code available upon request) "Lead architect" for team project. Independent of project requirements, created valgrind-like debugger of virtual memory subsystem and novel data structure for fast lottery scheduling (for bonus points). 2006 ........ PYTH COMPILER (Class) (Code available upon request) By myself, completed a team project to compile Pyth (a Python dialect) into x86 assembly language. Received highest marks in class on final project. ------------------------------------------------------------- HONORS AND AWARDS 2008 .. James H. Eaton Memorial Scholarship (EECS graduate and undergraduate students demonstrating "a keen sense of creativity and inventiveness") 2008 .. Computing Research Associates Outstanding Undergraduate Award, Honorable Mention 2007 .. Vodafone-Us Foundation Undergraduate Fellowship 2007 .. Jim And Donna Gray Endowment Fund (CS undergraduates with "demonstrated financial need," "nominated by EECS department") 2004 .. Golden Key Honor Society Designee (top 5% of class) 2004 .. Edward Frank Kraft Scholarship Prize (first- semester freshmen with "high scholastic records") 2003 .. National Merit Finalist 2003 .. Intel Excellence In Computer Science Award 2003 .. Herbert Hoover Presidential Library Association "Young Engineer" 2003 .. Society Of Manufacturing Engineers Award 2003 .. Missouri Scholars 100 2003 and 2002 .. Nominated To Missouri Team In American Regions Math League (ARML) National Competition ------------------------------------------------------------- SKILLS PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION Language design, compiler construction, optimization, some formal semantics, some formal analysis/verification (model checking, decision procedures, concrete/symbolic/ randomized testing) o Tools lex, yacc, Rats!, spin, cute, MiniSat o Languages Proficient: C, Python, Java, JavaScript, FlapJax, C++, G (LabVIEW) Familiar: Cilk, LaTeX, HTML/XHTML, Lisp, Scheme, x86/MIPS assembly, XML, CSS, CUDA, SQL, Tcl, Haskell, Prolog, OCaml SYSTEMS Concurrency/parallelism/multiprocessing, operating systems, some file systems, some databases, some networking o Tools libpthread, POSIX, Linux, Android stack, valgrind, Cell concurrency libraries, Berkeley DB, ext3, PostgreSQL SOFTWARE ENGINEERING Object-oriented programming, some design patterns, software architecture, profiling, optimization, version control, some build systems o Tools gcc, gmake, svn/cvs, autoconf, automake, oprofile/gprof, emacs, Eclipse, bugzilla THEORY Languages and automata, data structures, graduate-level introductory algorithms, some randomized algorithms, some discrete mathematics, some logics TECHNICAL COMMUNICATION Technical publications/reports, presentations, some specifications, some technical collaboration ------------------------------------------------------------- RELEVANT COURSEWORK CS 61A: ..... Structure and Interpretation of Computer Programs CS 61B: ..... Data Structures CS 61C: ..... Machine Structures CS 162: ..... Operating Systems and Systems Programming CS 164: ..... Programming Languages and Compilers CS 170: ..... Efficient Algorithms and Intractable Problems CS 174: ..... Combinatorics and Discrete Probability CS 188: ..... Introduction to Artificial Intelligence CS 194: ..... Parallel Programming for Multicore CS 262A: .... Advanced Topics in Computer Systems CS 270: ..... Combinatorial Algorithms and Data Structures CS 294: ..... Current Berkeley Research in Programming Systems EE 20N: ..... Structure and Interpretation of Systems and Signals EE 40: ...... Introduction to Microelectronic Circuits PHY 324: .... Instrumentation/Computer Interfacing* Math 53: .... Multivariable Calculus Math H54: ... Honors Linear Algebra and Differential Equations CS 70: ...... Discrete Mathematics and Probability Theory MTH 537: .... Applied Abstract Algebra* Physics 7A: . Physics for Scientists and Engineers Physics 7B: . Physics for Scientists and Engineers ----------------- * At Southwest Missouri State University (in high school)