Ken Kania, Developer in Charlottesville, VA, United States
Ken is available for hire
Hire Ken

Ken Kania

Verified Expert  in Engineering

Software Developer

Charlottesville, VA, United States

Toptal member since January 22, 2021

Bio

Ken started C/C++ programming in secondary school in order to make computer games. This enabled him to land internships at NASA and Microsoft while attending Virginia Tech. After graduation, he worked at Google for 10 years as a member of the Chrome and Search teams, developing cross-platform desktop applications, web apps, and distributed systems.

Portfolio

A Toptal Client (Self-Service Data Analytics)
C++, Python, Docker, GitLab CI/CD, ODBC, SQL
Google (Search Team)
Linux, Google Bigtable, Google Cloud Storage, gRPC, Mercurial, Go, Python...
Google (Chrome Team)
C++, Python, JavaScript, HTML5, Selenium WebDriver, WebSockets, REST APIs...

Experience

  • C++ - 15 years
  • Python - 10 years
  • HTML5 - 9 years
  • JavaScript - 7 years
  • OpenGL - 5 years
  • gRPC - 4 years
  • React - 2 years
  • Unreal Engine 4 - 1 year

Availability

Part-time

Preferred Environment

Go, JavaScript, Python, C++, Java, React, gRPC, Linux, Windows

The most amazing...

...product I've developed is ChromeDriver, a cross-platform desktop app that is a cornerstone for web app testing for thousands of companies and individuals.

Work Experience

Software Engineer Consultant

2021 - 2021
A 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, SQL

Senior Software Engineer

2014 - 2019
Google (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, Protobuf

Senior Software Engineer, Infrastructure

2012 - 2014
Google (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), Git

Software Engineer in Test

2009 - 2012
Google (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), Gerrit, Subversion (SVN), Sockets

Software Engineer Intern

2008 - 2008
Argon 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++, Java

Software Development Engineer Intern

2007 - 2007
Microsoft
  • 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, Cocoa

Software Developer Intern

2005 - 2006
NASA
  • 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

ChromeDriver

https://chromedriver.chromium.org/
Tech lead/manager for Chrome's WebDriver automation initiative (aka ChromeDriver). Represented the Chrome team in several W3C standardization meetings. Designed and led the development of ChromeDriver for Windows, macOS, Linux, and Android (C++, JavaScript, Python). The team included three full-time engineers and a half dozen contributors from stakeholders across Chrome and Google. Established dev processes for building, testing, releasing, bug handling, and customer interaction. Worked on integrating ChromeDriver into the test cycle of popular Google products. I transitioned ownership of the project when I left the team in 2014.

Haven (PC/Console Game) (in-development)

This is a 3D PC/console game I started as a side project in 2020 (with one other creative designer). The game is a hybrid of 3D open-world adventure with 2D arcade-style gameplay. The player is given a traditional side-scrolling view of the 3D character and world, in which they can navigate by going forward and backward on a system of interconnected paths.

I first experimented with different 3D/2D hybrid approaches in Three.js/WebGL and Box2D (via WebAssembly) before moving to Unreal Engine 4 for prototyping/development.

Although the game is still in the early stages (we have a 5-year roadmap), we have rudimentary functionality for a player to navigate the world and combat enemies. The chief difficulty/customization involved so far has been supporting 2D-like paths in UE4's 3D/FPS-centric model. The UE4 editor has been extended to allow defining paths (using UE4 splines) on which object placement, navigation, physics (and eventually AI) are intelligently constrained. Level designers can layout platforms which automatically conform to the curvature of defined paths.

Animal Catch (PC/Web Game)

A 2D top-down multiplayer game for PC and web. I wrote this initially in high school as a PC game for my younger sister. When I was in quarantine after returning from the Netherlands in 2020 (due to the virus outbreak), I reimplemented a similar multiplayer version for the web.

Each player controls an animal attempting to escape from the zoo, which involves navigating through obstacles and avoiding zookeepers. Both versions of the game also included a level editor for custom level creation.

Initially implemented using OpenGL/GLUT, the web version used PeerJS (for peer-to-peer networked play), Matter.js (for physics simulation), and HTML5 Canvas.

Echo Racing (PC Game)

A 3D aircraft racing game for the PC which my brother and I made in high school. I created a program for crafting terrains and static objects, as well as the ability to load and display these in-game. Written in C++ using OpenGL and SDL.
2006 - 2009

Bachelor's Degree in Computer Science

Virginia Tech - Blacksburg, VA

Libraries/APIs

Selenium WebDriver, Protobuf, React, OpenGL, Node.js, Three.js, Sockets, REST APIs, Matter.js, HTML5 Canvas, WebGL, WebRTC, ODBC

Tools

Chrome Developer Tools, GitLab CI/CD, Git, Mercurial, Subversion (SVN), Gerrit

Languages

Java, C++, JavaScript, Python, HTML5, Go, Objective-C, GLSL, SQL, GraphQL

Frameworks

gRPC, Django, Cocoa, Box2D, Unreal Engine 4, Google Test, Google Mock (GMock)

Platforms

Windows, Linux, MacOS, Android, Docker

Storage

Google Cloud Storage, Google Bigtable

Other

Software Engineering, Multithreading, Chrome Extensions, WebKit, WebSockets, PeerJS

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring