top of page

Подай заявку
             на відбір

за Весь курс

1200 $

за курсом нбу

помісячно

420 $

КУРС ТРИВАЄ 3 МІСЯЦІ

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

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

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

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

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

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

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

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

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

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

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

Ти вже пишеш код на роботі і знаєш хоча б одну мову програмування.

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

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

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

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

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

Олександр Савсуненко

Senior Staff ML Engineer @Meta

LinkedIn

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

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

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

Software Engineer @Microsoft

LinkedIn

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

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

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

Software Engineer @Amazon

LinkedIn

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

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

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

Software Engineer @Google

LinkedIn

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

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

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

Software Engineer @Meta

LinkedIn

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

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

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

Software Engineer @Amazon

LinkedIn

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

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

Ольга Войчик

Software Engineer @Google

LinkedIn

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

владислав парахін.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

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

Senior Software Engineer @Lalafo

LinkedIn

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

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

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

Software Engineer @Meta

LinkedIn

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

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

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

Lead Software Developer @GlobalLogic

LinkedIn

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

владислав парахін.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

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

Engineering Manager @Uklon

LinkedIn

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

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

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

Software Engineer @Meta

LinkedIn

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

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

Марк Фірман

Software Engineer @Braiins Systems

LinkedIn

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

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

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

Senior Java Software Engineer @DXC Technology

LinkedIn

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

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

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

iOS Developer @Ring Ukraine

LinkedIn

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

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

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

Site reliability engineer, @Susquehanna International Group, LLP

LinkedIn

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

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

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

Senior Software Engineer @SingleStore (formerly MemSQL)

LinkedIn

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

ПРО КУРС

Більшість проблем перформансу живе не в алгоритмах. Корінь глибше — в тому, як код виконується на реальному CPU та GPU: промахи кешу, невдале розміщення даних у пам'яті, хибні передбачення branch predictor, зайві алокації, перемикання між потоками чи простої в очікуванні ядра ОС. Кожен із цих факторів з'їдає мікросекунди, які складаються у відчутні затримки. Звідси парадокси, що ламають інтуїцію: O(n) програє O(n²), HashMap на мільйони записів поступається sorted array із binary search, а два потоки працюють повільніше за один.

І саме тут починаються по-справжньому цікаві інженерні задачі — особливо зараз, коли частоти процесорів не ростуть, пам'ять відстає від CPU, а залізо більше не пробачає неакуратних рішень. Як прискорити hot loop у 10 разів, не змінюючи алгоритму? Як написати memory allocator, швидший за malloc на вашому workload? Як зрозуміти, що насправді робить ваш код, коли профайлер показує дивне? Цей курс — про розв'язання таких задач: від рівня бітів і байтів до операційних систем, через практику і вимірювання, а не оглядову теорію. Принцип один: не вгадувати — міряти, не «підкручувати» — пояснювати, формувати власну модель того, що відбувається під капотом.

Для middle та senior інженерів, які працюють або хочуть працювати там, де performance — не nice to have, а базова вимога: infrastructure, backend core, databases, machine learning systems, high-frequency trading.

ЩО ПОТРІБНО ЗНАТИ

:: Базове знання алгоритмів, структур даних, оцінки складності та впевнена робота в терміналі з основними командами
:: Готовність працювати з C/C++, читати низькорівневий код, розуміти його логіку та використовувати за потреби, навіть якщо це не основна мова
:: Впевнене володіння хоча б однією мовою програмування

ДВІЧІ на тиждень

ВІВТОРОК 18:30 (UTC+3)

ПʼЯТНИЦЯ 18:30 (UTC+3)

// live зустрічі з записом

Стек

Будь-яка мова програмування

// пишемо код з першого заняття

ПРОГРАМА

:: 25 LIVE ЗАНЯТЬ        :: 6 Q&A СЕСІЙ       :: ДО 30 СТУДЕНТІВ У ГРУПІ

CPU і вартість коду — від аналізу до оптимізацій

Навчимось бачити, де втрачаються наносекунди і як це свідомо виправляти.
• Напишемо власну віртуальну машину: 256 байт памʼяті, 3 регістри, fetch-decode-execute цикл. Після цього JVM, CPython і V8 перестануть бути магією.
• Ієрархія latency операцій і як переписати hot loop з урахуванням цих фактів
• Back-of-envelope estimations: як за 30 секунд на папері сказати, чи встигне алгоритм за секунду. Приклади співбесід у Google та Jane Street
• Техніки, якими інженери Facebook, Twitter і HFT-компаній прискорюють продакшн-код у 100 разів — і як застосувати їх у своєму коді
• Розбір performance-катастроф: regex, що поклав Cloudflare; hash flooding як DoS-вектор проти PHP/Java/Node; Java String у циклі, що робить O(N²)

Cache — чому правильний memory layout важливіший за алгоритм

Два однакові цикли по пам'яті. Перший — у 50 разів швидший. Різниця — в одному рядку.
• Розберемо game engine та прискоримо реальний код у 6–10 разів, не змінюючи алгоритм — тільки через те, як дані лежать у пам'яті
• Cache-friendly алгоритми і структури даних: loop tiling для матриць, B-tree замість red-black tree в базах даних, flat_hash_map замість std::unordered_map
• Інструменти, якими вимірюють cache performance: perf stat на L1-cache-load-misses, cachegrind через valgrind, інтерпретація cg_annotate.
• Кеш операційної системи та вплив на реалізацію File I/O
• Чому ООП з розкиданими полями програє Data-Oriented Design: AoS vs SoA, hot/cold splitting, structure packing

A Bit about Bytes — як дані представлені в памʼяті і чому це має значення

0.1 + 0.2 != 0.3. Це не баг Python — це IEEE 754. Розберемось, чому.
• Variable-length int у Protobuf: як економити 75% байтів на типових даних
• IEEE 754 з нуля: sign, exponent, significand. Зрозуміємо, чому float-и не розподілені рівномірно на числовій осі, і чому фінансові розрахунки ніколи не ведуться у float
• Two's complement: чому -128 і +127 живуть у тому самому байті, і як одне правило «інверт + 1» замінює всю логіку віднімання
• UTF-8 зсередини: закодуємо € у три байти руками, зрозуміємо, чому Twitter рахує grapheme clusters, а не code points
• Розрізняти data / code / stack / heap сегменти просто подивившись на адресу вказівника — і розуміти, звідки береться segfault ще до того, як його кинули
• Bitmap-індекси в БД: як PostgreSQL і ClickHouse відповідають на WHERE gender='M' AND country='UA' швидше за B-tree — і напишемо свій
• Bit hacks, що реально застосовуються в продакшні: popcount для Redis-фільтрів, перевірка степеня двійки без циклів, вирівнювання адрес без умовних переходів
• Endianness на практиці: чому той самий файл, записаний на x86 і прочитаний на ARM, ламається — і як з цим живуть мережеві протоколи

Memory — від malloc до garbage collector

Аллокатор, GC, arena — напишемо все руками. Після цього new і malloc стануть кодом, який ви знаєте зсередини.
• Напишемо власний memory allocator через mmap: header, freelist, first-fit стратегія — і зрозуміємо, чому jemalloc у Facebook і tcmalloc у Google переможуть system malloc на їхніх workload'ах
• Напишемо власний mark & sweep garbage collector
• Stack vs Heap: як працюють push/pop/call/ret на рівні assembly, чому функція не може повернути pointer на локальну змінну, і звідки береться stack overflow на глибокій рекурсії
• Alignment і padding: чому struct { char; int; char; } займає 12 байт замість 6, як правильний порядок полів економить 40% пам'яті, і що процесор робить з unaligned access

Low-level оптимізації — компілятор, асемблер і залізо

Компілятор робить за вас багато. Але іноді він не може — і тоді потрібно розуміти, що відбувається рівнем нижче.
• Instruction-Level Parallelism на практиці: чому процесор може виконувати 4 інструкції за такт
• Як loop unrolling піднімає швидкодію коду
• SIMD через AVX/SSE: як одна інструкція обробляє 8 float-ів замість одного
• Branch prediction зсередини: чому невгадана if-гілка коштує 15–20 циклів, і коли варто переписувати if як branch-free arithmetic
• Reverse engineering: 6 фаз зашифрованого бінарника, які треба розкодувати через gdb і дизасемблер, читаючи x86-64 assembly й розуміючи, що компілятор згенерував з вашого коду

Операційна система — абстракції, за які ви платите

ОС дає зручний інтерфейс: файли, процеси, памʼять. Але кожен syscall — це перемикання контексту. Кожна абстракція — це overhead. Їх розуміння — це різниця між "працює" та "працює швидко".
• Virtual Memory і Page Tables зсередини: як адреса з вашого процесу перетворюється на фізичну через TLB і 4-рівневі таблиці, і чому mov [rax] іноді коштує 100+ циклів
• System calls і context switches: чому один getpid() — це 100 наносекунд
• Page faults як джерело latency spike'ів. Lazy allocation, copy-on-write fork, demand paging і memory-mapped files.

Процеси — ізоляція, координація, комунікація

Напишемо свій shell з нуля. Після цього ls | grep | wc перестане бути магією командного рядка і стане трьома процесами, трьома pipe, одним парентом.
• Реалізуємо власний shell на C: parsing команд, fork + exec, pipe, redirects
• Fork і exec зсередини: чому саме дві системні функції, а не одна spawn(), і як copy-on-write робить fork() дешевим
• IPC на практиці: pipe для потокової передачі, Unix socket для структурованих повідомлень, shared memory для максимальної швидкості

Multithreading та Concurrency — від потоків до Event Loop

"Додай потоків" — це не стратегія оптимізації. Це початок нового класу проблем: race conditions, deadlocks, priority inversion, starvation. Конкурентність — це окрема дисципліна, де кожне рішення має trade-off між throughput, latency та correctness.
• Threads vs Processes vs Coroutines: як кожна модель розв'язує одну й ту саму задачу по-різному, і чому Node.js на одному потоці обганяє Apache на тисячі
• False sharing — баг, через який два потоки повільніші за один, хоча не діляться жодною змінною. Як знайти через perf c2c і виправити через alignas(64)
• MESI зсередини: як чотири ядра процесора синхронізують кеш
• Напишемо Thread pool та виправимо багато конкурентних багів

ЯК ПРОХОДИТЬ
            НАВЧАННЯ

01

фідбек та ітерації

// Домашки не задаємо для галочки. Викладач перевіряє рішення, повертає на доопрацювання та пояснює, де прогалини

Zoom

02

записи та конспекти

// Записуємо всі заняття та ділимося матеріалами, щоб ви не втрачали темп навіть через форс-мажори чи особисті обставини

Zoom

03

live звʼязок

// Усі заняття проходять в живому форматі з викладачем, щоб поставити запитання та попрактикувати live-coding

Zoom

01

live зв'язок

// Усі заняття проходять в живому форматі з викладачем, щоб поставити  запитання та попрактикувати live-coding 

Zoom

Slack

02

записи та конспекти

// Записуємо всі заняття та ділимося матеріалами, щоб ви не втрачали темп навіть через форс-мажори чи особисті обставини 

Notion

03

фідбек та ітерації

// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює

GitHub

HackerRank

ПРАКТИЧНА
         РОБОТА

:: 9 ДОМАШНІХ ЗАВДАНЬ     :: ФІДБЕК ВИКЛАДАЧА     :: РЕАЛЬНІ ПРОДАКШН ЗАДАЧІ

Власна віртуальна машина

// приклад однієї з домашок на курсі
У CPython, JVM і V8 всередині живе одна знайома механіка: runtime читає інструкцію, декодує її, змінює стан машини і переходить до наступної. 

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

Для цього знадобляться: 
:: фіксований блок пам’яті;
:: кілька регістрів;
:: program counter;
:: акуратний цикл fetch–decode–execute. 

Ця задача змушує руками зібрати механізм, на якому тримаються інтерпретатори, байткод і частина сучасних runtime-систем.

ЩО ЗМІНИТЬСЯ
            ПІСЛЯ КУРСУ

1

глибина твого розуміння

// Що саме гальмує програму: кеш, памʼять, алокації, branch prediction, системні виклики, потоки чи невдале розміщення даних.

2

ефективність твого коду

// Почнеш писати код, який швидше працює на реальному залізі, а не лише виглядає оптимальним у Big O.

3

обґрунтованість твоїх рішень

// Почнеш оптимізовувати системи через профайлінг і розуміння trade-offs, а не через здогадки та випадкові «покращення».

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

ivan2.jpg

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

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

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


:: 14+ років в інженерії: від низькорівневих high-performance backend-систем на C/C++/C# до складних web-архітектур і production-систем на Python.  

:: 5+ років у ролі Technical Lead: проєктування великих систем та доведення складних рішень до production.  

:: 9+ років викладання computer science: від інтернатур у продуктових компаніях до підготовки школярів на олімпіади міжнародного рівня.

01

Будував і пришвидшував production-системи: від алгоритмів дедуплікації, реплікації та геообчислень — до backend-сервісів, що тримають тисячі RPS.

02

Досягав 10x пришвидшення сервісів без пропорційного зростання інфраструктури — через профілювання, microbenchmarks і оптимізацію гарячих ділянок коду.

03

Прискорював data/ML-пайплайни, що обробляли мільйони записів: знаходив bottleneck'и на critical path і перетворював повільні batch-процеси на швидкі та масштабовані.

Practice writing fast software. Learn to do it right.

Frame 8523.png

Одна з моїх найкращих інвестицій, можу рекомендувати всім!

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

@Meta

Frame 8523.png

Must-have для всіх, хто прагне заглибитись у нутрощі сучасного комп’ютера.

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

@Amazon

Frame 8523.png

Вартує кожної хвилини і кожної вкладеної гривні.

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

@Amazon

Frame 8523.png

Курс допоміг мені отримати оффер від Oracle та Microsoft.

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

@Microsoft

Frame 8523.png

Буде цікаво та складно, всім хайлі рекомендед!

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

@Meta

Performance

     Engineering

Big O — це не перформанс. Реальний перформанс ховається в промахах кешу, зайвих алокаціях і даних, розкиданих по пам'яті. Навчись знаходити і прибирати це, щоб пришвидшити код в рази без жодної зміни алгоритму.

18 серпня 2026

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

3 місяці

// 25 занять + 6 Q&A сесій

420 $/місяць

// або 1200 $ за весь курс

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

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