top of page

performance engineering

Practice writing fast software. Learn to do it right.

online

старт:

10.01.25

28 занять + 12 QA сесій

290 $/міс

10% донатимо ЗСУ

про курс

Алгоритміка заклала фундамент мислення, тепер настав час зазизрнути ще глибше. Адже хороші програмісти знають інструменти, що використовують, а найкращі з них можуть мислити про виконання програми на різних рівнях - від мови програмування до операційної системи та процесора. Ці знання дозволяють знаходити вузькі місця в коді, писати швидкі, коректні, надійні асинхронні та багатопоточні програми, приймати правильні архітектурні рішення.

Курс є важливим для подальшого вивчення Compilers, Databases та Operating Systems i потребує знань з Aлгоритмів.

навчальний план
буде гаряче

  • Найпопулярніші техніки оптимізації алгоритмів
  • Sentinel та як він дозволяє пришвидшити код
  • Чи всі інструкції CPU однаково швидкі?
  • Як Twitter та Facebook пришвидшили продакшн код в 100 разів
  • Оптимізації наносекунд в High-frequency trading (HFT) компаніях
  • Реалізація віртуальної машини як Java Virtual Machine (JVM)
  • Python vs C. У скільки разів та чому Python сповільнює код?

CPU

Техніки оптимізації наносекунд в HFT компаніях.

  • Пришвидшення продакшн-коду за рахунок memory hierarchy
  • OOP мертвий. Хай живе Data-Oriented Design
  • Нюанси написання сache-friendly алгоритмів та структур даних
  • Кеш операційної системи та вплив на реалізацію File I/O
  • Інструменти для вимірювання cache performance

Cache

Нюанси написання сache-friendly алгоритмів та структур даних.

  • Bitmap-індекси в базах даних
  • Деталі представлення та роботи з типами int, float, string
  • Як влаштований variable length int під капотом у Protobuf?
  • Unicode або як Twitter обмежує розмір твіта?​
  • Bit hacks

А Bit about Bytes

Представлення даних на рівні окремих бітів та байтів.

  • Реалізуємо Memory allocator та Garbage collector
  • Alignment даних. Вплив на пам'ять та швидкодію
  • Масиви та структури. Тонкощі реалізації list в Python
  • Сегменти пам'яті. Як влаштований Stack і Heap

Memory

Реалізуємо Memory allocator та Garbage collector.

  • Пришвидшення за рахунок Instruction-level parallelism (ILP)
  • Використання SIMD та Branch prediction на прикладах
  • Вступ до асемблеру. Навчимося писати та читати прості програми
  • Reverse-engineering

Low-level optimizations

Оптимізації коду на рівні компілятору.

  • Як влаштована Virtual Memory та Page Tables під капотом
  • Як працюють System calls та context switches ​
  • Key features OS provide for users
  • How Page Faults can dramatically affect performance?

Operating system

Основні задачі ОС та її вплив на швидкодію.

  • Реалізуємо свій Shell
  • Fork + Exec
  • Як досягається координація між процесами через pipe

Processes

Напишемо свій Shell для координації роботи процесів.

  • Threads vs. Processes vs. Coroutines: погляд зсередини
  • Реалізуємо Event loop
  • Synchronization objects та Data races. Як реалізувати м'ютекс?
  • Напишемо Thread pool та виправимо багато конкурентних багів

Multithreading and Concurrency

Від потоків до написання власного EventLoop.

читає

Іван Петрушенко

Engineering Lead y Squad, Founder в CS Osvita. 
Former: Dell Software Engineer, Fiverr Senior Software Engineer, Ring Machine Learning Engineer.

відгуки
що говорять випускники

Software Engineer @Meta

Владислав Каплун

Під час проходження курсу отримав неабияке задоволення від структурованого підходу. Куратор вражає вмінням доступно та розгорнуто подавати інформацію. Отримані знання з курсу також мають практичний застосунок у моїй роботі, що підкреслює цінність отриманої освіти.

ML Lead @Facebook

Саша Савсуненко

Буде цікаво та складно, всім хайлі рекомендед! Курс допоміг мені швидше розібратись з складним кодом на новому проекті, зрозуміти структури даних та оптимізації, що використовуються. Ці речі має знати кожен програміст.

Software Engineer @Microsoft

Валентин Бочкарьов

Під час підготовки до інтерв‘ю у FAANG проходив курс Algorithms in Practice, а згодом і Performance Engineering. Зараз я з впевненістю можу сказати, що обидва курси допомогли мені отримати оффер від Oracle та Microsoft.

Head Of Engineering @Artur'In

Віталій Маковський

Це був один з найвражаючих навчальних досвідів у моєму житті. Викладач зумів передати глибокі знання з предмета і зробив цей процес захоплюючим. Під час навчання ви випробуєте себе і, що не менш важливо, познайомитесь з цікавими людьми.

Software Engineer @Meta

Роман Перегончук

Курс просто супер! Це дуже класний спосіб отримати нові знання, познайомитись з цікавими людьми і як бонус підготуватись до технічних інтерв'ю. Одна з моїх найкращих інвестицій, можу рекомендувати всім!

Software Engineer @Meta

Назарій Іванчук

Я отримав справжнє задоволення від вивчення таких фундаментальних тем, як оптимізація алгоритмів та робота з кешем. Особливо цінними виявилися розділи про підвищення ефективності на рівні CPU та пам'яті. Завдяки чіткій і доступній подачі матеріалу, здобуті знання одразу знайшли практичне застосування.

Software Engineer @Amazon

Кирило Попирко

Курс дуже добре структурований: починається з високорівневих абстракцій і поступово заглиблюється в деталі. Приклади базуються на реальних проєктах; цікаві та практичні домашні завдання (навіть довелося знешкоджувати бомбу!). Вартує кожної хвилини і кожної вкладеної гривні.

що на вас чекає
have fun and dive deep

Вівторок, п'ятниця о 18:30, тривалість 1.5 години. Мова викладання—українська. Додаткові матеріали—англійською.

зустрічі в Zoom двічі на тиждень

Ком'юніті для обговорення лекцій та обміну хитрими тестами до задач.

закрита Slack група

Панує атмосфера відкритості, доброзичливості, дисциплінованості та русофобії.

цінності

Реєстрація. Перший крок за вами

реєстрація
перший крок за вами

Вітаємо, перший крок до рейзу зроблено! 

Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.

bottom of page