macOS Software Engineer, Store

Build the store for productivity tools to speed up work.

Raycast becomes the platform for productivity tools. At it's center is a store full of powerful extensions. We're looking for a Software Engineer that builds this distribution hub on the Mac.

Raycast is a native Mac application with a significant focus on top-notch UI and interactions. We genuinely care about user experience, performance, privacy and ease of use. We had enough of dealing with slow and clunky tools. Raycast is our attempt to let you enjoy your daily workflows without all the distractions.

When Apple announced the App Store in 2008, the distribution of software changed over night. Suddenly, developers could reach millions of customers. We believe it's about time to change how developers discover and consume productivity tools. At the center of this, is our Store full of Raycast extensions that people can share and manage or discover new ones from others. What Homebrew became for scripts, is the Raycast Store gonna be for productivity tools. We need hungry engineers that architect and extend our Store to revolutionise how developers experience productivity tools with us.

We're a fully remote company and looking for candidates in the UTC timezone (London, Lisbon, Dakar, ...) ± 3 hours. This position is for a full-time employment.

In this role you will...

  • Shape the Store in the macOS app. Our core product is a macOS application. All our users gonna use it to explore new productivity tools. Right now the store doesn't over great discoverability of new extensions. A big part of this role is to make sure that people find the tools they want to use as quickly as possible. We have big plans to make it visually appealing and integrating deeply into the Raycast experience.
  • Work in a cross-functional team. You'll work closely with a tight-knit team together that have all the resources to solely concentrate on this problem. The team includes a designer and a fullstack engineer. You'll drive the Store to your ideas and work closely with our developer community to fulfill their needs.
  • Co-own the product and work self-directed. We're a small team of individual contributors. Everybody has autonomy and responsibility. You work on features from ideation over release to maintenance and shape the roadmap of the product.
  • Improve performance and care about quality. You dogfood your own features with our nighlty builds, respond to user feedback in our community and jump into the profiler to make every interaction feel snappy. You automate tedious tasks. At best, directly in Raycast.
  • Wear many hats. In such a small startup, we're all generalists. You might add a new page to our Vue.js website, set up an internal endpoint in our Node.js backend or write a blog post about a new feature.

You will be a great fit if...

  • You're an Apple platforms enthusiast. You have years of experience working with macOS or iOS. You enjoy writing Swift and are looking forward to every WWDC. Foundation, EventKit and other Apple frameworks are know to you and you have successfully used them in production.
  • You're highly productive while writing quality code. We release updates every 1-2 weeks. You can break down big projects in small deliverables. You care about the outcome and take a pragmatic approach to deliver it. You keep things simple and rather write a little bit more code than adopting a third-party dependency. You know when you want a code review or need to write tests.
  • You're product-minded. Raycast is designed to keep developers 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 add analytics to reason about changes in the app and pro-actively iterate. You don't need to get told what to do and are proactive picking up work yourself.
  • You put our users first. Throughout Raycast you find many 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 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 thoughtfully your perspective and compromise when needed. You're thriving in a team environment and hold your colleagues accountable.

Our stack

  • Swift for our macOS app. Everything is written in Swift using AppKit with Swift Packages. We don't use SwiftUI because it's too premature for rapid development. 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.
  • JavaScript/TypeScript for marketing website. We use Vue.js with Gridsome for raycast.com and deploy it with Vercel.
  • 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, Segment and 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 more Mac apps.

How to apply?

Now that you know about us, we would like to learn more about you. Send us an engaging message at jobs+macos@raycast.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.