top of page

Performance

Engineering

Practice writing fast software. Learn to do it right.

4 серп. 2026 р.

// старт наступної групи

3 місяці

// 25 занять, 3 місяці

350 $/місяць

1050 $

до 30 учасників

// кількість місць обмежена

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²).

ВИКЛАДАЧ
         ТА АВТОР ПРОГРАМИ

ivan2.jpg

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

Engineering Lead y @SQUAD, Founder в @CS Osvita. 

Former: @Dell Software Engineer, @Fiverr Senior Software Engineer, @Ring Machine Learning Engineer.

:: випустив понад 300 інженерів
:: 14 років інженерного досвіду з високонавантаженими системами
:: випускник Stanford University

Перевірено випускниками -
        ТОП інженерами з індустрії

google

amazon

netflix

booking.com

spotify

meta

владислав парахін.jpg

Олексій Колеса

Lead Software Developer @GlobalLogic

Linkedin

Курс добре структурований і цікавий, при цьому достатньо challenging. Багато практики.

владислав парахін.jpg

Ірина Дідковська

iOS Developer @Ring Ukraine

Linkedin

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

владислав парахін.jpg

Михайло Борисовський

Senior Java Software Engineer @DXC Technology

Linkedin

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

владислав парахін.jpg

Данііл Клєщов

Site reliability engineer, @Susquehanna International Group, LLP

Linkedin

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

владислав парахін.jpg

Богдан Тищенко

Software Engineer @Google

Linkedin

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.

владислав парахін.jpg

Святослав Піх

Senior Software Engineer @ Lalafo

Linkedin

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

владислав парахін.jpg

Павло Суріков

Senior Software Engineer @OpenText

Linkedin

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.

владислав парахін.jpg

Ярослава Сердюк

Software Engineer @Google

Linkedin

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

владислав парахін.jpg

Ярослав Бородаєнко

Software Engineer @Amazon

Linkedin

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

владислав парахін.jpg

Марк Фірман

Software Engineer @Braiins Systems

Linkedin

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

владислав парахін.jpg

Ольга Войчик

Software Engineer @Google

Linkedin

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

владислав парахін.jpg

В'ячеслав Очеретний

Senior Software Engineer @SingleStore (formerly MemSQL)

Linkedin

Дуже рекомендую цей курс і платформу загалом!

владислав парахін.jpg

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

Software Engineer @Amazon

Linkedin

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

владислав парахін.jpg

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

Software Engineer @Meta

Linkedin

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

владислав парахін.jpg

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

Software Engineer @Meta

Linkedin

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

владислав парахін.jpg

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

Head Of Engineering @Artur'In

Linkedin

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

владислав парахін.jpg

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

Software Engineer @Microsoft

Linkedin

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

владислав парахін.jpg

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

ML Lead @Facebook

Linkedin

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

владислав парахін.jpg

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

Software Engineer @Meta

Linkedin

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

БРОНЮЙ СВОЄ
       МІСЦЕ В ГРУПІ

оплата помісячно

420 $

курс триває 4 місяці

оплата за весь курс

1600 $

за курсом нбу

ПЕРШИЙ КРОК ЗА ТОБОЮ

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

За тебе може заплатити роботодавець?

Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.

МАЄШ ПИТАННЯ?
     МИ ВІДПОВІДАЄМО

// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо

я зможу навчатися на курсі, якщо в мене інший часовий пояс?

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

чи є запис занять?

Щоразу організовуємо запис, однак краще долучатися до онлайн-зустрічі — обговорити питання з одногрупниками та проконсультуватися з викладачем. Доступ до записів зберігається протягом року з дня старту курсу.

який рівень підготовки потрібний?

Ти вже пишеш код на роботі і знаєш хоча б одну мову програмування. Алгоритмічної бази може не бути зовсім — але готовність вчитися інтенсивно обов'язкова.

як проходять заняття?

Ми працюємо в невеликих групах до 25-30 людей у форматі живих занять із викладачем — зустрічаємося кілька разів на тиждень у Zoom. На заняттях розбираємо задачі, дискутуємо, уточнюємо деталі, розглядаємо приклади та аргументацію рішень. Формат побудований так, щоб кожен був залучений і мав можливість взаємодіяти з викладачем та групою.

до зустрічі на курсі

bottom of page