
Performance
Engineering
Practice writing fast software. Learn to do it right.
The revolution needs builders
ПРО КУРС
Як побудувати систему управління базами даних? Чому існує так багато різновидів СУБД, і щороку з’являються нові? Як насправді працюють primary key, join, order by? Як дані зберігаються на диску та які оптимізації застосовують сучасні системи? Якщо ви хочете отримати відповіді на ці та інші запитання про створення СУБД — цей курс для вас.
Протягом навчання ми розглянемо повний шлях побудови бази даних — від парсингу запитів до їх виконання та масштабування. Ви дізнаєтеся, які алгоритми та концепції лежать в основі сучасних СУБД, і на практиці створите власну.
Курс буде корисний тим, хто прагне глибше зануритися в системне програмування, користувачам СУБД, які хочуть зрозуміти внутрішні принципи роботи баз даних та навчитися ефективніше їх оптимізувати. Найкращий досвід навчання — з Rust або C++, адже вони дозволять глибше зануритися в архітектуру баз даних і краще відчути роботу з пам’яттю та продуктивністю на практиці, але це лише рекомендація.
prerequisites
:: Розуміння масивів, циклів, функцій, рекурсії
:: Розуміння масивів, циклів, функцій, рекурсії
:: Розуміння масивів, циклів, функцій, рекурсії
:: Розуміння масивів, циклів, функцій, рекурсії
:: Розуміння масивів, циклів, функцій, рекурсії
ДВІЧІ на тиждень
Субота
10:00 UTC+3
Середа
18:30 UTC+3
// live зустрічі з записом
Стек
Будь-яка мова програмування
// live зустрічі з записом
ПРОГРАМА
:: 32 live заняття
:: 8 Q&A сесій
:: до 30 студентів в групі
Multithreading та Concurrency — від потоків до Event Loop
"Додай потоків" — це не стратегія оптимізації. Це початок нового класу проблем: race conditions, deadlocks, priority inversion, starvation. Конкурентність — це окрема дисципліна, де кожне рішення має trade-off між throughput, latency та correctness.
Threads vs. Processes vs. Coroutines: погляд зсередини
Реалізуємо Event loop
Synchronization objects та Data races. Як реалізувати м'ютекс?
Напишемо Thread pool та виправимо багато конкурентних багів
Процеси — ізоляція, координація, комунікація
Напишемо свій shell з нуля. Після цього ls | grep | wc перестане бути магією командного рядка і стане трьома процесами, трьома pipe, одним парентом.
Реалізуємо свій Shell
Fork + Exec
Як досягається координація між процесами че рез pipe
Операційна система — абстракції, за які ви платите
ОС дає зручний інтерфейс: файли, процеси, памʼять. Але кожен syscall — це перемикання контексту. Кожна абстракція — це overhead. Їх розуміння — це різниця між "працює" та "працює швидко".
Як влаштована Virtual Memory та Page Tables під капотом
Як працюють System calls та context switches
Key features OS provide for users
How Page Faults can dramatically affect performance?
Low-level оптимізації — компілятор, асемблер і залізо
Компілятор робить за вас багато. Але іноді він не може — і тоді потрібно розуміти, що відбувається рівнем нижче.
Пришвидшення за рахунок Instruction-level parallelism (ILP)
Використання SIMD та Branch prediction на прикладах
Вступ до асемблеру. Навчимося писати та читати прості програми
Reverse-engineering
Memory — від malloc до garbage collector
Аллокатор, GC, arena — напишемо все руками. Після цього new і malloc стануть кодом, який ви знаєте зсередини.
Реалізуємо Memory allocator та Garbage collector
Alignment даних. Вплив на пам'ять та швидкодію
Тонкощі реалізац ії структур даних в продакшн
Сегменти пам'яті. Як влаштований Stack і Heap
A Bit about Bytes — як дані представлені в памʼяті і чому це має значення
0.1 + 0.2 != 0.3. Це не баг Python — це IEEE 754. Розберемось, чому.
Bitmap-індекси в базах даних
Деталі представлення та роботи з типами int, float, string
Як влаштований variable length int під капотом у Protobuf?
Unicode або як Twitter обмежує розмір твіта?
Bit hacks
Cache — чому правильний memory layout важливіший за алгоритм
Два однакові цикли по пам'яті. Перший — у 50 разів швидший. Різниця — в одному рядку.
Пришвидшення продакшн-коду за рахунок memory hierarchy
OOP мертвий. Хай живе Data-Oriented Design
Нюанси написання сache-friendly алгоритмів та структур даних
Кеш операційної системи та вплив на реалізацію File I/O
Інструменти для вимірювання cache performance
CPU і вартість коду — від аналізу до оптимізацій
Навчимось бачити, де втрачаються наносекунди і як це свідомо виправляти.
Найпопулярніші техніки оптимізації алгоритмів
Sentinel та як він дозволяє пришвидшити код
Чи всі інструкції CPU однаково швидкі?
Як Twitter та Facebook пришвидшили продакшн код в 100 разів
Оптимізації наносекунд в High-frequency trading (HFT) компаніях
Реалізація віртуальної машини як Java Virtual Machine (JVM)
Python vs C. У скільки разів та чому Python сповільнює код?
ЯК ПРОХОДИТЬ
НАВЧАННЯ
01
фідбек та ітерації
// Домашки н е задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
записи та конспекти
// Записуємо всі заняття та ділимося матеріалами, щоб ви не втрачали темп навіть через форс-мажори чи особисті обставини
Zoom
01
live звʼязок
// Усі заняття проходять в живому форматі з викладачем, щоб поставити запитання та попрактикувати live-coding
Zoom
ПРАКТИЧНА
РОБОТА
:: 30 завдань
:: пишете власну СУБД
:: ФІДБЕК ВИКЛАДАЧА
// Рекомендуємо виділяти 6–10 годин на тиждень для виконання домашніх завдань, щоб отримати максимальний результат від курсу.
Ticket Classification Pipeline
Побудуй пайплайн який кластеризує, називає кластери через LLM і шукає схожі тікети через embeddings.
У вас є 100 синтетичних support-тікетів (7 категорій: account, billing, technical, shipping, returns, feature_request, general). Ваша мета — побудувати пайплайн, який:
Перетворює тікети на вектори (embeddings).
Кластеризує їх через k-means і візуалізує через t-SNE.
Через LLM автоматично називає кожен кластер.
Порівнює BM25 (ключові слова), cosine (семантика) і fusion (RRF) на тих самих тікетах.
Створює Ticket Helper: за новим зверненням знаходить схожі минулі тікети й підказує категорію.
Як запускати…
ЩО ЗМІНИТЬСЯ
ПІСЛЯ КУРСУ
1
як ти проходиш coding interview
// 80% технічних співбесід у Big Tech — задачі на алгоритми і структури даних. Після курсу ти заходиш на будь-яку з них з чіткою структурою мислення — і можеш пояснити своє рішення на кожному кроці.
2
як ти підходиш до задачі
// Аналізуєш обмеження до першого рядка коду — впізнаєш клас задачі, знаєш інструмент і розумієш trade-offs між підходами. Бачиш фінішну пряму ще на старті.
3
як ти читаєш код
// Бачиш реальну ціну кожного рядка крізь абстракції — де фреймворк приховує дорогу операцію, де рекурсія з'їдає пам'ять, де красивий метод насправді O(n²).
ВИКЛАДАЧ
ТА АВТОР ПРОГРАМИ

Іван Петрушенко
Engineering Lead y @SQUAD, Founder в @CS Osvita.
Former: @Dell Software Engineer, @Fiverr Senior Software Engineer, @Ring Machine Learning Engineer.
:: випустив понад 300 інженерів
:: 14 років інженерного досвіду з високонавантаженими системами
:: випускник Stanford University
Перевірено випускниками -
ТОП інженерами з індустрії
amazon
netflix
booking.com
spotify
meta

Олексій Колеса
Lead Software Developer @GlobalLogic
Курс добре структурований і цікавий, при цьому достатньо challenging. Багато практики.

Ірина Дідковська
iOS Developer @Ring Ukraine
Курс крутий. Дуже рада, що Іван його створив і що мала нагоду потрапити. Окремо ціную записи лекцій — можна переглядати у зручний час. Плюс велика кількість додаткових відео, посилань і нотаток від Івана суттєво розширили мій кругозір і дали чіткий орієнтир що дивитись і що читати далі.

Михайло Борисовський
Senior Java Software Engineer @DXC Technology
Курс дуже сильний і фундаментальний — охоплює базові принципи Computer Science незалежно від мови програмування. Під час навчання ми розібрали архітектуру комп'ютера, о птимізації на рівні кешу та пам'яті, особливості асемблера, а також те, як операційна система працює з процесами, потоками, адресним простором і ресурсами. Все це дає глибоке розуміння перформансу на low-level рівні.

Данііл Клєщов
Site reliability engineer, @Susquehanna International Group, LLP
Лекції з Іваном були для мене найкориснішими. У computer science є багато сфер, про які не замислюєшся, коли просто пишеш код. Іван якраз показує ці аспекти — як вони працюють і чому їх важливо р озуміти, якщо хочеш щось оптимізувати.
Я постійно ставив запитання, активно взаємодіяв, і це було дуже цінно. Коли людина вже пройшла цей шлях і пояснює тобі складні речі простіше, це економить багато часу на дослідження і допомагає швидше сформувати інтуїцію. Це, на мою думку, одна з найсильніших сторін курсу.

Богдан Тищенко
Software Engineer @Google
This program covered advanced techniques in performance analysis and system optimization.
Based on the quality of the content and the expertise of the instructor, Ivan Petrushenko, I highly recommend this course to any professional seeking to master the nuances of performance engineering.

Святослав Піх
Senior Software Engineer @ Lalafo
Особливо сподобався підхід до викладання, коли мене спонукали самому знаходити відповідь маленькими кроками. Завдяки цим курсам я відкрив для себе, як можна продовжувати навчання вже на рівні Senior. А живе спілкування на лекціях виявилося значно ефективнішим, ніж перегляд записаних відео на Udemy, Coursera чи YouTube.

Павло Суріков
Senior Software Engineer @OpenText
This course offers an in-depth exploration of the low-level mechanics behind modern operating systems and CPU architectures, covering topics like caching, memory management, instruction-level performance, processes, multithreading, and concurrency.
I highly recommend it to developers who want to move beyond abstractions and learn to write optimized code grounded in a strong understanding of system internals.

Ярослава Сердюк
Software Engineer @Google
Курс дав глибоке розуміння теми. Було цікаво й пізнавально. Дуже тішить, що такі ініціативи розвиваються в Україні. Щиро рекомендую!

Ярослав Бородаєнко
Software Engineer @Amazon
Must-have для всіх, хто прагне заглибитись у нутрощі сучасного комп’ютера: як працює його CPU, з чого складається пам’ять та як операційна система керує процесами. Ці знання дозволять виділитися як на технічних інтерв’ю, так і під час код-рев’ю, надаючи корисні поради. Курс добре структурований і включає нетривіальні домашні завдання. Окреме задоволення приносить аналіз кейсів оптимізацій у кодових базах Facebook та Twitter.

Марк Фірман
Software Engineer @Braiins Systems
Серед інших курсів немає аналогів за рівнем глибини та якості матеріалів. Це абсолютно унікальний досвід, який забезпечує глибше та практичне розуміння роботи комп'ютера.

Ольга Войчик
Software Engineer @Google
Це були цікаві 3 місяці, протягом яких вдалося отримати та покращити свої знання з оптимізації коду, віртуальної пам'яті, та взаємодії процесів із операційною системою. Також хотіла б відзначити продумані дом ашні завдання — це була чудова нагода попрактикувати вивчене.

В'ячеслав Очеретний
Senior Software Engineer @SingleStore (formerly MemSQL)
Дуже рекомендую цей курс і платформу загалом!

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

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

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

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

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

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

Владислав Каплун
Software Engineer @Meta
Під час проходження курсу отримав неабияке задоволення від структурованого підходу. Куратор вражає вмінням доступно та розгорнуто подавати інформацію. Отримані знання з курсу також мають практичний застосунок у моїй роботі, що підкреслює цінність отриманої освіти.
БРОНЮЙ СВОЄ
МІСЦЕ В ГРУПІ
оплата помісячно
420 $
курс триває 4 місяці
оплата за весь курс
1600 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо