Job Opening: Senior Linux App Developer
tl;dr: We're looking for a strong C++ dev with experience creating great Linux apps to lead development of our new client.
Who we are
Tuple is a macOS app for remote pair
programming (with a Linux client on the way).
We (Ben, Spencer, and Joel) founded the company four years
ago because we disliked pairing over Slack and Zoom. We believed that by focusing
on remote pairing exclusively, we could create a tool that developers would
Turns out we were right! We've grown to millions in revenue and tens of
thousands of paid users in four years without any outside funding. Our product
is used by the savvy engineers at companies like Shopify, Stripe,
Spotify, and Netflix.
(Want the latest on how things are going?
Ben hosts a weekly podcast
where he shares regular updates.)
For the first 4 years of its life, Tuple was available only on macOS. However, our users kept requesting a Linux client (and we love making our users happy), so we decided to build one.
Over the last year, we split the old app into a macOS-specific component and a cross-platform real-time communication engine (using customized WebRTC under the hood).
Additionally, we've created a Linux version of our application (built atop the cross-platform engine) and launched a small alpha to early users.
On March 1st, 2022, we hope to make the (now polished, reliable, and close to feature parity) Linux version of Tuple generally available.
This project is currently owned by our CTO, with support from the rest of our 3-person Engineering team.
We're looking for someone with significant Linux app development experience to join this project, make substantial contributions, and quickly take over primary responsiblity for development of the Linux client.
This role reports to our CTO, Spencer.
Things you'll do a lot
- Collaborate with our Product Designer to turn mocked-up features into shipped code
- Pair program with our other engineers to spread knowledge, foster connections, and make work more fun
- Collaborate with folks in Success/QA to fix bugs affecting our customers
- Use your hard-won wisdom to make savvy architectural decisions about the codebase
- Provide feedback to our Product folks about how to make the app feel at home in the Linux ecosystem
- Write tests for your code to prevent regressions
- Warmth, kindness, and a willingness to pair program regularly (using Tuple, obvi)
- Deep knowledge of C++ and C
- Significant experience with UNIX/POSIX
- A work day with 4+ hours of overlap with Boston's
- Multiple years of experience building apps with GTK
- Comfort debugging distro-specific issues (you probably have 5+ VMs on your machine already)
- Comfort interfacing with X11 APIs
- Experience with PulseAudio APIs
- Experience with GTKMM
- Experience with OpenGL
- Experience writing tests with Catch2
- Experience distributing Linux apps with Snap, Flatpak, or AppImages
- Knowledge of the GNOME HIGs and an interest in building apps that are good citizens on the platforms they target
- Upstream patches merged into GTK or GTKMM/other open source GTK app examples
- You know what LFS is and maybe even completed it yourself
- You've written your own widget toolkit and event loop on top of X11 for fun/education
- You have a well groomed dotfiles system
Why you might want to work with us
- We're quite small (fewer than 10 employees), so there are no layers of bureaucracy to work through. You can have a huge impact here.
- We rarely have meetings and are very flexible on work schedules.
- Our team is warm and friendly but highly productive.
- You'll have a front-row seat at an early-stage, fast-growing company. If you hope to start your own thing someday, this could be good preparation.
Why you might not want to work with us
- Tuple is a complicated app! There will be lots to learn before you can be truly productive.
- While we host several in-person retreats per year, you'll spend most of your time working remotely.
We're looking for someone great, not someone cheap. If you're expensive but amazing, we'll make it work.
How to apply
Email email@example.com. Please describe why you're a great fit for this role and provide a few links to projects/code you're proud of.