💡 If you apply, we'd love you to tell us about the most impressive thing you've ever built in place of a cover letter.
Engineers on the team today:
Work in C++ and TypeScript primarily
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
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 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 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. 🤪
About this role
February 12th, 2022
January 13th, 2022
Learn about Mighty and their company culture.
Mighty is a new browser that lets you have more tabs while taking 10x less memory. Built for speed, Mighty streams your browser from a powerful computer in the cloud.
After 2 years of hard work, we've created something that's indistinguishable from a Google Chrome that runs at 4K, 60 frames a second, takes no more than 500 MB of RAM, and often less than 30% CPU with 50+ tabs open. This is the first step in making a new kind of computer.
If you're not sure what that means, imagine your browser is a Netflix video but running on cutting-edge server hardware somewhere else.
Our mission at Mighty is to make a new computer that changes what apps can do
There are four components to this idea:
Browser = OS
When we first started Mighty, our plan was to stream Microsoft Windows. But after talking to users we learned that they were using their browser most of the time and what they really needed was a faster browser:
The OS is becoming increasingly irrelevant as we near the end of a multi-decade shift from desktop to web apps. Now even applications you install (Slack, Notion, Figma, etc.) are often made with Electron, which is largely running the engine of a browser.
From the user's point of view, the browser is the operating system. That's where they spend their time and where apps run. Obviously operating systems will continue to exist, but they will shift into more of a background role.
Ever since Amazon Web Services launched EC2 and S3, developers have benefited from new kinds of services that helped them manage and scale their systems. What we haven't seen yet is cloud services aimed at helping end users. But there is a lot of potential to do that too.
Hardware inspires software and software inspires hardware—a never-ending virtuous cycle.
We still upgrade our computers but usually either when keyboard keys are falling off or when we feel like "it's time" because everything is running so slowly. It's not straightforward to pick the right Windows computer (80%+ of humanity still runs Windows, not macOS)—what do you search for? I had to buy one for my mother and Googling "Best Windows Computer 2021" still prevails. Battery life still hasn't achieved multi-day performance despite it being the most desirable improvement amongst consumers. What gives?
One answer is moving more client-side compute to the cloud. From there, it's possible to change the constraints of the computer both in terms of software and hardware more rapidly.
If you can move the most demanding processing, then battery life can finally improve because video decode and render times (we're streaming video here) get more efficient with better chipsets.
As new processors come to market, we're able to acquire and put them in production as soon as supply is available. If a user desires more memory, that's an easy flip of the switch—no downtime. Need GPUs to render all those assets in a huge Figma file? Done. Supercomputers for all. When you need them.
On the software side, we can make the best choices across users running the same hardware/software stack, ranging from picking the optimal DNS provider (22.214.171.124, 126.96.36.199), to shaving a few milliseconds off page loads, to caching frequently used web apps as long as possible to make them feel "instant."
By changing the constraints we're all used to as software and hardware engineers, a new kind of computer is possible. A computer that can directly benefit consumers to take advantage of cloud infrastructure and networking.
If most of the time people spend is in a browser and most of the processing and system resources are offloaded, their computer won’t feel slow as apps become more demanding.
You might not need the best computer specs if the other computer you're using is in the cloud. So we think prices will drop over time and computer lifetimes will lengthen encouraging manufacturers to focus on other differentiators: durability, weight, displays, design, and battery life.
Latency & the Internet
For Mighty to succeed, we have a strong incentive to find ways to reduce latency. Specifically the latency our customers might feel when they type, move their mouse, scroll, or see smooth 60 FPS animations when using our streaming browser.
We plan to contribute some of our revenue and funding to benefit everyone to realize this goal. That might be researching new networking protocols or standards, working with router manufacturers, research into congestion algorithms, education around WiFi, and helping push policy around the definition of “broadband” globally.
We have a lot to learn—we welcome all perspectives.
In summary, our master plan is:
Create a browser that reduces the need to upgrade your computer
Drastically improve computers in the cloud using modern advances in networking & elastic infrastructure
Replace expensive physical computers with low powered inexpensive ones to achieve multi-day battery life
While doing so, improve worldwide latency of the Internet
Our cultural values are...
An abridged version
Making users happy: our decisions, intention, results, and motivation stem from trying to please our users.
Asynchronous communication: deep work requires large chunks of time so we try to communicate asynchronously to provide more time for deep work.
Results driven: We do what we promised each other, customers, users, and investors. While effort is recognized, it’s not regarded equally. We care about what you achieve.
Kindness: While being kind may not seem ruthlessly connected to outcomes, it does make work a lot more fun. We suspect that’s key to doing great work over a long period of time.
Speed: We believe speed is a competitive advantage as a company. As companies get larger, they tend to get slower—we hope to decelerate that as much as possible. You should feel comfortable asking: “Could we do this faster?”
We want to be upfront about this: we do not institute quotas to be diverse — we have a goal to be the most talented company in the industry and we end up being diverse as a result of that goal. Mighty plans to be a globally distributed company and we recognize that when it comes to politics, we value different viewpoints, but we don’t want to allow those differences to negatively affect our relationships with each other.
Learn about the technology and tools that Mighty uses.
About this role
February 12th, 2022
January 13th, 2022