Resumé

Plain text resumé available.

John Fisher-Ogden

Contact:
Email: johnfish@cs.ucsd.edu

University of California, San Diego
Department of Computer Science & Engineering
9500 Gilman Drive
La Jolla, CA 92093-0114

Objective:
Seeking valuable experience in industry involving systems and networking topics.

Research Interests:
As a member of the Systems and Networking group at UCSD, my interests include distributed systems, overlay networks, internet security, fault-tolerance, and peer to peer systems.

Work Experience:

Education:
University of California, San Diego
September 2004 - December 2006
M.S. Computer Science
Focus: Systems and Networking
GPA: 3.82

University of California, Los Angeles
September 2000 - March 2004
B.S. Computer Science and Engineering
GPA: 3.95

Honors:
- Graduated UCLA summa cum laude
- Member of Tau Beta Pi, Eta Kappa Nu, Phi Beta Kappa, and Golden Key honor societies
- UCSD Excellent TA Award for 2004-2005

Teaching Experience:
- Teaching Assistant for Operating Systems (3x).
- Teaching Assistant for Server-Side Web Applications (2x). Class focuses on Tomcat, JSPs, Java Beans, and Struts
- Teaching Assistant for Enterprise-class Web Applications. Class explores J2EE and open source tools for creating large scale web applications (e.g. Amazon, Ebay)

Skills:
Programming Languages: C, C++, Java, Python, SQL, Javascript, JSP, ASP, PHP
Preferred: C++

Relevant Projects:
BARS (Spring 2006)
- Putting Bank Conflicts Behind BARS [pdf].
- A proposal for using Banked Arrays of Redundant SRAMs in processor caches to achieve multiple read and write ports without paying the usual high overhead.

Tsync written in C++ (Winter 2005)
- I contributed to Tsync (transparent synchronization) - a user level daemon that maintains a consistent view of data across all configured machines. Updates to volumes are multicast to all nodes. Versioning is done through SHA-1 hashes of the files being synchronized.

Benchmarking Linux system, written in C (Fall 2004)
- Using the CPU timestamp counter through rdtsc for high granularity of measurements, benchmarked various aspects of system performance.
- Benchmarks included:
- System call overhead, fork vs. thread creation time, latency to write-protect a segment
- RAM access time (accounting for L1 and L2 caches), RAM bandwidth, page fault latency
- TCP connection setup and tear-down latency, network latency, and peak bandwidth
- Size of file cache, sequential vs. random read latency

HTTP/1.1 Web server written in C (Winter 2005)
- Multi-threaded web server implementing HTTP/1.1 persistent connections through a pool of worker threads coordinated by a monitoring thread that listens and accepts connections.
- Stress tested web server by writing a simple load generator in C.

OpenRoad, written in Python (Winter 2004)
- The OpenRoad project at UCLA sought to provide live traffic data in a distributed system by leveraging GPS and WiFi enabled devices such as laptops, PDAs, or possibly cell phones.
- We built a user interface that, given your current GPS coordinates, grabs an appropriately zoomed map of your location and plots live traffic data on the map. Also, the system polls your current location periodically and pushes your own traffic data to others.
- Further, we hoped to leverage open WiFi access points for connectivity to push and pull traffic data (the map images are cached) so we implemented a wireless access point hopper for a Prism2 wireless card using the wlan-ng drivers.