Software Engineer - Web Application Performance (WAP) at Mighty

Posted on: 05/04/2022

Location: (REMOTE)

full time

Original Source

Tags: figma typescript

At [Mighty](https://mightyapp.com/), we’re working hard at building a computer you’ll never need to upgrade that changes the possibilities of what apps can do. Mighty makes Google Chrome faster and uses 10x less memory by streaming it at extremely low-latency from the cloud. Check out our [FAQ](https://www.notion.so/mightyapp/Mighty-is-hiring-945d3168d3e34a37883ca4d823ed734f) for answers to some quick questions you might have. 100% remote work, but only accepting candidates for this role from the U.S., Canada and Western Europe, currently. **If you join us, you’ll be an early team member in helping shape:** * Our future company culture * Our engineering practices * People that we hire * The direction & focus of our products **Engineers on the team today:** * Work in C++ and TypeScript primarily * Are supportive—especially when teammates are faced with new challenges * Are left to autonomously figure out the solutions to their challenges * Put themselves in the shoes of our users to craft a great experience * Value clear, frequent communication (we do a lot of reading & writing) * Enjoy being a generalist and are not tied down to a specific programming language or surface area of our codebase * Are naturally curious and willing to take a step to learn something they don’t have experience in * Feel a great sense of accountability to each other * Uphold best practices in engineering, security, and design **Skills & Experience** * 4+ years of working full-time as a software engineer * [Strongly Preferred] Experience with CPU and/or GPU optimization, as well as performance measurement * [Preferred] Experience with a C-flavored language * [Preferred] Systems-level experience with Linux or macOS * [Bonus] Understanding of Skia, WebGL, OpenGL ES, or Vulkan * [Bonus] Understanding of Chromium or another browser **Here are examples challenges we wish to work on:** * Research how to make Figma and Google Docs snappier * Design a performance measurement suite to track improvements (and regressions) accurately * Explore performance degradations when the user is about to run out of GPU memory * Lower the time for [First Meaningful Paint](https://web.dev/first-meaningful-paint/) * Explore methods to optimize Chromium for our hardware * Explore novel ways to speed up and/or parallelize Chromium given that we can be greedy with hardware resources * Make in-browser games like [Townscaper](https://oskarstalberg.com/Townscaper/) snappy and performant * Create custom tooling for performance measurement as needed **Here are examples of things we’ve worked on:** * Reverse engineering Mac’s scrolling algorithm * Implementing a custom event dispatch IPC mechanism to bypass X11 when sending input events to Chromium by reverse-engineering its event processing code. * Implementing cross-platform Drag and Drop file uploading. We trick Chromium into thinking it's uploading a file from the Linux filesystem while, behind the scenes, we stream the file from the user's Mac. * We've hacked the [Chromium](https://www.chromium.org/) [source code](https://source.chromium.org/) to lower GPU memory usage and minimize perceived input latency. * We've added a bridge to move some parts of Chromium to run on the user's client device. For example, the code used to display macOS authentication dialogs is invoked through our custom bridge from Chromium on Linux. * We've created a custom emoji picker for Mighty to improve the user's experience by allowing Slack-style emoji selection. 🤪