Learn effective ways to communicate about architecture
Senior
Identify new factors influencing solution architecture
Systematize your engineering experience
Learn how to resolve communication issues
Architect
Discover new approaches to solving architectural problems
Develop a systemic view of the project with multiple feedback loops
Master processes of design and alignment
Requirements: at least 2 years of experience as a Senior Engineer
[ Course Goals ]
1. Organize technical experience
Structure and broaden a technical specialist’s expertise
2. Make effective decisions
4. Find optimal solutions
Share challenges with peers and find the best solutions for your project and context
Build a foundation for making complex technical and architectural decisions
3. Grow organically as a professional
Access numerous solutions, techniques, examples, and tasks to leap ahead in development and avoid mistakes in real projects
5. Systematize core principles of development
Consolidate constraints faced in product development and formalize fundamental principles of system design
6. Communicate productively at every stage
Establish effective communication processes for architects across all project phases
[ What you’ll learn ]
Define the Role of a Technical Leader
Gain a clear understanding of what it means to be a technical leader — including boundaries of responsibility, core functions, and strategic influence. Explore the most commonly used modern tools and technologies, including: libraries, frameworks, various types of databases, message queues, caches, background job processing systems, and more. For each tool, we’ll discuss its core limitations and advantages, as well as its applicability to different types of tasks.
Rethink and structure communications between architects and architectural documentation, as well as processes and roles related to architecture:
During the early project phases — RFCs, presales, and discovery
During the implementation phase
When defining roadmaps for a team/stream or department
During major architectural transformations
As well as technical debt management, architecture reviews, stakeholder alignment, and other forms of architectural communication
Understand the following aspects of the development process and the architect's role in them:
Migrations and deployment strategies, including zero-downtime deployment
Configuration management
Quality assurance
Monitoring approaches and tools
Take a look at real architectural challenges and problems
From basic training exercises to large-scale real-world projects — we’ll work through a variety of architectural challenges. You’ll also have the opportunity to analyze your own real-life projects and cases as part of the course.
Dive into the topic and discuss it with the instructor.
Study the materials
Complete assignments
Work on hands-on tasks prepared specifically for the course.
Receive feedback
Review your solutions with the instructor, discuss mistakes, and explore possible improvements.
Upon successful completion, you’ll receive a certificate in English
[ Learning Format ]
1
2
3
4
[ Practice ]
Updated Practice:
The template includes the following sections:
Questions for the business regarding functional and non-functional requirements
Assumptions and conclusions derived from business responses
Estimations of data volumes, expected loads, bandwidth requirements, and potential bottlenecks
Strategies for mitigating identified bottlenecks
System design for the system
Justification of specific tools and approaches
Cost estimation for infrastructure (optional)
The tasks incude: URL shortener Visitor counter for Runet Chat system for 500 million users Zoom
Структура коммуникаций и процессы тимлида
4 system design tasks of varying complexity, each designed to develop an Architecture Proposal document
The Architecture Proposal document is created based on a generalized template for system design tasks. This template is used across various companies, and its sections and steps are shaped by hard-earned experience.
Participants are encouraged to use any available resources and consult with any accessible architects during the problem-solving process.
[ Curriculum ]
theory
12 lessons
practice
12 lessons
Expectations from a tech lead. Boundaries of the tech lead’s role.
Career path of an engineer.
How does a tech lead differ from an architect?
What skills and knowledge does a tech lead need?
What is architecture, and how does it differ from system design?
Functional requirements, non-functional requirements, and constraints.
Quality Attributes: categories and definitions.
Common Quality Attributes: Availability, Performance, Scalability, Security, and tactics for achieving them.
Differences in how non-functional requirements are understood by a PO, BA, developer, tech lead, and architect.
SLA and its purpose as a contract between services.
LLMs: basic architectures, applications, strengths, and limitations.
MCP and its applications.
RAG, CAG, embeddings, and vector databases.
Related concepts and tools.
Agents, multi-agent systems, the Plan → Act → Observe cycle.
Industry trends and the job market.
Applications in development, testing, and engineering processes.
When is the statement “LLMs don’t accelerate development” true, and when is it false
What to expect and how to prepare?
Hardware and technical constraints
Algorithm limitations
Complexity constraints
Principles of writing code
Criteria and benchmarks for software systems
Transactions and specifics of distributed systems, CAP, PACELC
Description of the Architecture Problem-Solving Template
Problem statement and definition
Questions from course participants
System optimizations and refactoring/re-writes
CQS/CQRS, transaction isolation levels
Constraints of the team, organization, and competencies; defending decisions
Complexity as it is
Technology selection and the role of the architect
Trade-offs and compromises
Availability patterns, idempotency
Scalability patterns
Stability patterns
What integration means
Approaches to data exchange between systems
Types of integration architectures
SOA vs. microservices vs. MOM
Integration patterns
Workshop: designing a URL shortener using the architecture problem-solving template
What is a component? What types of architectural components exist?
Brief overview of each component type
Characteristics of different types of databases
Relational databases
Key-value storages
Сolumn family storages
Document stores
Event storages
Time series databases
Graph databases
Columnar (column-oriented) databases
Using multiple databases in a project
20 criteria for choosing a database for a project
What is a message queue?
Differences between message queues
Types of message queues
Architectures and differences between Apache Kafka and RabbitMQ
13 criteria for choosing message queues for a project
Purpose of caching
Cache record update strategies
Cache eviction strategies
Types of caches
Popular caches, their characteristics, and known issues
17 criteria for choosing a cache for a project
What is load balancing?
Performance of HAProxy and Nginx
Hardware load balancers
DNS load balancing
Client-side load balancing
What is a Distributed File System (DFS)?
Popular DFS
Specific criteria for selecting a DFS for a project
Approaches to distributed data processing
Apache Hadoop, Apache Spark, and other tools
Specific criteria for selecting distributed data processing tools
Differences between the relational and object-oriented paradigms
Alternatives to ORM
The most popular ORM frameworks and other approaches
ORM as an anti-pattern
Processes when working with ORM
What is monitoring
The process of configuring and using monitoring
Example of sending messages to a neighboring microservice
Monitoring tools
Logging
What is quality management
Test design
The test automation pyramid
Test coverage
Chaos testing and Netflix’s Chaos Monkey — and why you probably don’t need it
The release process
API versioning, API contracts, and SLA
Feature flags as a release strategy
Canary releases
Zero-downtime and migrations
Blue-green deployment and migrations
Atomic deployment
What is a monolith, its problems, pros and cons. The modular monolith What microservices are, what you need to know about them, plus their advantages and disadvantages How systems evolve, and when and why it makes sense to split a monolith Approaches to decomposing a monolith Key considerations when breaking up a monolith Migration plan toward microservices Conway’s Law and the Reverse Conway Maneuver. The lifetime of a component or system. The size and stage of organizational development Examples of migrations from monolith to microservices
Methods for building trust within a team
What an organizational structure is and how to understand it
The multiplicity of organizational hierarchies
How to understand your place in the organizational structure
Company culture and its types: adhocracy, clan, hierarchical, market-oriented
OKR vs. KPI
How to establish effective communication. Documentation as part of processes and communication
How organization influences architecture (Conway’s Law)
Documentation as a component of communication
How to onboard into a new company as an architect and how to approach documentation
[ Instructor ]
A developer’s growth is impossible without understanding the interests of the business.
– Pavel Veinik, founder @ Hard&Soft Skills
Founding Architect at Hard & Soft Skills
Pavel Veinik
A software developer since 2003, teaching since 2008, and training senior engineers and architects since 2018. He has spoken at more than 100 meetups and conferences.
He has held roles such as Developer, Team Lead, Architect, and CTO across startups, large enterprises, and product companies:
Specializations: distributed-systems architecture, high-load systems, microservice architectures, systems engineering, engineer growth, and organizational communication.
Architect: Miro, EPAM
CTO: AmadoAd Ltd., SplitMetrics, Leverice
Founder: Hard&Soft Skills, ITStart, Amadoad Ltd.
He has built architectures for some of the world’s largest corporations as part of EPAM.
Over the past 15 years, he has trained more than 1,000 developers and over 400 architects. He designs and delivers training programs across a wide range of technical domains.
Sign up for a consultation with ex-Architect Miro and EPAM and course instructor Pavel Veinik
Career
$3000
single payment
$1100 х 3
payments
Practice
Additional Bonuses
Consulting
Hands-on sessions with instructors in Google Meet
Active communication with peers in your cohort’s group chat
Career consulting with Pavel Veinik – up to 3 hours of personalized sessions
Personalized feedback on your assignments to accelerate growth
Electronic certificate of completion (English version)
Access to the exclusive alumni community and invitations to free events
Theory
Live, interactive lectures via Google Meet
Lifetime access to all video recordings and course materials
Clear, structured text-based lecture notes
Additional Bonuses
Active communication with peers in your cohort’s group chat
Electronic certificate of completion (English version)
Access to the exclusive alumni community and invitations to free events
Personalized feedback on your assignments to accelerate growth
Hands-on sessions with instructors in Google Meet
Practice
Live, interactive lectures via Google Meet
Lifetime access to all video recordings and course materials
Clear, structured text-based lecture notes
Theory
Architect
$3500
single payment
$1250 х 3
payments
Practice
Additional Bonuses
Consulting
Hands-on sessions with instructors in Google Meet
Active communication with peers in your cohort’s group chat
Architecture consulting with Pavel Veinik – up to 5 hours of expert guidance
Personalized feedback on your assignments to accelerate growth
Electronic certificate of completion (English version)
Access to the exclusive alumni community and invitations to free events
Theory
Live, interactive lectures via Google Meet
Lifetime access to all video recordings and course materials
После прохождения курса прокачал и получил новые знания в области архитектуры распределенных систем, узнал новые подходы к решению типичных проблем проектирования: шаблоны, паттерны, очереди и многое другое. Научился видеть узкие места архитектуры на ранних этапах развития систем и расширил список вариантов решения подобных проблем. Получил навык прогнозирования рисков развития архитектуры и управления ими.
Я пришел на курс не как разработчик, а как менеджер продукта. Моей целью было более глубоко разобраться в технической стороне разработки продукта: подборе стеков, архитектуры, устойчивости систем, базах данных и так далее.
Несмотря на то что курс сфокусирован на разработчиков, информация структурирована и последовательно, что дает возможность оперативно в ней разобраться. Уже в процессе прохождения курса, мне удалось сразу же применять полученные знания на практике внутри проекта, ориентируя разработчиков и обращая их внимание на важные аспекты.
Я пришла на курс, чтобы прокачаться технически. Мне очень понравилась фраза Паши в начале курса "возьмите максимум того, что вы можете". Я так и сделала. Были темы, которые, конечно, я не знала, и, я понимала, что мне пару дней или недельку маловато. Для таких тем я выделила доску в трелло и записывала туда пометки, поэтому на ближайшее время есть планы, задачи, которые планирую посмотреть и разобраться детальнее.Также мне было сложно самой себе ставить цели для ...
Я на первом занятии для себя сформулировал свои ожидания. Первое я назвал "закрепить фундамент", то есть, фундамент распределенных систем, баз данных и прочее. Понять, как собирать и формировать требования. В принципе, некий фундамент закрепился: есть понимание, как это работает и, в случае чего, что гуглить - я знаю. Где-то хотелось бы углубиться в теоретическую основу, но это, скорее, мой личный запрос...
Идя на курсы у меня было несколько запросов. Первый, и наверное самый важный - это систематизация знаний, приобретенных за годы работы. По опыту работы получалось, что знаний много, но четкой системы в них не было. И эту задачу в рамках курсов у меня получилось "закрыть". Безусловно мне есть еще куда расти, но теперь на многие вещи я смотрю куда увереннее и уже получилось начать применять этот систематизированный подход на работе при решении проблем и задач...
Хотел сказать огромное спасибо за курс. То, что преподавалось на курсе, имею в виду программу, Павел рассказал на установочном звонке и на курсе было всё, что обсудили. Что мне дал курс: более структурное, организованное, рациональное мышление. Многие вещи, которые были у меня на проекте, принципы которым следовал, какие-то умозаключения на которых основывался - многое из всего этого пересмотрел...
От курса ожидал узнать как подходить к решению архитектурных задача (какие вопросы задавать, на что обращать внимание). Также хотел получить новые знания и посмотреть как архитектурные задачи решают другие. По завершении курса могу сказать, что все мои ожидания оправдались. Было очень много нового для меня, а задачи которые мы рассматривали, позволили проработать часть теории, которую мы прошли. Также очень полезным ...
На курсе я точно расширил технический кругозор. Посмотрел, какие есть решения, с какой стороны подходить к архитектуре распределённых систем. Как минимум, сейчас не страшно начинать, уже понятно куда смотреть, за что браться в первую очередь, что стоит посчитать, чтобы набросать примерно то, что нам надо. Удалось систематизировать и структурировать свои знания ещё лучше. Получилось определиться с некоторыми определениями ролей и ...
Можно начать с того, что я не девелопер, а QA автоматизатор сильно стремящийся в sdet. Для меня курс был крайне интересен. В его процессе я стал исполнять роль технического лида в своей команде, что можно считать успешным прохождением курса. Помимо проектирования систем для тестирования внутри компании, в целом более осознанно стал читать техническую документацию , понимать почему выбрано такое решение и задавать правильные вопросы ...
Мне вроде как все понравилось. Систематизация инструментов была, + она была улучшена вопросами со стороны группы и дискуссией в лайве по схеме вопрос - ответ. Очень понравились уроки где мы рисовали и решали задачи в лайве с Пашей. Было пару уроков где мы как студенты не подготовились, а Паша рассчитывал на нас, и пришлось импровизировать. Вот здесь наверное Паше нужно ...
Мои ожидания полностью оправдались. High-scale для меня скорее минус, чем плюс. Никогда не была интересна архитектура, где задача стоит и вопрос только в том, как это смаштабировать. Мне нужно было обсудить с другими людьми, понять, как они мыслят, потому что для меня пока не было общего представления об обосновании архитектуры, не было опыта создания архитектур с нуля, чтобы понять, что делается и почему так делается. Самое, сложное ...
Как и у всех, моя цель была систематизация знаний, плюс, хотелось как-то расширить свой кругозор об инструментах, которые можно применять, как применять, в каких случаях какой будет лучше, и как-то смотреть на принцип построения больших, нагруженных, распределенных систем. В целом, из тех задач, которые я себе ставил, неплохо прошлись по всем. То есть, на наших лекционных занятиях рассмотрели все возможные кэши ...
На курс я пришёл мидл плюс-минус. То есть, я, в принципе, умел решать задачи, я работал с командами, умел управлять процессом разработки. В общем, получалось. И совершенно не было перспектив на тему того, чтобы понимать, как двигаться дальше в профессии, какие есть варианты, в принципе. Курс дал возможность разобраться в том, что такое проектирование сложных систем в принципе, из чего состоит, как к этому вообще подходит, какие есть ...
Читать отзыв полностью
Middle developer
Дмитрий Лозюк
Курс понравился тем, что затрагивает не только широкую сферу знаний, но и достаточно глубоко. Чего мне хватило: - понимания где и при каких условиях применять различные типы баз данных - внутреннее устройство баз данных Чего не хватило: - практики устройства распределенных систем. например конфига k8s с описанием всех сервисов. я привык все делать руками ...
Читать отзыв полностью
Igor Atroshkin
Сформировал подходы как браться за архитектуру, появилось больше смелости. Если будет какая-то сложная архитектура, я понял как подходить к ней, как развивать, как действовать. Очень полезный курс был в плане того, что у меня была нехватка базовых знаний в архитектуре. Я понял, какие бывают базы, типы и критерии их использования, чтобы выбрать базу, архитектурные компоненты. Очень понравилось совместное обсуждение с ребятами архитектур, домашнего задания, систем, решений. Это было очень круто, спасибо!
Кругозор однозначно расширился. Раньше недостаток был везде: старался применять реляционный подход баз данных, даже когда были оптимальнее другие базы, а сейчас посмотрел на решение задач с разными подходами и теперь не всё будет опираться в реляционный подход. Единственное, что недооценивал свои возможности в плане времени. В идеале, было бы выделять часов 10 на домашку и занятия.. А так, в основном, доволен, что очень много понял и расширил кругозор
Я до этого про архитектуру теоретически что-то слышала, но было очень интересно посмотреть на реальные примеры. Хотя в начале было очень тяжело и не было понятно вообще что и как, и что от меня хотят, а потом втянулась и получалось что-то сделать с личным проектом. Было очень полезно посмотреть как что-то подобное мы проектируем и сделаем на практике. я не на 100% сделала то что собиралась, но я поняла, что под разные задачи есть свои ...
Когда я пришел на курс и говорил, что моя первая цель - это расширить кругозор, и что ещё существует кроме того, что я сейчас использую… В этом плане ожидания мои оправдались на 100%. Особенно очень мне хорошо зашла первая часть курса про базы данных, сколько их, что есть, такое разнообразие. Про очереди: то, что углубились в архитектуру кафки - это раз. Второе, у меня сейчас есть понимание, как начинать, от чего отталкиваться, когда ...
Читать отзыв полностью
Андрей Шинкоренко
Действительно очень расширился кругозор. Курс позволил посмотреть на архитектурные задачи с другого угла с другого ракурса. Конечно, я не рассчитал запал вначале.. был очень амбициозно настроен на выполнение домашних заданий и реализацию собственного проекта, но со временем запал немножко приуменьшился, но это не убавило интереса от курса. Проект который я задумал, я уверен, что я реализую, вопрос лишь времени
Когда я пришел на курс и говорил, что моя первая цель - это расширить кругозор, и что ещё существует кроме того, что я сейчас использую… В этом плане ожидания мои оправдались на 100%. Особенно очень мне хорошо зашла первая часть курса про базы данных, сколько их, что есть, такое разнообразие. Про очереди: то, что углубились в архитектуру кафки - это раз. Второе, у меня сейчас есть понимание, как начинать, от чего отталкиваться, когда создаем архитектуру проекта, особенно если это Highload проект. До курса у меня не было такого понимания, а сейчас даже есть какой-то примерный template. В течение курса я свой проект показал и домашние задания сделал c Pinterest, социальной сетью. Мне очень понравилась тема про системную инженерию, совсем открытие для меня было, что есть такая тема. Сам понимаю, что немного мало времени уделял курсу: лекции я все просмотрел, но стоило больше делать домашних заданий. Но, в принципе, я доволен полностью. Остаются ссылки. Особенно, очень полезная ссылочка, которую давали на GitHub про System design. Как итог, я доволен, полностью оправдались мои ожидания от курса. Как рекомендация, на мой взгляд было бы лучше, если бы несколько человек объединялись в группы и делали это вместе. Т.к мы все работаем в команде, а один человек не делает такие проекты.
Иван Бобылев
Я пришел на курс не как разработчик, а как менеджер продукта. Моей целью было более глубоко разобраться в технической стороне разработки продукта: подборе стеков, архитектуры, устойчивости систем, базах данных и так далее. Несмотря на то что курс сфокусирован на разработчиков, информация структурирована и последовательно, что дает возможность оперативно в ней разобраться. Уже в процессе прохождения курса, мне удалось сразу же применять полученные знания на практике внутри проекта, ориентируя разработчиков и обращая их внимание на важные аспекты. Курс был для меня очень полезным, я полностью достиг своих целей. Я закончил курс раньше, на этапе когда начались узкоспециализированные темы, которые мне как не-разработчику были не нужны и softskills с которыми у меня нет проблем. До того как я попал на курс, я не знал Павла, не видел вебинаров, я просто загуглил "обучение техлида" и нашел HardSoft Skills. По сути, это был единственный курс полноценно отвечающим моей цели в более глубоком и целостном погружения в проектирование и создание IT-продукта. На мой взгляд, данный курс будет крайне полезным для всех, кто работает в IT. Рекомендую!
Юлия Долгун
Я до этого про архитектуру теоретически что-то слышала, но было очень интересно посмотреть на реальные примеры. Хотя в начале было очень тяжело и не было понятно вообще что и как, и что от меня хотят, а потом втянулась и получалось что-то сделать с личным проектом. Было очень полезно посмотреть как что-то подобное мы проектируем и сделаем на практике. я не на 100% сделала то что собиралась, но я поняла, что под разные задачи есть свои инструменты и нет самых лучших баз данных. Что под каждые данные есть что-то своё оптимизированное. Еще я поняла, что можно изучать дальше, так как раньше был ограниченный горизонт интересов, а сейчас очень расширился, на несколько лет вперёд точно
Роман Малинин
На курс я пришёл мидл плюс-минус. То есть, я, в принципе, умел решать задачи, я работал с командами, умел управлять процессом разработки. В общем, получалось. И совершенно не было перспектив на тему того, чтобы понимать, как двигаться дальше в профессии, какие есть варианты, в принципе. Курс дал возможность разобраться в том, что такое проектирование сложных систем в принципе, из чего состоит, как к этому вообще подходит, какие есть варианты. В какой-то степени я стал себя более уверенно чувствовать перед работодателем, перед потенциальным новым работодателем, ну, или ещё что-нибудь в этом роде. Вот, я ответил на свои вопросы по поводу того, как проектировать сложные системы, где могут быть проблемы, как они могут падать, на что нужно смотреть и т.д. В целом, обзор того, что есть, как этим пользоваться, понимание того, как это устроено в сложных системах, как проектировать сложные системы. Ну, и некоторый небольшой опыт самостоятельной работы, самостоятельного проектирования…
Мне понравилась работа, когда мы делали какой-то живой проект. То есть, ставились задачи, мы вместе обсуждали, предлагали какие-то варианты. Это работает хорошо как и на самостоятельной работе, так и на групповом обсуждении. Когда я занимался исключительно проектами сам, дома, то я оперировал теми знаниями, которые у меня есть. Понятно, что можно ещё нагуглить, ещё посмотреть, но подготовить домашнее задание к следующему занятию гуглинием не всегда получается, потому что сложно узнать то, чего ты не знаешь, и быстренько в этом стать квалифицированным. А вот эти вот групповые занятия, они позволяли услышать в реальном времени большое количество вариантов, посмотреть, как это может развиваться на каждом этапе, в какую сторону. И это даёт такой кругозор мышления. А, по поводу ожиданий: ни разу не было такого, чтобы я пожалел о том, что я заплатил эти деньги. Хотя деньги не маленькие. У меня до этого был... когда я входил в профессию, у меня был годовалый курс в GeekBrains. Я отдал за него примерно такие же деньги, и, вот, очень сильно переживал по этому поводу. А здесь я даже не вспоминал об этом. Было бы интересно, в будущем какие-то варианты других курсов тоже с твоим участием посетить. И, вообще, спасибо за курс. Определённая уверенность благодаря этому курсу у меня появилась.
Я теперь уже даже мечу в архитекторы и понимаю, что у меня уже есть одна дверь, через которую в архитекторы можно войти
Владимир Ламейко
Мои ожидания полностью оправдались. High-scale для меня скорее минус, чем плюс. Никогда не была интересна архитектура, где задача стоит и вопрос только в том, как это смаштабировать. Мне нужно было обсудить с другими людьми, понять, как они мыслят, потому что для меня пока не было общего представления об обосновании архитектуры, не было опыта создания архитектур с нуля, чтобы понять, что делается и почему так делается. Самое, наверное, сложное для меня было понять то, что архитектура из простого API и базы данных - это тоже архитектура со своими плюсами и минусами. И так тоже можно, и это всё что необходимо, больше ничего не надо. Нужно обосновать, почему ты больше ничего не используешь. Курс для меня полностью оправдался, и я хотел погрузиться в это, понять, заходит мне такие задачи или не заходят. Моя задача была расширить знания в принятии архитектурных решений, оставаясь на прикладном уровне, и я этого достиг. Всё равно по ходу деятельности я решаю архитектурные задачи, возникают архитектурные вопросы, но и теперь я больше понимаю как их принимать и как мыслить
Александр Гокк
Как и у всех, моя цель была систематизация знаний, плюс, хотелось как-то расширить свой кругозор об инструментах, которые можно применять, как применять, в каких случаях какой будет лучше, и как-то смотреть на принцип построения больших, нагруженных, распределенных систем. В целом, из тех задач, которые я себе ставил, неплохо прошлись по всем. То есть, на наших лекционных занятиях рассмотрели все возможные кэши, очереди и прочее. Я далеко не всё это знал, в голове отложилось. По крайней мере, я смогу и буду знать что и где искать, когда это понадобится. Мне ещё очень хотелось, как одна из целей, security. К сожалению, тут мы не затронули вообще. Вот именно security во взаимодействии компонентов, систем, не только внешне, но и внутри, когда разные компоненты разные команды разрабатывают. Вот этого не хватало. Также очень понравилось, и очень было полезным, когда мы разбирали какие-то конкретные задачки. Это классно. Как Илья говорил, классно было бы иметь такой вот справочник, который бы говорил, как и что делать. Естественно, такого справочника нету, но вот это вот занятие, когда мы разбирали какие-то задачки, пытались что-то вместе проектировать, это и есть составление таких частей этого справочника у нас в голове, что, как мне верится, облегчит в будущем составление проектов для других систем, которые, возможно, в чём-то похожи, ну, или даже отличаются. Полезно было даже не только посмотреть на то, как мы строили системы, а какими вопросами задавались: с чего начать, на чем фокусироваться. Это тоже очень важно. Именно весь интерактив с группой, самое интересное и, мне кажется, полезное. Больше всего откладывается в голове. Хотелось бы иметь возможность больше уделять времени домашнему заданию, потому что это классная штука, к сожалению, мало у кого получалось. У меня в том числе.
+ разумное соотношение теоретических и практических занятий + практические занятия (совместное обсуждение, проектирование) вообще супер! - секьюрити не затрагивали совсем (но этого и не было в программе курса, просто моя хотелка :)
Артём Шклярик
На курсе я точно расширил технический кругозор. Посмотрел, какие есть решения, с какой стороны подходить к архитектуре распределённых систем. Как минимум, сейчас не страшно начинать, уже понятно куда смотреть, за что браться в первую очередь, что стоит посчитать, чтобы набросать примерно то, что нам надо. Удалось систематизировать и структурировать свои знания ещё лучше. Получилось определиться с некоторыми определениями ролей и что от них требуется. Это сейчас очень помогает, потому что зачастую у людей разное субъективное понимание что это такое и что от этого ожидать. Понравилось то, что было очень много домашки и какие задачи ставились - заставляет изучать совсем новые для себя области и думать. По соотношению теории и практики, мне кажется, в самый раз. Весь вопрос в том, как ты выделяешь под это свое время, а его нужно выделять. Что немаловажно, ещё посмотрел и понял, как ребята более опытные, чем я, рассуждают при решении таких задач. Очень много для себя подчёркиваешь, именно как работает мышление в таких задачах у людей более опытных. Например на что стоит обратить большее внимание, а чем можно пренебречь. Какие подводные камни, которые я с ходу не заметил, могут всплыть. Полезный обмен опытом!
Анна Андреевна
Я пришла на курс, чтобы прокачаться технически. Мне очень понравилась фраза Паши в начале курса "возьмите максимум того, что вы можете". Я так и сделала. Были темы, которые, конечно, я не знала, и, я понимала, что мне пару дней или недельку маловато. Для таких тем я выделила доску в трелло и записывала туда пометки, поэтому на ближайшее время есть планы, задачи, которые планирую посмотреть и разобраться детальнее.Также мне было сложно самой себе ставить цели для развития. После курса я понимаю, на каком я сейчас уровне, вижу, куда расти и как. А еще теперь я знаю много классных, достоверных ресурсов, на которых можно искать качественную информацию, что во многом ускоряет процесс поиска ответов )) Из того, что хотелось бы улучшить. Для меня занятие больше 2 часов без перерыва было долгим, к концу было сложновато сконцентрироваться, поэтому хотелось бы небольшие перерывы во время занятия. В начале курса были рассчеты, я с таким до курсы не сталкивалась и мне было непонятно откуда брать правильную информацию, т к когда ищешь сам, находишь не одно решение, и сложно понять, на какое нужно ориентироваться. Хотелось бы чтобы вначале это объяснили или подсказали где чего посмотреть) Спасибо большое Паше. И вообще всем ребятам за участие. Было интересно!
Роман Черняков
Можно начать с того, что я не девелопер, а QA автоматизатор сильно стремящийся в sdet. Для меня курс был крайне интересен. В его процессе я стал исполнять роль технического лида в своей команде, что можно считать успешным прохождением курса. Помимо проектирования систем для тестирования внутри компании, в целом более осознанно стал читать техническую документацию, понимать почему выбрано такое решение и задавать правильные вопросы. Такие темы, как, например, системная инженерия заставили переосмыслить некоторые вещи и позволили мыслить более системно, а графическое представление 7-ми альф стало моем «затертой сохраненкой». Если подытожить все вышесказанное, то мои ожидания от курса оправдались, результатом я доволен. Я расширил свой кругозор, закрыл часть своих пробелов в технологиях, узнал о новых подходах и принципах.
Андрей Потёмкин
Мне вроде как все понравилось. Систематизация инструментов была, + она была улучшена вопросами со стороны группы и дискуссией в лайве по схеме вопрос - ответ. Очень понравились уроки где мы рисовали и решали задачи в лайве с Пашей. Было пару уроков где мы как студенты не подготовились, а Паша рассчитывал на нас, и пришлось импровизировать. Вот здесь наверное Паше нужно наготове пару тем держать что их вкинуть и провести интересный урок ( ибо такие случаи я думаю были, есть и будут ). Возможно даже заранее на первых занятиях, предложить, спросить, темы ( бэкап темы на такие случаи)А так курс топ, я получил что хотел и на сохранял информации и задач ( где углубится, где почитать что я не понял, в какую сторону копать и т.д ). Вам огромное спасибо за курс, за организацию!
Александр Ничипорович
От курса ожидал узнать как подходить к решению архитектурных задача (какие вопросы задавать, на что обращать внимание). Также хотел получить новые знания и посмотреть как архитектурные задачи решают другие. По завершении курса могу сказать, что все мои ожидания оправдались. Было очень много нового для меня, а задачи которые мы рассматривали, позволили проработать часть теории, которую мы прошли. Также очень полезным оказалось посмотреть как решают те же вопросы другие ребята и зачастую более удачно. Компания ребят попалась отличная.
Что касается теории, то ряд тем не только интересны, но и для меня оказались сложными. К примеру, когда было несколько лекций по системе инженерии, для меня это была настолько сложная тема, что пришлось раза три пересматривать видео и еще изучать в дополнительные источники, чтобы понять основы. Аналогично и с лекциями по базам данных - очень хорошо расширяет кругозор. Как пример Kafka с которой не работал и примеры БД для высоконагруженных систем как ClickHouse.
Для себя решил дальше двигаться в этом направлении и хочу получить практический опыт работы с высоконагруженными системами и поработать с другими технологиями (сейчас у меня привязка к Microsoft стеку).
Илья Шкиренко
После прохождения курса прокачал и получил новые знания в области архитектуры распределенных систем, узнал новые подходы к решению типичных проблем проектирования: шаблоны, паттерны, очереди и многое другое. Научился видеть узкие места архитектуры на ранних этапах развития систем и расширил список вариантов решения подобных проблем. Получил навык прогнозирования рисков развития архитектуры и управления ими. Курс помог определить фокус в развитии карьеры и дал много полезной информации и знакомств. Спасибо, Павел!
Заневский Виталий
Идя на курсы у меня было несколько запросов. Первый, и наверное самый важный - это систематизация знаний, приобретенных за годы работы. По опыту работы получалось, что знаний много, но четкой системы в них не было. И эту задачу в рамках курсов у меня получилось "закрыть". Безусловно мне есть еще куда расти, но теперь на многие вещи я смотрю куда увереннее и уже получилось начать применять этот систематизированный подход на работе при решении проблем и задач. Второй запрос, а он был немного необычный - это эмоциональный, когда работа забирает много времени и сил, то далеко не всегда можно найти их на обучение, поэтому сам тот факт, что ты учишься не один, а в компании таких же увлеченных людей как и ты, заряжает тебя энергией и желанием даже усталым продолжать заниматься. В этом плане курс "Технический лидер" отработал на все 100%. В качестве дополнительного неожиданного и приятного бонуса могу отметить то, что далеко не все поставленные передо мной технические задачи я мог решить сходу, поэтому пришлось параллельно пройти еще ряд других обучающих курсов ориентированных на технологии, до которых раньше не доходили руки. Резюмируя все, я хочу сказать "спасибо" Павлу и Виктории за организацию курса и всем тем парням, с кем я его проходил. Это было действительно интересно
Олег Строкачук
Я на первом занятии для себя сформулировал свои ожидания. Первое я назвал "закрепить фундамент", то есть, фундамент распределенных систем, баз данных и прочее. Понять, как собирать и формировать требования. В принципе, некий фундамент закрепился: есть понимание, как это работает и, в случае чего, что гуглить - я знаю. Где-то хотелось бы углубиться в теоретическую основу, но это, скорее, мой личный запрос. У меня был такой пункт "избавиться от синдрома самозванца". Кажется, он больше не прогрессирует :). Из следующих, я хотел бы получить "менториг/коучинг с зонами роста". Здесь, наверное, с моей стороны я запрашивал какого-то фидбэка и т.д. По техническим решениям зоны роста были обозначены, что не маловажно. Еще одно ожидание - обмен знаниями с другими участниками курса. Очень интересно обсудить реальные проекты: во-первых, кто и чем живет, какие идеи, языки и технологии применяет. На курсе нет про теорию конкретных технологий - у нас не говорилось, что стоит использовать такой язык программирования, здесь такой паттерн, а вот здесь такой-то фреймворк. Нам давали фундаментальные знания, которые позволяют сделать выбор самостоятельно. А далее в общем обсуждении уже рождалось технические решения и это очень круто. И, наверное, самое полезное, что я вынес, это тот факт, что технических знаний будет всегда где-то не хватать и это можно компенсировать - почитать, разобраться и делегировать. А вот работать с людьми на самом деле намного сложнее - уметь договариваться, задать нужные вопросы, построить беседу, понять роли людей и их мотивы. Наверное, этот курс для меня в первую очередь стал очередным открытием того, что технические знания часто не на первом месте. Нужно играть в "Игру престолов", нужно уметь разговаривать, договариваться, добиваться авторитета, становиться лидером. Можно проектировать говно, но если разобраться, что нужно заказчиками, завоевывать доверие и уметь вести людей вперед - то все получится.
Виталий Апетёнок
Хотел сказать огромное спасибо за курс. То, что преподавалось на курсе, имею в виду программу, Павел рассказал на установочном звонке и на курсе было всё, что обсудили. Что мне дал курс: более структурное, организованное, рациональное мышление. Многие вещи, которые были у меня на проекте, принципы которым следовал, какие-то умозаключения на которых основывался - многое из всего этого пересмотрел. Пришло понимание и осознание того, что при обсуждении в команде сложных, а порой и спорных, технических решений многие вещи упускались. И многое. будь то архитектурные решения или организация работы в команде, можно делать проще и совсем по-другому. Понравилось то, что обсуждение походов сводилось не к конкретным техническим решениям, а к обсуждения чего-то абстрактного, с вытекающим объяснением подхода к выбору технологий и их детальному изучению, плюсов/минусов. Это очень здорово и, на самом деле, тоже мне очень помогло. Курс очень интересный. Благодаря тому, что в группе достаточно много слушателей, можно получить бесценный опыт решений, которые применены на проектах у других. Ребятам тоже за это большое спасибо. Увидеть, как люди думают, какие-то вещи, возможно, для себя отметить. Каких-то минусов я не назову, потому что получил даже больше для себя, чем было на повестке. Единственное - со своей стороны всё-таки нужно было больше времени уделить. Чтобы получить максимум пользы - понадобится выделить достаточно много своего времени. Всё было очень круто и, безусловно, стоит того. Планирую продолжить сотрудничество с HardSoftSkills. Безусловно стоит отметить преподавательские и ораторские способности Павла. Чётко построенное повествование с акцентами на более важных моментах. Очень интеренсо следить за ходом мыслей и обсуждать с ним различные рещения. Курсом полностью доволен! Спасибо.
All classes are recorded. You’ll have lifetime access to the recordings, so you can review them at your own pace and revisit the material even after the course is completed.
The consultation is an informal conversation with the course instructor. It’s an opportunity to get acquainted, share information about your background and experience, and discuss your expectations and goals. The purpose is to ensure the course will be useful and relevant for you.
Yes. Practice is a core part of the course. Practical sessions are held once a week to review your homework assignments, and the instructor provides detailed feedback. In addition, you can discuss your work and related questions not only during practical sessions, but also in the course chat. You can also reach out directly to the instructor for answers and recommendations.
Each class lasts 1 hour per week. We also recommend dedicating additional time to homework assignments for the best results. On average, each assignment takes about 3–4 hours. In total, plan to spend at least 4 hours per week on the course.
Participants choose the class days and times together by voting during the first organizational meeting. Classes are held twice a week.
Yes. You can pay for the course in 3 equal monthly installments, based on the package you choose.
Yes. You will receive a certificate of completion in English after finishing the course.