Software Engineer Consultant
2021 - 2021A Toptal Client (Self-Service Data Analytics)- Developed features and fixes for a C++ Windows desktop ODBC-based application.
- Designed, implemented, and deployed a unified system for test management across languages (C++/Python/JS) and frameworks (GoogleTest/Catch2/Pytest/Jest/custom). Integrated within GitLab CI/CD.
- Designed, prototyped, and presented on new Python framework for generic testing of dozens of data sources in isolated environments using Docker.
Technologies: C++, Python, Docker, GitLab CI/CD, ODBC, SQLSenior Software Engineer
2014 - 2019Google (Search Team)- Served as the tech lead of a system for querying and interpreting data from various search engines. Led a team of three engineers plus contributors in providing consultation and custom dev work to dozens of search sub-teams.
- Developed means to integrate disparate sources of data (from UI, logs, additional side channels) for cohesive analysis.
- Spearheaded cross-department initiative and design to transition from consulting model to principled API with plugin points.
Technologies: Linux, Google Bigtable, Google Cloud Storage, gRPC, Mercurial, Go, Python, JavaScript, C++, Java, ProtobufSenior Software Engineer, Infrastructure
2012 - 2014Google (Chrome Team)- Acted as the tech lead and manager for Chrome's WebDriver automation initiative (aka ChromeDriver). The team included three full-time engineers and a half dozen contributors from stakeholders across Chrome and Google.
- Designed and led the development of ChromeDriver for Windows, macOS, Linux, and Android (C++, JavaScript, Python). The application supported an HTTP REST API and automated Chrome via automation IPCs and Chrome DevTools (over WebSockets).
- Designed and implemented new commands and events for input simulation, handling JavaScript dialogs, file input selection, and frame navigation tracking in WebKit's DevTools protocol.
- Established dev processes for building, testing, releasing, bug handling, and customer interaction.
- Integrated ChromeDriver into the test cycle of popular Google products.
- Represented the Chrome team in several W3C WebDriver standardization meetings.
Technologies: C++, Python, JavaScript, HTML5, Selenium WebDriver, WebSockets, REST APIs, WebKit, Chrome Developer Tools, Gerrit, Subversion (SVN), GitSoftware Engineer in Test
2009 - 2012Google (Chrome Team)- Created a system in Python to traverse the web, perform rudimentary UI interaction, and detect/triage/report crashes. Integrated system with Chrome's fuzzing infrastructure and crash database.
- Extended Chrome (C++) to allow for automation of e2e test cases involving DOM querying/manipulation. Provided IPCs to allow vendors to write out-of-process tests using Python.
- Created a C++ framework (based on GTest/GMock) for the ChromeFrame team to write e2e tests with Internet Explorer (IE). Allowed configuring canned HTTP server responses and basic IE automation through MS Active Accessibility and IAccessible2.
- Extended Chrome extensions C++ testing framework (based on GTest) to run on Mac and to support extension update/installation test case scenarios. Improved test stability by fixing race conditions on Linux.
- Inherited a lab with GPUs for automated testing of O3D, a 3D graphics browser plugin. Wrote the infrastructure to automate various OS' browsers and perform snapshot-based testing. Integrated with Buildbot CI and made a web app for debugging failures.
Technologies: C++, Python, JavaScript, HTML5, Chrome Extensions, Google Test, Google Mock (GMock), Selenium, Gerrit, Subversion (SVN), SocketsSoftware Engineer Intern
2008 - 2008Argon ST- Wrote integration tests for Java and C++ applications.
- Debugged test failures and other bugs in multithreaded C++ code.
- Participated in team design and bug triage meetings.
Technologies: Multithreading, C++, JavaSoftware Development Engineer Intern
2007 - 2007Microsoft- Developed a macOS desktop application for integrating with a Windows-only issue/bug management system.
- Learned and made use of MacOS's Cocoa and Core Data frameworks, as well as team-specific Objective-C conventions.
- Held a design/code review meeting and presented the application at a department meeting.
Technologies: MacOS, Objective-C, CocoaSoftware Developer Intern
2005 - 2006NASA- Contributed to the development of a platform for viewing/exploring data in virtual 3D reality as a member of a student team. Wrote C++ to allow recording and playing back flights on Mars terrain.
- Added functionality to CFD application in Objective-C to automatically determine the curve of intersection between two meshes. Exposed functionality and configuration parameters via a UI.
- Helped present and demo both technologies at department and school meetings.
Technologies: C++, Objective-C, Cocoa, MacOS, Linux