Join Keycard as a Software Engineer to build the SDK for agent-native applications in a remote-first environment.
Posted by employer 1 day ago
First seen on Joblaze 1 month ago
Last verified on the company career page 1 day ago
AI in the day-to-day
At Keycard, we don’t just enable others to adopt agents — we use them ourselves to build.
Not disclosed in this posting: compensation, years of experience, visa sponsorship.
Benefits
Joblaze summary
In this role, the Software Engineer will focus on developing and maintaining the Keycard Agent SDK, which is essential for integrating trust and governance into AI agents. Proficiency in multiple programming languages such as Go, Python, TypeScript, and Rust is crucial, along with a strong understanding of systems engineering and API design. This position is ideal for experienced engineers who have previously built libraries or SDKs and are passionate about the agent ecosystem. Keycard's small, distributed team offers a unique opportunity to shape both technology and company culture during a pivotal industry transition.
Joblaze insights
Quick facts
From the original posting
We're hiring a staff-level Software Engineer, SDK to own the libraries developers use to put Keycard in front of their agents and MCP servers. For most teams, the SDK is the first Keycard code they touch: a few lines that add OAuth to an MCP server, then token exchange so a tool can call GitHub or Google as the user.
Keycard is a control plane for agents: identity, credential exchange, delegation, policy, and audit. Our SDKs come in two kinds. The REST API clients for Python, TypeScript, and Go are generated from our OpenAPI spec. The agent SDKs are handwritten: OAuth primitives, MCP server and client auth, agent-to-agent (A2A) delegation (in preview), and integrations for frameworks like FastMCP, LangChain, Temporal, and Cloudflare Workers. The hard design work is on the handwritten side.
Python is the most complete today. TypeScript is in preview and working toward parity, and Go and Ruby are earlier. Keeping behavior consistent across four languages, while priorities differ and TypeScript comes next, is the core of the job. You'll work with founders, product, and the engineers building the services underneath.
API design. Keep authorization concepts and behavior consistent across languages while making each API idiomatic. Map credential types and error semantics across Python, TypeScript, Go, and Ruby.
Safe defaults. Require the expected issuer and audience for token validation, and handle signing-key outages without accepting unverified tokens. Refresh client-held access tokens when the grant permits it, and return clear errors when fresh authorization is needed.
Track upstream. Our MCP package follows the upstream MCP SDK's major versions, and framework integrations are tested nightly against each upstream's latest release. Ship support for new versions quickly, and decide when an old line moves to security fixes only.
Releases. Each package versions and publishes on its own, to PyPI, npm, and RubyGems, with Go modules released as versioned tags in their repos. Own semver, changelogs, deprecations, and the CI that bumps and publishes on merge.
Generated clients. Own the path from our OpenAPI spec to the generated clients. Fix problems in the spec, not in generated code.
Developer experience. Quick starts, examples, and docs that take someone from install to a protected MCP server, and a loop that turns developer feedback into API changes.
Agents at work. Coding agents already open a good share of our SDK pull requests. Decide what they're trusted to do, and keep tests and review strong enough to catch what they get wrong.
You've shipped libraries or SDKs that other developers depend on, and supported them through breaking changes.
You've kept one API consistent across at least two languages. You write idiomatic Python and TypeScript; Go or Ruby is a plus.
You know OAuth 2.0 and OIDC at the library level: token verification, refresh, PKCE, and token exchange (RFC 8693).
You've managed versioning in the real world: peer dependency ranges, maintenance branches, and deprecations users could plan around.
You've built framework integrations or protocol libraries, and can work through MCP's authorization flows and compatibility changes.
Code generation for multi-language SDKs: Stainless, Speakeasy, Fern, OpenAPI, or protobuf.
Plugin or integration ecosystems, like Terraform providers, framework adapters, or editor extensions.
Contributions to MCP, the A2A protocol (which we support in preview), or open source agent frameworks.
Edge runtimes like Cloudflare Workers, or durable execution like Temporal.
Close the biggest gaps between the TypeScript and Python SDKs, toward dropping TypeScript's preview label.
Publish a cross-language API guide: names, errors, and credential types, mapped across Python, TypeScript, Go, and Ruby.
Take one upstream breaking change, like a new MCP SDK major or framework release, from nightly failure to released support.
Agree an SDK roadmap with product and engineering, including where generated clients end and handwritten SDKs begin.
You care about the first ten lines a developer writes with your library.
You'd rather design an API once than explain it four different ways.
You use coding agents every day, and you know which of their changes need a closer look.
Build at the Frontier: Work every day at the frontier of agent-native systems — shipping, inventing, and iterating on technology that hasn’t been built before. You’ll be given huge autonomy, the opportunity to gain mastery, and the chance to work in a team that holds each other accountable to succeed.
Standard company text repeated across Keycard's postings is omitted here.