About the Seminar
An API is the primary contract that connects software components, systems, and engineering teams. Whether you are exposing a public RESTful web service, building internal client/server interfaces between development groups, or designing the public interfaces of classes within your own codebase, bad API design leads to brittle systems, developer frustration and heavy maintenance costs and AI won’t help fix it once it is established.
This intensive seminar covers the fundamental principles and practical mechanics of creating clear, modular and maintainable APIs across multiple paradigms. We will explore language-level API design (Java, C#, C++, Go, Python), RESTful HTTP web services and inter-team contract boundaries. Grounded in industry best practices, including insights from industry leaders -this seminar provides actionable techniques, practical rules of thumb and design patterns to make your APIs easy to use and hard to misuse.
Who Is This Seminar For?
Software developers, technical leads and software architects looking to master the principles of clean, maintainable and scalable interface design.
Prerequisites
Familiarity with programming languages such as C#, Java, C++, Go or Python and basic HTTP/networking concepts.
Key Topics
What Makes a Great API?
- REST APIs / Internal Library APIs.
- Characteristics of Exceptional APIs, Dos and DONT’s, API All Star Examples.
- The Business & Engineering Impact.
- Joshua Bloch’s API Guidelines.
- Deprecation Processes.
- Documentation as a First-Class Citizen: (OpenAPI/Swagger, Javadoc/Doxygen).
- Using Unit Tests to develop BulletProof APIs early.
Seminar Objectives
- Understand the core rules and characteristics that separate great APIs from fragile ones.
- Apply static language-level interface design guidelines across Java, C#, C++, Go, and Python.
- Master RESTful web API design and boundary contracts for inter-group team development.
- Leverage classic software engineering to construct future-proof abstractions.
- Learn strategies for versioning, evolving, and breaking changes without breaking clients.
