7/18 - 10/23 |
Engineering Manager,
Google, Boulder,
Colorado
-
Build and manage a team of software engineers, technical leads,
and managers building the next generation of asynchronous and
batch processing systems for Google Drive.
-
Design, implement, and operate Java-based software systems
running on Google infrastructure that handle all processing
needs for Google Drive that are not directly in the serving
path.
-
Coach software engineers, technical leads, and managers, helping
them to increase their spheres of influence within Google.
|
11/16 - 7/18 |
-
Build a new predictive analytics team at a new AWS development
center in Denver, Colorado by recruiting, interviewing, and
hiring Software Development Engineers and Research Scientists.
-
Establish a culture of technical and operational excellence
through formal training, informal coaching, design reviews, and
code reviews.
-
Design, implement, and operate a predictive analytics platform
on EC2, AWS Lambda, EMR, SNS, SQS, Kinesis, and S3.
-
Using techniques such as random forest and binary logistic
regression, train machine learning models to predict AWS network
failures in advance of customer impact.
|
11/15 - 11/16 |
Software Engineer,
Google, Boulder,
Colorado
-
Design and develop Google's billing and payment system, a Java
software stack for processing global customer invoice payments
and P2P payments using Google's production infrastructure.
-
Design, implement, and test software for processing bank
statements in MT940 and BAIv2 formats, properly classifying
statement lines based on incomplete and often incorrect payment
descriptions.
|
2/15 - 11/15 |
Site Reliability Manager,
Google, New
York, New York
-
Maintain production readiness for Google's internal production
monitoring systems, internal production rate limiting systems,
Cloud Pub/Sub product, and
Cloud Autoscaler product
by automating software rollouts, automating the monitoring and
management of machine resources, handling and automating cluster
turnups and turndowns, debugging and providing fixes for
production software errors, and providing production oncall
support.
-
Improve user isolation of Google's internal production
monitoring system by integrating with Google's internal rate
limiting system.
-
Represent product users with development and product management
teams when determining launch readiness of the Cloud Pub/Sub
product.
-
Manage a team of eight engineers, overseeing their career
development and performance management.
|
9/09 - 1/15 |
-
Lead a team of three overseeing the integration of QuIC, Inc.
open source features and code into the
Maemo,
MeeGo, WebOS, and
Fire OS, and
OpenWRT
operating systems.
-
Lead a team of two implementing a Python-based system for
measuring software product code maturity using
repo, git, and
Gerrit
to measure week-over-week differences in lines of code changed.
-
Serve as Architect for QuIC, Inc's Continuous Integration and
Release systems, overseeing scale increase by a factor of 75,
designing and coordinating new features in
Gerrit-based
developer workflow and Electric-Commander-based integration,
verification, and release automation systems to support change
propagation, verification, and release across more than 100
actively developed Linux Operating System codelines.
-
Expand reach of QuIC Linux verification and release processes to
other Qualcomm subsidiaries, creating a unified open source
mobile operating system release process spanning several
business organizations.
-
Rearchitect QuIC, Inc's
Android
software release process to allow for more rapid collaboration
with handset OEMs.
-
Found and lead the QuIC Linux DevOps team, establishing charter
and vision for the team, and career track and promotion
guidelines for Linux DevOps engineers. Integrate the new team
with QuIC Linux release management team and with QuIC
Information Technology teams.
-
Manage a team of five engineers, overseeing their career
development and performance management.
|
8/07 - 9/09 |
-
Design, implement, test, and maintain a large scale, enterprise
telephone hotelling system for 33,000 simultaneous users using a
Windows service implemented in C#, a web service written in
ASP.NET, and a storage backend consisting of Microsoft SQL
Server.
-
Design and implement enterprise integration solutions for Cisco
Unified IP Phones using the Cisco Unified Application
Environment as well as using Apache, MySQL, and PHP.
|
10/06 - 7/07 |
-
Define an architecture for a next-generation, two-way, digital
cable television tuner for Windows Vista PCs with Windows Media
Center.
-
Participate in cable industry standards bodies and develop
industry wide consensus for the two-way, PC, digital cable
television tuner.
-
Implement a UPnP network stack in an embedded Linux environment.
Implement a series of UPnP services that enable delivery of
premium cable television content to a Windows Vista PC.
|
7/03 - 7/06 |
Firmware Engineering Manager, Digeo, Longmont,
Colorado
-
Manage a team of 4-6 firmware engineers and testers tasked with
designing and implementing DOCSIS 2.0 compliant embedded cable
modem MAC, IP, and management firmware.
-
Manage relationships with DOCSIS testing laboratories to
facilitate the eventual certification of Digeo's embedded cable
modem implementation.
-
Design and implement low level system software for the initial
bringup of a new, embedded, system-on-chip ASIC containing three
MIPS-derived processor cores.
-
Design, implement, and test a complete, DOCSIS compliant, cable
modem firmware implementation from the MAC layer through the IP
layer.
|
9/00 - 4/03 |
-
Maintain a Virtual Private Networking (VPN) client, including
kernel mode IPSec drivers, a user mode Internet Key Exchange
(IKE) implementation, and a Qt graphical user interface on
Linux, Windows, and Mac OS X.
-
Maintain an embedded VPN codebase using a GNU GCC-based embedded
toolchain.
|
1/00 - 9/00 |
Software Engineer, Evoke Communications,
Louisville, Colorado
-
Design, implement, and test a UNIX-based network server program,
written in C++, for a voice over IP web chat system, using
industry standard protocols and codecs (e.g. SIP, H.323, G.723).
-
Maintain a Netscape plugin and an Internet Explorer ActiveX
control for the client side of the web chat application
including work on the GUI, network transport layer, and sound
card interface layer.
-
Install and administer a large number of computers running Red
Hat Linux 6.1 to host the server side of the web chat
application.
|
7/99 - 1/00 |
Senior Consultant, Component Development
Organization, BEA Systems, Boulder, Colorado
-
Design, implement, and test complete e-commerce solutions for
Fortune 50 corporations using Java, WebLogic Server, and
Enterprise JavaBeans.
|
9/97 - 5/99 |
-
Maintain the Windows 98 and Windows 2000 Shell, a large and
rapidly evolving, COM and C++ based, multiplatform,
multithreaded, graphical front end for the Microsoft Windows
series of operating systems.
-
Design, implement, and maintain new features for the Windows
2000 Shell in C, C++, ATL, and DHTML/JavaScript.
-
Maintain several older, C-based Control Panel applets for the
Windows 98 and Windows 2000 products.
|
1/95 - 9/97 |
-
Coordinate the actions of a three-member team to verify the
quality of Microsoft's MIDL compiler.
-
Maintain a large and evolving base of DCE RPC functional test
code written in C and C++.
-
Coordinate and administer the regular compilation and execution
of a large number (approximately 20,000) of RPC client/server
tests.
-
Design, implement, and execute a test plan to verify the quality
of MIDL-generated COM object interface marshaling code.
|