Сертификат Hard&Soft Skills
]
[
Сертификат подтверждает, что
Семеняк Павел
успешно окончил курс
«‎Технический лидер» продолжительностью 54 часа
Преподаватель курса
]
[
Павел Вейник
CEO в Hard & Soft Skills
Разработчик с 2003. Работал в EPAM, Workfusion, в других продуктовых и сервисных компаниях, как очень маленьких, так и в корпорациях. Специализации - архитектура распределенных систем, highload, микросервисы, прикладная лингвистика, системная инженерия.
Опыт в ролях разработчика, менеджера и архитектора позволяет видеть проблемы с разных точек зрения.
Сейчас выполняет архитектурные задачи в компании EPAM.
Пройденная программа курса
]
[
  1. Понятие хорошего техлида

    • 1.1 Умение думать
    • 1.2 Умение применять технологии и инструменты
    • 1.3 Умение делать хотфиксы быстро
    • 1.4 Архитектурная компетентность
    • 1.5 Роли разработчика в аутсорсе и в продукте

  2. Основы системной инженерии

    • 2.1 Проект по разработке ПО как система
    • 2.2 Функциональные и структурные компоненты системы
    • 2.3 Система и надсистема
    • 2.4 Стейкхолдеры и взаимодействие с ними
    • 2.5 Системный взгляд на роль техлида

  3. Границы возможного, критерии качества, законы распределенных систем

    • 3.1 Ограничения
      • 3.1.1 Ограничения техники
      • 3.1.2 Ограничения алгоритмов
      • 3.1.3 Ограничения сложности
    • 3.2 Критерии, эталоны эффективности
      • 3.2.1 Чтение файлов
      • 3.2.2 Передача по сети
      • 3.2.3 Поиск по документами
      • 3.2.4 Быстрые алгоритмы
    • 3.3 Принципы и законы распределенных систем
      • 3.3.1 SOLID
      • 3.3.2 Транзакции, ACID, уровни изоляции
      • 3.3.3 BASE
      • 3.3.4 Теорема CAP
      • 3.3.5 Особенности и ограничения любой распределенной системы

  4. Архитектура приложения как способы компоновки приложения

    • 4.1 Шаблоны проектирования
      • 4.1.1 Создающие
      • 4.1.2 Структурные
      • 4.1.3 Поведенческие
      • 4.1.4 Шаблоны интеграции
      • 4.1.5 Шаблоны отказоусточивости
      • 4.1.6 Шаблоны масштабируемости
    • 4.2 Классификация структурных/функциональных компонентов приложения
      • 4.2.1 Хранилища данных
        • 4.2.1.1 SQL
        • 4.2.1.2 noSQL
        • 4.2.1.3 Другие
      • 4.2.2 Очереди
      • 4.2.3 Кэши
      • 4.2.4 Файловые хранилища
      • 4.2.5 Балансировщики
      • 4.2.6 ORM фреймворки
      • 4.2.7 Остальные
    • 4.3 Интеграция систем, система как компонент большей системы
      • 4.3.1 Стили интеграции систем
        • 4.3.1.1 Обмен файлами
        • 4.3.1.2 Общая бд
        • 4.3.1.3 RPC
        • 4.3.1.4 Сообщения
      • 4.3.2 Работа с сообщениями
        • 4.3.2.1 Создание сообщений
        • 4.3.2.2 Направление сообщений
        • 4.3.2.3 Преобразование сообщений
        • 4.3.2.4 Обработка сообщений
        • 4.3.2.4 Канал сообщений
        • 4.3.2.5 Управление системой передачи сообщений
    • 4.4 Cloud сервисы и архитектуры

  5. Систематизация существующих структурных компонентов приложения

    • 5.1 Базы данных
      • 5.1.1 SQL
      • 5.1.2 noSQL
      • 5.1.3 Другие
    • 5.2.2 Очереди
    • 5.2.3 Кэши
    • 5.2.4 Файловые хранилища
    • 5.2.5 Балансировщики
    • 5.2.5 Распределенные вычисления
    • 5.2.6 ORM фреймворки
    • 5.2.6 CDN
    • 5.2.7 Остальные
  6. Примеры архитектурных решений и их обсуждение

  7. Работа над собственными проектами

  8. Инструменты, подходы и технологии, внутренние для разработки

    • 8.1 Мониторинг и оповещения
    • 8.2 Обработка логов
    • 8.3 Виртуализация
    • 8.4 Автоматизация релиза
    • 8.5 Прозрачность и отладка
    • 8.6 Управление конфигурациями
    • 8.7 Тестирование и управление качеством
  9. Релизы

    • 9.1 Миграции
    • 9.2 Обновление артефактов
    • 9.3 Zero-downtime
    • 9.4 Управление версиями

  10. Подходы к архитектурам

    • 10.1 Монолиты
    • 10.2 Микросервисы
    • 10.3 CQRS
    • 10.4 Масштабируемость
    • 10.5 Гибкость
    • 10.6 В стартапе
    • 10.7 Примеры

  11. Языки программирования: удобство, применимость и ограничения

  12. Позиция техлида, система, надсистема, стейкхолдеры и границы ответственности

    • 12.1 Баланс скорости и качества
    • 12.2 Технический долг и развитие бизнеса