OneSignal is growing quickly, and as part of that growth, we wanted to share some insights into how we think about our interview process and the intentions that went into crafting our interview experience. As we build and expand our engineering team we feel it's critically important to do this well and operate with empathy, pragmatism, and respect to candidate time. It is both important that we find great engineers and that candidates have as much information as possible to help make their next career decision. We believe our process has resulted in strong collaborative teams with an inclusive environment that is supportive of diverse backgrounds, skill sets, and experience levels.

Similar to our product & engineering process, it’s sometimes helpful to talk about what’s out of scope before we dive deeper:

What we don't do:

  • Ask irrelevant questions such as riddles or curveballs outside of the role
  • Treat your time like it's not important
  • Have you eat lunch alone
  • Treat people disrespectfully or unfairly
  • Expect you to program on a whiteboard; we would rather have you demonstrate proficiency with the tools you’re most comfortable with

The OneSignal Process
In general, our philosophy is that interviewing should be an opportunity to learn about each other and evaluate each other for the right fit through a collaborative process.

What we focus on:

  • Seek to understand your professional interests, career aspirations and areas of expertise
  • Focus on assessing your ability to solve problems tailored to the role you’re applying for
  • Provide an equal opportunity for you to learn more about our work and culture
  • Welcome your feedback on our interview process to help us improve

Prior to our on-site, as part of our process we like to start with conversational dialog and continue with that through every step of the way. We're not optimizing to solve riddles (we think riddles are fun - but not relevant to hiring). We're not asking for the best regex implementation, or a recursive string parsing solution (there are plenty of implementations and frameworks that provide this, and if you are writing this from scratch in your job then something could be off). Instead, we start the process with relevant questions about your professional interests, what you're looking for in your next role, what your current role is not providing for you, and where your interests align. Since terms like “full-stack” can mean many different things, we strive to understand your interests better (i.e. do you gravitate to front-end and implementing great UI/UX or do you prefer working on back-end API's and data modeling or is that perhaps more nuanced and dependent on the tech stack).

We also like to understand how you've progressed in your career - acknowledging that years of experience never tells the full story. We like to understand what kind of projects you've worked on and how these experiences might align with OneSignal. We actively listen, take notes, and share these notes with teams for feedback.

The next step in our process is to dive deeper technically - typically this is a conversational problem-solving exercise. It is meant to provide a pragmatic understanding of whether or not you have worked on projects with experience relevant to the role. As a candidate, you choose the technologies, frameworks, and languages to talk through how you would approach the problem, and we tailor the deep dive based on the role you’re applying for.

The next step and typically the last interviewing step is our on-site; which takes roughly half of a day and involves meeting several members of OneSignal across the company including founders, early employees, and new hires. It's an opportunity for us to dive deeper technically, get to know you better, have you join the team for lunch, and importantly, for you to ask questions that will help you make your decision easier. Our process values your time since we recognize that you're taking time out of your busy day to meet with us. We prefer to dive deeper into programming specifics using a computer where you're comfortable in your environment (vs whiteboards), and we value collaborating on the problem more than we expect perfect solutions.

What We’re Looking For
We enjoy hearing how you think about problems, and learning from you in the process. We assume there may be creative solutions to our challenges we haven't considered (i.e you don't need to come up with our solution to be correct). The types of questions we focus on will be pragmatic, tailored to your experience, and give you the freedom to use the frameworks and technologies that you feel the most comfortable with. We like and value feedback on the process and if you feel there's something we should have asked about that we didn't, or that we didn't provide an opportunity for you to put your best foot forward, then we're humble enough to reflect on where we may have gone wrong, and what we should have been asking.

We also recognize that Computer Science encompasses so many domains that it’s quite possible we may be asking you something new. If we dive deeper into areas that you don't know, we also value you sharing that you might not know how to solve the particular problem. We then discuss the open role and several dimensions to your fit for the role (domain expertise, potential, ability to articulate technically, problem solving ability, etc..) If we decide we want to move forward, we strive to make our decision within a day.

Open Roles at OneSignal
OneSignal takes pride in offering a process that is developer friendly, inclusive, timely, pragmatic, and fair. If you're interested in making your next career move we're happy to have you come check us out.

We have a lot of great projects, with a modern tech stack, great benefits, and several opportunities as we scale. Whether you like the idea of building for scale (more than 4 billion notifications sent every 24 hours), or you like the idea of building our front-end that is used by more than 700k users, or you like spanning many different mobile technologies, we have open roles for you.  With over 4k+ new signups per week, you can expect to have a real impact in a collaborative environment.  Here are some of the key roles we are looking to fill:

Full Stack
You like to work across multiple parts of the stack, with experience in languages and frameworks or comparable to technologies like: Typescript, React, Redux, Rails, Rust, Go. Your responsibilities would include building core features in our web app and building functionality that hundreds of thousands of users interact with.

Mobile or Web SDK
You have built apps on one or more platforms, such as Android, iOS, Flutter, React Native and/or web. Your responsibilities would include building our friction-free SDK's and adding new features that are used in many top apps in the app store and across many of the top websites in the world.

You like building core services in languages such as, or similar to: Go, Rust, Rails while leveraging technologies such as Kafka, Postgres, Redis. Your responsibilities would include building out our services and functionality to support high performing, highly available and scalable services.

You like making sure our services are running optimally. Your responsibilities include working with engineering, advising improvements, and working with our infrastructure providers to support our high-uptime services.

If any of these roles excite you, or you think you might be a good fit for our other open roles, please apply here: