
Software Engineer, APIs
Job description
About the role
At Asana, we believe AI represents the future of work, and APIs are at the heart of how AI connects with the tools where work happens. As a Software Engineer on our API & Developer Platform team in Vancouver, you will help make our developer platform come to life for AI, designing intuitive and secure interfaces while partnering with other product teams to enable new features. We own the gateways that enable data flow into and out of Asana, whether via our public API or our MCP server that enables LLMs to take action in response to natural language. If you care deeply about building an agentic future for the enterprise and working on high-performing engineering teams, then we'd love to hear from you! This role is embedded within a team that values asynchronous clarity and rapid iteration, ensuring that the interfaces you build are both robust and intuitive for the widest range of developers. You will be expected to bring a bias for action and a commitment to quality, translating ambiguous product requirements into reliable technical solutions. Your work will directly influence how external partners and internal teams interact with Asana's core execution engine.
Key facts
What you'll do
Partner with Product Management, Design, Data Science, and User Research to deeply understand developer needs and propose elegant solutions to address them.
Own the guidelines for what good API design looks like, partnering with product engineering teams to enable them to implement those best practices in a self-serve manner.
Develop across the entire stack in Scala and TypeScript to continuously optimize developer and AI agent experiences.
Develop clean, maintainable code, proactively leaving systems and frameworks better than you found them.
Collaborate with cross-functional stakeholders to influence the roadmap for our developer platform and agent ecosystems.
Champion secure and scalable integration patterns, ensuring that data gateways meet the highest standards for reliability and performance.
Contribute to the evolution of our MCP server, enabling LLMs to take meaningful action through natural language inputs and structured outputs.
Analyze usage metrics and developer feedback to drive iterative improvements in the platform's usability and feature set.
Lead technical discussions and design reviews, ensuring alignment with industry standards and long-term product vision.
Mentor junior engineers by providing code review feedback and guidance on architectural decisions within the API space.
Work closely with the Data Science team to ensure that AI-driven features are performant, observable, and aligned with user intent.
Take ownership of debugging complex issues that span multiple services and integrations, reducing friction for both internal and external consumers.
Champion testing practices that ensure reliability and correctness of API contracts across all supported platforms.
Act as the technical voice for the API platform, representing its needs in cross-team planning and prioritization sessions.
Requirements
3+ years of experience working in large, complex codebases.
1+ years of experience building public-facing API products or developer platforms.
Excellent communication and collaboration skills for partnering effectively with cross-functional teams.
Ability to learn quickly and comfortably transition between different areas of a large codebase.
Deep appreciation for productivity and a passion for helping teams - including your own - collaborate more effectively and efficiently.
Excitement to contribute to an inclusive culture where everyone is encouraged to bring their whole self to work.
Demonstrates curiosity about AI tools and emerging technologies, with a willingness to learn and leverage them to enhance productivity, collaboration, or decision-making.
Proficiency in either Scala or TypeScript, with a strong understanding of the runtime characteristics and ecosystem of your chosen language.
Experience designing and consuming RESTful and/or GraphQL APIs in a production environment.
Familiarity with authentication and authorization mechanisms such as OAuth, JWT, and API keys.
Comfortable working with distributed systems concepts, including message queues, eventual consistency, and idempotency.
Understanding of software development lifecycle practices, including testing, code review, and continuous integration.
Willingness to engage in hands-on coding exercises and technical discussions during the interview process to demonstrate practical skills.