We are practitioners of agile project management, the methodology that facilitates the delivery of our products and services, close collaboration with our clients, and tight feedback loops with everyone involved in a given project.
As early adopters of the emerging standards and best practices in the API development space. We engineer bespoke software solutions governed by specifications validated against industry standards.
An API exposes business functions and is programmatically accessible. It is typically centralized and allows individual authorized clients to access the same business functions. This is an ideal architecture, and one used by most technology startups because we're living in an era where end-users are interacting with businesses using an increasing number of devices. The specification serves as the canonical source of truth for what you can do and what you should expect from the API. Having a single source of truth simplifies governance and engineering.
Fundamentally, service-oriented architecture (SOA) is concerned with how APIs are organized in the context of a system. It describes an architecture where components are made available as services in a network. Similarly, microservice architecture is an SOA comprised of minimalist, modular software, which does one thing well. We've embraced microservice architecture, specification-driven development, and containerization, which delivers on the promise of deploying scalable polyglot software solutions. Our mantra is "do one thing well, and scale".
Whether we're implementing web services using the Open-API specification (formerly known as Swagger), or the GraphQL schema definition language, the spec is the foundation of our engineering efforts and the basis for testing and documentation.
Leveraging containerization tools like Docker is how we deliver software solutions that run across platforms (AWS, GCE, Azure, etc), or in hybrid environments, and can be automatically scaled using zero-downtime orchestration systems like Kuberbenetes.
Leveraging our experience using microservice architectures, we will identify domain boundaries and create services that do one thing well, and scale. Services will be designed to interoperate and only allow access through an API gateway if necessary.