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, the candidates will have acquired in-depth knowledge about how to design, 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, throughput, percentiles, availability, etc.
- Architectural tactics and patterns to support high-performance, scalability, and resiliency (e.g. synchronous vs asynchronous, data push vs. data pull, caching, circuit breaker, bulkheads, back pressure, throttling, etc.)
- 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, event-sourcing, reactive, serverless, lambda, etc.).
- Networking assets used to complement the architectural styles (e.g. API Gateway, load balancer, service discovery, content delivery network)
- Advanced high-performance development techniques such as NUMA, large pages, C-states, CPU Governors, RamFS/TmpFS, SSD I/O Scheduler, Kernel TCP Buffers, etc.
- How to elaborate a test plan with a focus on load testing
- Architectural concepts pertaining to high-performance, scalable, and resilient applications. Quality attributes metrics
- Architectural tactics, patterns, and styles for high-performance, scalability, and resiliency
- Advanced performance optimizations techniques
- Application load testing
- Examples of modern systems (e.g. Linkedin use case, etc.)
- 16 hours
- software developers
- technical leaders
- software/solution architects
- test engineers
- business analysts with a technical background or passionate about technology
“Excellent course content helping me to understand a lot of things, from a very high level and abstract to a very deep and technical perspective.”
“I recommend this course if you want to get in touch with real technical topics. The trainer clearly explained to them, even for less technical people.”
“The trainer was very well prepared. He answered all of our questions, even if they were not really the subject of the training.”
“I liked more the advanced part about how to tune an application, outside of the programming language, to get better performance.”
“Interesting and informative course, presented by a trainer who knows a lot of stuff. I got a lot of ideas and techniques that I can use to build more efficient applications in my daily job.”
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.