Ken Kania
Verified Expert in Engineering
Software Developer
Charlottesville, VA, United States
Toptal member since January 22, 2021
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
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
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
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.
Senior Software Engineer
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.
Senior Software Engineer, Infrastructure
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.
Software Engineer in Test
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.
Software Engineer Intern
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.
Software Development Engineer Intern
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.
Software Developer Intern
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.
Experience
ChromeDriver
https://chromedriver.chromium.org/Haven (PC/Console Game) (in-development)
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)
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)
Education
Bachelor's Degree in Computer Science
Virginia Tech - Blacksburg, VA
Skills
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring