Software Engineer, iOS
Raycast makes it simple, fast and delightful to control your tools within the macOS ecosystem. We're looking for our first Mobile Engineer to help us define and build our native iOS application from the bottom up. You’ll have an unique opportunity to shape what "Raycast for iOS" looks and feels like.
Raycast is a native macOS application with a significant focus on top-notch UI and interactions - we want our mobile experience to reflect the same values. We genuinely care about user experience, performance, privacy and ease of use. We’ve had enough of dealing with slow and clunky tools. Raycast is our attempt to let you enjoy your daily workflows without all the distractions.
Our macOS application comes with a set of built-in extensions such as Clipboard History, Floating Notes, Calculator and more. These extensions are an integral part of daily workflows for thousands of users, who have expressed their desire to make use of those same extensions on their phones and continuing experience the benefits of Raycast when they are away from their laptops. For this, we're looking for an experienced engineer who like to work on features from ideation to release, enhance existing features and come up with entire new and creative ways to make our users more productive on the iOS environment.
We have recently launched our Pro plan subscriptions, with “Raycast AI” at its core. These AI features not only became an integral part of our service offering, but have exceeded our expectations in terms of utilization and appreciation from our subscribers. Our ambition is to be provide even more value to them and become a competitive alternative to other AI tools on the mobile space.
We're a fully remote company spread across Europe and looking for candidates in EU-friendly timezones (CET ± 3 hours). This position is for a full-time employment.
In this role you will...
- Redefine and build our core product features in mobile. You will work on bringing our first iOS application to life as a companion to our macOS application which all our users use. You will need to redefine some of our existent core features and figure out how to build them in order to enrich the user experience in the mobile app.
- Co-own the product and work autonomously. We're a small team of individual contributors. Everybody has autonomy and responsibility. You work with our design team and user base to narrow down the value proposition for our mobile application. You own mobile features from ideation over release to maintenance and help us shape the product roadmap for mobile.
- Solve interesting technical and UX problems. Raycast fits many tools into a single user interface. Which tends to create some hard and interesting problems like optimistic updates, database indexing and standardisation of user interactions. Besides solving the same or similar problems for mobile, you will also design a scalable architecture to power a blazingly fast and delightful user experience, while collaborating with like-minded software engineers.
- Define processes to improve performance and care about quality. You will shape and own mobile development at Raycast and everything that comes with it: testing, release, monitoring, etc. You will dogfood your own features, be exposed to constant user feedback from our community and incorporate it in your product development process. You will chose the best technologies and tools to allow you to automate tedious, annoying and time-consuming tasks.
- Wear many hats while growing the mobile team. In such a small startup, we're all generalists. You might add a new page to our Next.js website, set up an internal API endpoint in our Node.js backend or write a blog post about a new feature. In your particular case helping us grow the mobile team, by writing job posts like this one, and define and manage the hiring process for it.
You will be a great fit if...
- You're an Apple platforms and iOS enthusiast. You have solid experience working with iOS. You enjoy writing Swift and are looking forward to every WWDC. UIKit, Foundation, EventKit and other Apple frameworks are known to you and you have successfully used them in production.
- You're highly productive while writing quality code. We release updates every 2 weeks. You are able to break down big projects into small deliverables. You care about the output and take a pragmatic approach to deliver it. You keep things simple and prefer to write a little bit more code rather than adopting a third-party dependency. You know when code reviews or writing tests are beneficial to the changes you introduce.
- You're product-minded. Raycast is designed to keep users focused. You have a sense for great user experience and feel when something is off. You prefer polishing a feature instead of shipping soul-less pixels. You use analytics to reason about changes in the app and pro-actively iterate on them.
- You put our users first. Throughout Raycast you find a lot of little details. You pay attention to detail and provide our users a delightful experience. You can't stand bugs and don't shy away from our community and the user feedback.
- You're an empathetic communicator. You treat technology as tradeoffs. You may be opinionated but you're not ideological. When disagreeing, you communicate your perspective thoughtfully and compromise when needed. You thrive in a team environment and hold yourself and your colleagues accountable.
- Swift + UIKit/SwiftUI for an iOS app. There is no app yet, but it will certainly be written in Swift, sharing code with our macOS client. Whether it's going to be SwiftUI or UIKit is yet to be defined. Ideally, you should have experience with both.
- Swift + AppKit for our macOS app. Everything is written in Swift using AppKit with Swift Packages. We don't use SwiftUI extensively, however we are likely to start using it soon. We rarely adopt third party dependencies. Some are GRDB for our database, Sentry for crash reporting, Nuke for image fetching and a few C libraries to crank up performance.
- React + Node.js for Extensions API. We use Node.js as a runtime and React as a UI framework for extensions. React components are rendered as native AppKit components, no HTML or CSS involved. The entire API is written in TypeScript. The setup is very similar to how React Native works on mobile.
- Ruby on Rails for backend. We use Ruby on Rails for our Extension Store backend and Heroku for hosting/deployment.
- Modern work tools for everything. Linear for issue tracking, GitHub as source control, Sentry for error reporting, Amplitude for analytics, Slack for internal communication, Figma for pixels, Notion as knowledge base and a few others. As a team, we enjoy using CleanShot, Bear, Things and a few other Mac apps.
Why joining us?
- We're at the beginning of our next chapter. You will join us at the right time to have major impact on the future of the company. We released our platform, established a friendly community and are jumping head first into expanding our product and business through our Pro and Teams subscriptions.
- We're backed by great investors. We're backed by Accel, Coatue, Y Combinator, Chapter One and angels such as Charlie Cheever (Co-Founder of Expo & Quora), Calvin French-Owen (Co-Founder of Segment), Zach Holman (Early GitHub engineer), Koen Bok (Framer, CEO), Karri Saarinen (CEO, Linear) and many more.
- We're individual contributors at heart. We value full ownership and responsibility, choose quality over quantity and put our users first. We're motivated by shipping truly great software.
- We'll treat you well. Get a competitive salary, stock options and health insurance. Plus, we provide a monthly health benefit for a gym, pay for your co-working space, give you the latest MacBook Pro with a 5K display and accessories and provide flexible paid-time off (PTO) plus all your national holidays.
How to apply?
Now that you know about us, we would like to learn more about you. Send us an engaging message at email@example.com with information you think is relevant. Tell us why you want to join us, what excites you about the problem we're solving and how you envision your role at Raycast. Read about our application process.