I am a software developer with over 16 years of professional experience. I actively seek technically challenging problems with meaningful social impact.
Software Developer @ Early team member on the Google Genomics team, designing and writing key components of the Google Genomics API and backend, including the variants API released in October of 2014.
https://cloud.google.com/genomics/
Technology Review article on Google Genomics:
http://www.technologyreview.com/news/532266/google-wants-to-store-your-genome/
Release announcement on the Google Research blog:
http://googleresearch.blogspot.com/2014/02/google-joins-global-alliance-for.html From July 2013 to Present (2 years 6 months) Software Developer @ Developed crop yield models based on weather data, using Clojure, Cascalog, and Mahout to run at scale on Amazon's Elastic Map Reduce service. From January 2012 to June 2013 (1 year 6 months) Software Developer 4 @ Wrote pipeline for automated discovery of CRISPR elements for all prokaryotic genomes in MicrobesOnline (MOL) Wrote data aggregation and resolution scheme for MOL, integrating metabolite, reaction, and pathway data from a variety of online databases (e.g. KEGG, MetaCyc, and BiGG.) Wrote a web-based front end for this metabolic pathway data on MOL. Writing the Genome-Linked Application for Metabolic Maps (GLAMM) - a platform for visualizing functional data (e.g. mRNA expression, protein levels, metabolic flux, metabolite levels, etc.) in the context of metabolic pathways, as well as finding routes for novel synthetic pathways for biofuel production, available at http://glamm.lbl.gov. From December 2008 to February 2012 (3 years 3 months) Software Developer @ Designed and wrote large sections of BezelServices - Mac OS Xs HID event handling service. Greatly expanded the infrared receiver driver, including integrating it into the AppleTV. Wrote a variety of demo applications for prototype iPad hardware and software, and a wide variety of novel human interface technologies. Managed a small software and hardware prototyping team. Extensive cross-team collaboration with software and hardware engineering, industrial design, user interface, product design, and art teams. From December 2005 to December 2008 (3 years 1 month) Software Developer @ Implemented and tested components of the Java JSR-184 Mobile 3D graphics API on the Imageon 2300 SOC. Integrated this API into Win32 and WinCE platforms. Coordinated with customers to make systemic changes to our existing OpenGL ES driver (written in C) to optimize performance on and add features to their handheld products. From December 2003 to May 2005 (1 year 6 months) Hardware Engineer @ Developed a transaction level simulator (transactor) in Vera to verify the behavior of a PCI Express implementation. Wrote Altivec-compatible assembly code in order to test video processing cores on a custom ASIC. Wrote and debugged transactors and tests for the HyperTransport bus implementation in the Apple PowerMac G5. From January 2002 to December 2003 (2 years) Software Developer @ Implemented fixed-function shader components (e.g. noise generators, texture filters, etc.) in a functional, bit-accurate C simulation of custom shader hardware. Wrote and assessed the impact of hand coded, vectorized linear algebra routines using the Intel SSE2 assembly instruction set. From May 2001 to November 2001 (7 months) Methodology Engineer @ Developed a tool for quantifying the correlation between circuits simulated using static timing models and those simulated using SPICE models. Wrote a tool to optimize the routing and buffering of clock lines between hardware blocks on an ASIC. Developed a tool and methodology for distributed synthesis of Verilog code, reducing the time for synthesis by a factor of four. From June 1999 to May 2001 (2 years)
BS, Electrical and Computer Engineering @ Carnegie Mellon University From 1995 to 1999 Coursera John Bates is skilled in: Java, Linux, Software Engineering, Algorithms, Unix, Agile Methodologies, Software Development, Git, Clojure, Cascalog, Genomics, Web Applications, Distributed Systems, Computational Biology, Go