AI SDK Engineer
An AI SDK Engineer designs, builds, and maintains software development kits and integration libraries that allow developers to con…
Skill Guide
The practice of designing and implementing client libraries (SDKs) for TypeScript and Python that enforce complete type safety from API contract to consumer code, eliminating runtime type errors.
Scenario
Create a client for a simple public API (e.g., JSONPlaceholder) that provides full autocompletion and compile-time safety for all endpoints and responses.
Scenario
Extend your SDK to handle an API that returns different response shapes based on a discriminator field (e.g., `type: 'user' | 'post'`), with custom, typed error classes.
Scenario
You are responsible for the official SDK for a complex B2B SaaS product. The SDK must support advanced features like webhooks, pagination, and batch operations across TypeScript and Python, with perfect consistency.
Used to auto-generate base types and client code from an API specification, ensuring a single source of truth. `quicktype` excels at generating from raw JSON samples.
Essential for validating data at runtime (e.g., from network, files) and converting it to a typed object, bridging the gap between dynamic data and static types.
Core for enforcing type safety (`strict` mode), static analysis, testing, version management (`changesets`), and building distributable packages.
Answer Strategy
Demonstrate knowledge of discriminated unions and exhaustive checking. Use a type guard or a result-parsing function. Sample Answer: 'I would define a discriminated union based on a `success` boolean or a `status` field. The core `getUser` function would return this union type. I'd then provide a helper function, `unwrapResult`, that uses a type predicate (`if ('error' in result)`) to narrow the type, allowing consumers to safely access `data` or `error` in a switch statement. TypeScript's control flow analysis then guarantees exhaustive handling.'
Answer Strategy
Tests pragmatic engineering judgment and communication skills. The answer should show awareness of real-world constraints. Sample Answer: 'On a previous SDK, adding a required field to a request type was a breaking change. To maintain backward compatibility, I made the field optional with a runtime validation warning, and introduced a new `StrictRequest` type with it required. I documented the migration path clearly. The decision prioritized not breaking existing users immediately while guiding them toward the new, safer contract over time.'
1 career found
Try a different search term.