Software Engineer

New York or Remote /
Engineering /
Full-time
Over the last 15 years, companies like AWS, Stripe, and Twilio have helped developers offload anything not core to their apps so they can focus on what matters to their users. Despite a lot of progress in developer tooling, most developers still roll their own authorization.

You might start with something quick 'n dirty – some IF statements and roles in a database, which may not be pretty but gets the job done...until you need to add more features, and more features. And inevitably every team band-aids onto this system until they do a big refactor. This is lost time for an area that's not core to what most companies are trying to solve for their users, and what's more, no one on the team is feeling great about this work.

At Oso, we're building the first batteries-included library for authorization so developers don't have to roll it on their own ever again. We're designing slick APIs to cut down the amount of time they spend getting their system set up, and building a fully-fledged policy engine and programming language under the hood to ensure they can customize their system however they need. We don't have any product managers – the engineers on the team are responsible for taking broad problems, experimenting with potential solutions and shipping a superhuman experience for our users.

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

    • Experiment, discover, design, and build features and layers of abstraction that decrease the amount of thinking and coding that our users have to build authorization into their apps
    • Build out support for new frameworks, ORMs and integrations in ways that make developers who run in those communities feel right at home
    • Add features to the core of Oso in Rust – like new language operators – as needed to support new authorization use cases

    • 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 Oso
    • 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're happy to explore product ideas through design, hacks and guides before designing and building something fully baked. 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 want to understand our end users' world and prioritize solving their authorization problems above everything else, including your own personal preferences and the elegance of the solution. You look for ways to make easy things easy, and impossible things possible.
    • You're always learning. You have no problem throwing away ideas and code if they don't pan out. You are optimistic and/or determined enough to keep hunting for new ones. You're not afraid to take something on just because you don’t know how to do it yet.
    • 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 can see your team as people. You have their backs and cheer them on.

Requirements

    • You have worked at a startup or in a similar environment
    • 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
Oso is an equal opportunity employer. All applicants will be considered for employment regardless of race, color, national origin, religion, sex, age, disability, sexual orientation, gender identity, veteran or disability status.