Software Engineer, Core

OneSignal
Summary
Join OneSignal, a leading omnichannel customer engagement solution, as a Staff Software Engineer and contribute to the design, development, and operation of cross-cutting horizontal services. You will collaborate with fellow engineers, optimize high-performance databases, participate in code reviews, resolve production issues, conduct data analysis, and stay updated on industry trends. This remote-friendly role offers autonomy, flexibility, and the opportunity to significantly impact the platform's performance and features. The position requires at least 8 years of software engineering experience, expertise in optimizing high-performance databases, and experience with distributed systems. OneSignal offers a competitive salary, equity program, and comprehensive benefits.
Requirements
- At least 8 years experience working as a software engineer
- Significant experience optimizing high performance databases such as Postgres, ScyllaDB, Cassandra or related at scale
- Experience operating reliable production systems at scale
- Easily bored running tasks by hand and the ability to automate such tasks
- Experience with distributed system event streaming framework such as Apache Kafka
- Experience with Rust, Golang or other lower level languages. Those with backgrounds in interpreted languages may have a steeper learning curve with Rust, but if you have worked on core components of very high throughput systems, please apply
- Ability to reason about how data flows through distributed systems
- Experience with Docker and Kubernetes
Responsibilities
- Collaborate closely with fellow engineers to architect and implement services required to back OneSignalβs product offerings
- Help optimize a scaling strategy for our high performance Postgres and Scylla clusters
- Design and optimize schemas, queries, indices, caches and more across Postgres and Scylla
- Actively participate in peer code reviews and Technical Design Spec reviews, providing valuable technical insights to continuously improve our code base
- Work with the team to efficiently resolve production issues and ensure the system scales smoothly to meet the growing demands of our customers
- Conduct data analysis and performance monitoring to identify areas for optimization and enhancement
- Stay up-to-date with the latest industry trends and technologies, incorporating new ideas into our engineering processes
- Participate in production on-call rotation
- Ability to work independently in uncertainty and drive multiple experiments to arrive at a solution to unblock business and customer operations
- Debug production issues by utilizing metrics, logs, and distributed traces
- Design synchronous and asynchronous APIs for communicating between services in a large distributed system
Preferred Qualifications
- Experience with any of Redis, Kafka, ClickHouse, gRPC
- Experience profiling applications to improve performance in terms of time/CPU/memory
- Experience debugging issues in distributed systems
Benefits
- Competitive equity program
- Comprehensive and inclusive benefits