Software Engineer

New York City or Remote

oso puts security in the hands of the makers. We're doing this by delivering security as code, or as Charity Majors (cofounder & CTO of Honeycomb) put it, "Consumer-quality developer tools" for security.

We begin by helping our users add authorization to their applications. To start, we need to give them a slick, batteries-included experience in their language and framework of choice. Under the hood, we need to provide a fully-fledged policy engine and programming language to ensure we can support their needs over the long-term. This we build in Rust, which we think is both a good design choice for our use case and a fun choice for the team.

The engineers who join now will not only have a disproportionately large impact on the product, but also on the culture and future of the company.

Note: We have no titles on our engineering team. Everyone is an Engineer. Compensation is commensurate with contribution.

What you'll do

  • Build features, integrations and other layers of abstraction that decrease both the amount of cognitive load and the lines of code that our developer users need to take on to build authorization into their applications
  • Build out support for new host languages and frameworks in ways that make developers who run in those communities feel right at home
  • Build features into the core of oso in Rust – like new language operators – and improve its inner workings (e.g., performance)

Plus, help build a company and community from the ground up by wearing other hats, including:

  • Writing documentation that makes users feel supported
  • Writing blog posts that get users excited about the product
  • Speaking at meetups and conferences
  • Engaging with users through support channels (e.g., Slack) to solve their problems and advise on best practices

Who you are

  • You're an owner. You are accountable to results over the process. You prioritize your team's success over the success of any one project.
  • You like to ship. You get satisfaction from getting concrete output into users' hands in a short period of time. You prioritize speed over explicit permission, and a calculated risk over further analysis.
  • You're for the makers. You look for ways to make easy things easy, and impossible things possible. You prioritize the developer experience above ours.
  • You give and take feedback. You seek out critical feedback. You have the courage to give critical feedback to others.
  • You pierce your echo chamber. You ask questions, and look for your blind spots by talking to people who aren't like you.
  • You're always learning. You have a history of practice and expansion. You're not afraid to take something on just because you don’t know how to do it yet.
  • You can see your team as people. You have their backs and cheer them on.


  • You have experience building systems software and can bring that to bear – e.g., how to break up a complex system into clean reusable components, how to design interfaces and abstractions given the way you expect internal and external users to consume them
  • You have experience programming in at least one lower-level systems language like C/C++, Go, or Rust and one web language like Node.js, Python, or Ruby

Nice to have

  • Experience with multiple web frameworks and ORMs
  • Experience with our problem space, e.g., building internal authorization systems
  • Experience with Rust
  • Experience with programming language design

Apply now

Thanks! We'll be in touch soon.
Oops! Something went wrong.