engineeringThe five principles of modern developer toolsA deep dive into how modern developer tools bring typing, CI/CD integration, and version control to engineering teams where they work.
engineeringWhy you need observability in notification systemsNotifications are a critical bridge between your product and your users. Learn why you need to add observability into your notification system.
engineeringHow we built our data warehouse connector using PrequelA deep dive on how and why we built our data warehouse connector using Prequel, a data warehouse connector as a service.
engineeringHow we built our workflow throttles using Redis StreamsA deep dive into how we built our throttle function with Redis Streams.
engineeringUsing our One and Done library to power idempotent API requestsA look at idempotent requests, why they are important, and how to use our new One and Done library to implement them in your Elixir applications.
engineeringThe developer's guide to notification system tooling in 2023An in-depth look at notification systems and the ecosystem of tools, frameworks, and vendors available.
engineeringHow to ORDER BY using the contents of a column in PostgresHow we solved a challenging customer request using Postgres.
engineeringImplementing SSO using WorkOSHow Knock used WorkOS to implement SAML 2.0 SSO quickly and efficiently in our Elixir codebase.
engineeringImplementing a usage-based billing system: integration deep dive (part 2)A closer look at implementation details in building a usage-based billing system powered by Orb.
engineeringSix findings we rely on when managing PostgreSQL indexesA look into how we evaluate which indexes to use and when to maximize query efficiency.
engineeringEvaluating usage-based billing providers: what engineers need to know (part 1)A look into our experience in buying and integrating a usage-based billing provider at Knock.
engineeringHow we built webhooks in KnockA deep dive into how we built our webhooks feature using the underlying Knock notification engine and a few learnings along the way.
engineeringHow we onboard engineers at a devtools startupA behind-the-scenes look at how we onboard new engineers at Knock, and the principles we use to do so.
engineeringControlling Elixir supervisors at runtime with feature flagsA look at how Knock uses Elixir and feature flags to adapt our software at runtime.
engineeringBuilding a batched notification engineA deep dive on how to design and build a batched system for your product notifications.
engineeringHow we use Postgres LTrees to surface API logsPostgres ships with the Label Tree data type. How Knock uses LTrees for fast API log search.
productengineeringHow we work: moving fast to ship customer valueA peek behind the curtain at Knock. How we work to optimize for shipping customer value, quickly.
engineeringUsing the Knock notification component to add an in-app feed to your productA look into how to set up and use Knock's in-app feed component.
engineeringUsing Knock to power Knock's notificationsGetting meta and showing the power of Knock to build our member invite feature.