Resume for Jordan Sissel

Email: jls at semicomplete dot com
Location: San Jose, CA

Objectives

Research, education, cooperation, and experimentation. I want to employ both software engineering and systems administration skills to keep your systems more reliable and sustainable while lowering the cost of maintenance.

Skills/Experience

Programming: Ruby, C, Python, Perl, C++, Java
Web Programming: (X)HTML, XML, CSS, JavaScript, CGI, AJAX, Comet (and more)
Platforms: Linux, FreeBSD, Solaris, Windows (XP & Vista)
Scripting: Bourne/Bash, TCL/Expect, PowerShell (WMI, .NET)
Database: MySQL, Berkeley DB, Bigtable
Networking: TCP/IP, debugging, various networking platforms (Cisco, etc)
XML: XSLT, XPath, DOM, SAX, XMLRPC, XSLFO, XUL

Education

Where: Rochester Institute of Technology
Major: Computer Science ( Minor: Economics )

Work Experience

Senior Ground Control Operations

Where: RocketFuel, Inc.

When: 07/2009-Current

Operations Systems Engineer

Where: OnLive, Inc.

When: 04/2008-07/2009

Production systems administrator/engineer on a small team. Shared responsibility for all areas of production network and systems administration, including design, implementation, and maintenance of production environments. My primary duties required design and implementation of practices, tools, and automation for a production system needing to scale to tens of thousands of hosts. Assisted and worked closely with IT, engineering, QA, and other groups in solving inter-group technology problems. Participated in and helped build on-call rotation.

Automation with config management (svn, puppet, etc) and truth database to automate the system deployment and maintenance of both Linux (CentOS 5) and Windows systems. Built a simple windows automation framework with powershell after failing to find a similar tool to perform the same tasks. Aided in operational and software archictecture design and policy creation. Designed and implemented tools to increase developer agility in deployment and debugging in a production environment. Drove effort to educate and ensure operational best practices were followed in all stages of software development. Participated in on-call rotation. Designed and lead implementation of a cross-platform service monitoring system to allow quick black-box health and stats monitoring of all business-critical production services. Assisted with production security risk management through secure network and software design.

Project and technical lead of production windows system automation and deployment. Designed and built a system to automate configuration and maintenance of production Windows XP and Vista hosts; such maintenance includes device driver revisions, user profile configuration, automated application installation, and other system configuration. This automation system increased reliability and performance of system maintenance and (re)installation and additionally effected a major boost in confidence of correctness in our windows systems which helped improve all stages of the product from development to QA to deployment.

Site Reliability Engineer

Where: Google, Inc

When: 06/2006-04/2008

Cluster and scalable systems administrator for systems with multiple clients and usage patterns. Network and software troubleshooting and monitoring. Automation via shell/python for myself and coworkers and via web interfaces for customers. Responsible for maintaining critical backend systems which power many Google products. Primary duties revolved around continued maintenance, analysis, and improvement of clusters up to sizes of tens of thousands.

Built a web-based self-service web application to help internal customers fulfill some requests instead of filing tickets. Was the "go to" guy on my team regarding information for many pieces of Google infrastructure. Mentored several members of my team, including those senior to me. Developed several tools to aid in troubleshooting and debugging. Prototyped tools and presented many ideas for improving the service my group provided.

Skills used: Python, network diagnostics, shell scripting, perl, scaling services, on-call support. Clustered filesystems and databases (Bigtable, GFS, etc).

Unix Systems Analyst

Where: Computer Science Department at Rochester Institute of Technology

When: 10/2005-05/2006
Computer Science Department at Rochester Institute of Technology Configuration and deployment of Solaris-based servers with open source and commercial software. Troubleshoot software bugs and inconsistencies. Assist with faculty and student technical support. Skills used: Solaris, shell scripting, perl.

Cluster Engineer

Where: College of Engineering, Rochester Institute of Technology

When: 06/2005-09/2005
Administrative support for parallel computation research on a 24-node Fedora/ Linux cluster. Instructed co-workers on use of revision control, use of community documentation, development with MPI, and working with Unix environments. Developed faster algorithms for existing software applications to meet research project needs. Skills used: Linux, C, MPICH, Subversion, software debugging.

Systems Programmer

Where: ITS at Rochester Institute of Technology

When: 09/2004-03/2005
Development and maintenance of user and network management systems. Improved existing account management systems for campus-wide deployment of LDAP, Active Directory, DCE, and VMS services. Debugged and improved network management system integrating dhcp and dns with computer registration. Skills used: C, PHP, m4, make, cvs, Oracle, Pro*C

Unix Systems Analyst

Where: Computer Science Department at Rochester Institute of Technology

When: 07/2004-08/2004
Design and deployment of GNOME-based Solaris desktop environment. Focused on security and ease of use. Supported faculty and students on Solaris 9 technical issues.

Business Systems Developer

Where: OnlySecure.com (Livingston, MT)

When: 12/2002-09/2005
Developed an online store sales reporting and automation system from the ground up with an evolutionary development model. Provided service maintenance and support for mission critical systems across multiple systems. Skills used: Perl, C, PHP, mySQL

Open Source and Side Projects

Systems Administrator Advent Calendar

(Technical writing)
I'd followed the Perl Advent Calendar for a few years, and in late 2008 I decided that there needed to be a similar project with sysadmin topics; one article for each day of December up to Christmas. I gathered a few fellow sysadmin bloggers together to work on ideas and articles. The first year, I wrote 23 of the 25 articles. This project encompasses some of my best writing. URL: http://sysadvent.blogspot.com/

Grok: Log analysis and reporting tool

(Perl, C++, C. Perl, Boost Xpressive, and PCRE regular expressions)
Having grown tired of reading authentication and system logs looking for problems, I decided to make the process easier. If an event is predictable, then we can make a script handle it. This tool is a very configurable Expert-like system that allows you to define predicted patterns in log or program output aswell as reactions to those patterns. It will also process text and generate patterns which match that text. This tool was later rewritten in C++/Boost, and finally ended up in C using libpcre.

xboxproxy: Network proxy for xbox and itunes

(C, libpcap, libnet, networking)
In an effort to be able to play Halo 2 with some out of state friends, I wrote an xbox system link proxy that would essentially bridge only xbox network (broadcast) traffic across across layer 3 networks using UDP. Written in C and uses libpcap and libnet. A later update added multicast support so Apple's Rendezvous (mdns) protocol could span networks segments.

Firefox extensions

(javascript, xul, css)
To date I have written 2 firefox extensions. One, to allow you to search your open tabs for keywords, and another to allow you to trivially edit query parameters in the url bar. These extensions required the use of XUL (mozilla's toolkit language) and JavaScript.

FreeBSD Mouse Driver Rewrite

(C)
The FreeBSD ps/2 mouse driver and userland mouse drivers both support a number of specific mice in a nonmodular way. I rewrote the userland mouse tool completely from scratch and turned the kernel ps/2 driver into a simpler userland-device middleman. The userland mouse tool is capable of support any kind of mouse through a driver loadable at runtime. It also has ps/2 and other protocol libraries useful for talking to mouse devices from the userland.

XML Presenter

(XML, XSLT, HTML, JavaScript)
My lack of familiarity with presentation software such as PowerPoint led to the creation of an XML/XHTML-oriented slide show project. It uses technologies with which I am very familiar to create slideshows. Individual slides are XHTML subdocuments of a simple XML envelope. Presentations can be viewed with any modern web browser, eliminating the need for a proprietary slideshow viewing tool.