Job description
Knock is on a mission to help products communicate with their users in a more thoughtful way. Building product notifications in-house takes months, often leading to poor user experiences. We believe that—when done right—product notifications help users find value in the products they use every day. That’s why we built Knock.
We’re a remote-first (with a NYC base) Series A startup of 25 employees that believe in the power of great software. We’re APIs all the way down at Knock—Stripe for payments, Algolia for search, WorkOS for SSO. We’re excited to add Knock to that list and to push forward the API-first movement. If you are, too, come join us and let’s build something great together.
We’re backed by top investors and operators including Craft Ventures, Afore Capital, Preface Ventures, Worklife Capital, Guillermo Rauch (CEO/Founder @ Vercel), Scott Belsky (CPO @ Adobe), Adam Gross (CEO @ Heroku), and John Kodumal (CTO @ LaunchDarkly), to name a few.
About the role
We’re looking for a software engineer to join our small but growing platform team. Platform engineering at Knock is the foundation for everything else we do. Because Knock is built by and for engineers, there’s a blurry line between “platform” and “product.” The product is the platform.
The platform team is a specialized engineering team at Knock that designs, builds, and maintains the infrastructure and services needed in order to run our product. They are responsible for the availability and reliability of our service, from API to notification engine execution. They support the product engineering team in their role to build and ship customer-facing features.
Knock’s platform engineers orient around measurable goals set by our CTO, and work with a high degree of autonomy to achieve greater scale, resilience, and performance for our customers & partners. This is a high-agency role. As a team member, you’ll craft and own initiatives to help us hit our goals. The team collaborates heavily, but each individual has decision-making authority over their initiatives.
We care deeply about building a team and culture that is inclusive and equitable for people of all backgrounds and experiences, and believe firmly that the best teams are diverse. We particularly encourage people from underrepresented communities to apply.
Last thing: you can be a great fit even if you don’t perfectly match the requirements below. We know there’s a lot we don’t know and haven’t thought of yet, and we’re looking for teammates who can tell us what those things are. If that’s you, don’t hesitate to apply and tell us about yourself!
What you’ll be doing in this role
As a platform engineer you’ll contribute across a range of scaling, product and DX initiatives. By way of example, here are some platform team highlights from the last year:
Facilitated a 8x YoY increase in monthly messages sent
Significantly improved latency and margins of our observability product features by adopting ClickHouse for event data
Zero-downtime Postgres upgrade from 11.9 → 15.3
Instrumented our services with distributed tracing
Over the next year you may find yourself working on:
Scaling our service for the next several growth multiples (billions of txns/month)
Large-scale dynamic user segmentation
Multi-region support
Canary deploys
What we’re looking for in this role
We’re looking for a senior engineer (5+ years of experience)
While experience with our stack is not required, you should be very comfortable with multiple levels of the modern backend stack. For example, you might have experience with GCP or AWS, a modern language, container orchestration, and a tool such as Chef or Ansible. We work primarily with Elixir, Terraform, Kubernetes, and AWS.
We’d love to see expertise in an area that complements our team’s skillset, be it databases, event-driven architectures, security, dev tooling, etc.
The ideal candidate will have experience building and operating large-scale production systems at a high-growth startup.
Strong written and verbal communication skills are a must. The team is internationally distributed and relies heavily on asynchronous communication.
Our stack
Our backend services are primarily written in Elixir (which runs on the Erlang VM). We build our front end using Next.js in TypeScript, powered by GraphQL. Our code runs in AWS on EKS using a mixture of Postgres on Aurora, Redis, MongoDB, and ClickHouse for data storage. All our infrastructure is written in Terraform and continuously deployed via Terraform Cloud.
A note on AI
All Knock engineers have access to Claude, Cursor & Devin licenses and budget for LLM API spend (e.g. Claude Code). We’re finding that AI tooling increases our leverage as a small team, but we’re also clear-eyed about AI’s current limitations. You don’t need to be all-in on AI to join this team, but you should be curious and willing to learn with us.