This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.

This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.
Peter Ivanov is a developer at the outsourcing consulting company Ant S6, based in Sofia, Bulgaria. He considers himself a T-shaped developer and shares his knowledge through his personal website and newsletter.
The purpose of Peter Ivanov's presentation is to share his experience in building a scalable and maintainable GraphQL API by embracing TypeScript, domain-driven design (DDD), and clean architecture.
A T-shaped developer is a professional who has deep knowledge in a specific area (the vertical bar of the 'T') and a broad understanding of general skills (the horizontal bar of the 'T'). Peter Ivanov has written a blog post about it on his personal website.
Backstadium.com is a service similar to DigitalOcean or AWS for Mac infrastructure. It allows users to run applications on virtual Mac hardware without purchasing the physical Mac.
The technologies used include Node.js, Express, TypeScript, Apollo Server, and GraphQL.
Domain-driven design (DDD) emphasizes the importance of understanding the business domain and helps teams focus on core business logic. It ensures that software aligns with business requirements through concepts like ubiquitous language and bounded contexts.
Key components include entities, domain services, application services, repositories, GraphQL schema, GraphQL resolvers, and module APIs. Each bounded context, such as account management and billing management, defines its own structure.
Some lessons learned include the difficulty of getting it right from the beginning, the importance of scheduling time for paying off technical debt, and the need to adapt DDD and clean architecture principles to suit specific needs and experiences.
Clean architecture is a layered architecture pattern that allows for better separation of concerns, making the codebase easier to test and maintain. Each layer points inward, ensuring a single flow of dependencies.
GraphQL was chosen for its ability to serve as a central place for all business-related logic, making it easier to refactor and improve the design of the database and overall architecture.
We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career