Responsibilities
Customize and refine SDK templates to ensure consistency across all languages and accommodate specific configuration overrides (e.g., store_id, custom headers).
Implement and improve core SDK features such as :
Sophisticated retry logic with jitter to effectively handle rate limiting or server unavailability.
Mechanisms for users to override specific fields per method (e.g., max parallelization, authorization model ID, store ID, headers).
Develop comprehensive tests for all exposed methods, ensuring proper mocking of external requests for reliability.
Write comprehensive documentation for the SDKs, ensuring clarity and ease of use for developers.
Optimize and manage continuous integration (CI) processes for building, testing, and releasing SDK clients.
Minimize external dependencies within the SDKs, aiming for no dependencies with rare, absolutely necessary exceptions.
Contribute to the SDK generator tool, leveraging Docker and requiring minimal additional tooling (primarily make, docker, jq).
Design and refine wrappers around the generated API to provide a consistent and user-friendly interface similar to the existing OpenFgaClient across all SDKs.
Implement and optimize features like BatchCheck, ListRelations, and non-transactional write operations with appropriate parallelization, adhering to specified limits.
Collaborate closely with the FGA team, adhering to established guidelines and processes, and providing regular updates.
Review incoming pull requests (PRs) from the community and help contributors get their changes to a mergeable state.
Conduct thorough testing and participate in code reviews (PRs) and post-delivery validation to ensure the delivery of high-quality, secure SDKs.
Skills : Requirements
2-5 years of experience as an SDK Developer or in a similar role.
Solid understanding of SDK development principles and best practices.
Familiarity with code generation, templating, handling configuration, and token exchange mechanisms.
Experience setting up and maintaining GitHub Actions and release workflows.
Proven ability to implement robust error handling, retry logic, and manage parallelization within SDKs.
Strong ability to write effective tests and mock external requests.
Good understanding of version control systems and familiarity with PR-based development workflows.
Excellent problem-solving skills and the ability to work independently with minimal guidance.
Strong communication skills to collaborate effectively with the team and provide regular updates.
Technology knowledge : Familiarity with Docker, Make, Mustache Templates, and OpenAPI Generator, along with a willingness to deepen expertise in these areas.
#J-18808-Ljbffr
Software Engineer • Toronto, Canada