The goal of the course is to outline key concepts, principles, and approaches used to design applications where high-performance, scalability, and resiliency are first-class quality attributes.
By the end of this course, candidates will have acquired in-depth knowledge about how to describe business requirements, how to design and implement high-performance, scalable, and resilient applications, and how to create a proper testing plan.
Key concepts covered in this course
- Different metrics are used to quantify performance, scalability, and resilience, such as response time, latency, resource utilization, percentiles, availability, etc.
- How to properly define business requirements about performance, scalability, and resilience, for a particular workload and under a specific working mode.
- Modern architectural styles that might be used while designing high-performance, scalable, and resilient applications, with their pros and cons (e.g. microservices, event-driven, reactive, serverless, etc.).
- Architectural tactics to achieve high-performance (e.g. caching, batching, lazy loading, throttling, optimistic locking, back pressure, etc.), scalability (e.g. data push, data pull, distributed and parallel processing, etc.), and resiliency (e.g. replication, redundancy, disaster recovery, circuit breaker, bulkheads, etc.)
- Advanced high-performance development techniques such as NUMA, large pages, Data-Oriented Design, C-states, RamFS/TmpFS, memory access patterns, etc.
- How to elaborate a test plan with a focus on stress, endurance, and load testing
- Architectural concepts pertaining to high-performance, scalable, and resilient applications
- Defining non-functional business requirements for high-performance, scalable, and resilient applications
- Architectural tactics for high-performance, scalability, and resiliency
- Advanced development techniques in light of high-performance applications
- Application testing
- Examples of modern systems (e.g. Linkedin use case, Uber use case, etc.)
- 16 hours
- software developers
- technical leaders
- software/solution architects
- test engineers
- business analysts with a technical background or passionate about technology
People from the following companies attended my courses:
Note: At the moment this course is available only for companies, teams, or groups of students. The individual subscription (i.e. single person) is not an option at the moment.