Tim Swast

Bio

Tim Swast is a Software Friendliness Engineer (a.k.a Developer Programs Engineer) in Seattle, writing sample applications and tutorials about Big Data on Google Cloud Platform. In his free time he draws pixel art and writes mathematical simulations. His passion is showing the use of data and models to make better decisions.

Work Experience

Google (Seattle, WA) [August 2015 to present]

Software Friendliness Engineer (a.k.a Developer Programs Engineer) for Google Cloud Platform.

Google (Austin, TX) [August 2013 to August 2015]

Software Engineer for the Google for Work (Enterprise) team. I have worked on three projects so far, working primarily in Java, Python, and JavaScript, with some Go and Dart.

Oracle (Austin, TX) [August 2011 to August 2013]
Software Engineer, focusing on SPARC performance

As an Associate Software Engineer in Oracle Strategic Applications Engineering I measured and published standard benchmark results, run on Oracle hardware. In the months before the SPARC T5-8 release, I ran and published the TPC-C benchmark as part of a small team. It was similar to a DevOps role where I set up and ran the distributed system: application software, operating system, hardware, and network.

As a DevOps-type role, I wrote the tools needed to set up and monitor the system. Since we were working on new hardware and new operating systems, we had to roll our own installation scripts as well as occasionally using cluster SSH to run commands on hundreds of machines at once.

The monitoring data we collected included everything from DTrace profiles of kernel functions to "iostat" data about disk activity. I wrote software to parse, analyze, and visualize this data, both in realtime (to identify problems in a running benchmark) and in batch (to help identify bottlenecks). I used a variety of open source tools to construct a data toolkit for other teams running benchmarks at Oracle, including RRDtool, D3.js, and the Python libraries Graphite and Matplotlib for visualization, and the libraries Numpy and SciPy for batch analysis (clustering, outlier detection).

In addition to installation and monitoring software, I wrote microbenchmarks to simulate various parts of the workload. One such microbenchmark issued asynchronous I/O of the appropriate size to simulate REDO log writes. These microbenchmarks helped the team to evaluate different hardware and software stacks as part of capacity planning.

In addition to running as close to "metal" as possible, I also evaluated many different virtualization techniques and evaluated how they relate to performance. I have helped my coworkers administer, collect, analyze, and compare data collected from systems using Zones, LDOMs/OVM-for-SPARC, VirtualBox, and VMware.

Applied Tribology (Byron, WI) [part-time, June 2005-August 2013]
Software Engineer, Machine Reliability

Applied Tribology is a consulting company run by Joseph Tevaarwerk which helps with reliability analysis as well as fluid dynamics. I was the primary software developer working on statistical software, working directly with Joseph on the projects he needed. This included anything from updating Fortran and TrueBasic code to run behind a new graphical interface, to rewriting utilities in Python for desktop computers, creating visulizations of failure data, and creating custom iPad apps in Objective C.

Logos Bible Software (Bellingham, WA) [Summer 2008 & 2009]
Software Engineer

As a Software Development Intern, I helped develop the C#/WPF application, Logos Bible Software 4. I specialized in creating the data visualization widgets. These tools show heat maps and charts of words, phrases, topics, and grammatical structure across many different biblical texts. I also optimized and restructured code, providing at 10x speed-up in tree visualization animations.

A river-like chart of grammar used in biblical text

The widgets I created were used in a product with many hundreds of thousands of lines of C# and C++ code, built by a team of 12 full-time developers, 12 interns, and a handful of designers. To make all of our lives better, I implemented unit tests to ensure the the widgets I built could be easily used in any part of the project.

Mercury Marine (Fond du Lac, WI) [July 2006 to August 2007]
Software Engineer

As a Software Development Co-op I wrote web software to support the Design and Engineering department. This included anything from inventory tracking to R&D tools.

Skills

Programming Languages

I know these languages very well, and am very comfortable in these languages because I use them almost daily for the past few years.

I have used these languages professionally. I am still somewhat comfortable in these, but I am not an expert in them.

I have used these languages professionally. I no longer use them often or at all, but I'm confident that I could relearn them very quickly.

Software Engineering

Automated testing

I wrote unit tests for Logos Bible Software and Applied Tribology, but since joining Google, I have learned a lot about writing testable software, unit tests, and integration tests. I am an advocate on my team for writing tests. I lead by example by including tests in every change I make and distribute "Testing on the Toilet" fliers every week to ensure that my team is up to date on the latest techniques.

Agile

I participate in sprint planning and task allocation. By working in an Agile way, this has helped provide more accurate estimates and keep the bug list under better control.

Version Control

I'm comfortable in many different forms of version control, using the following frequently:

Other forms of version control I have used professionally, but haven't used much lately:

Other technologies

Education

Texas A&M University
[January 2013-Present]

M.S. Mathematics - Computational Mathematics
Overall GPA: 4.00/4.00
Degree in-progress.

University of Wisconsin—Madison
[January 2008-May 2011]

B.S. Computer Science and Mathematics
Overall GPA: 3.94/4.00
Graduated.

Volunteer Work

I enjoy helping charities with my skills. These are some of the projects I have volunteered for on a long-term basis.

Contests & Honors