
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 and concurrency — from threads to event loop
"Add more threads" is not an optimization strategy. It's the beginning of a new class of problems: race conditions, deadlocks, priority inversion, starvation. Concurrency is a discipline of its own, where every decision involves a trade-off between throughput, latency, and correctness.
- Threads vs. Processes vs. Coroutines: an inside look
- We implement Event loop
- Synchronization objects and Data races. How to implement a mutex?
- We will write a Thread pool and fix many concurrency bugs
Processes — isolation, coordination, communication
A process is the basic unit of isolation in Unix. Understanding how processes are created, executed, and communicate with each other is the foundation for working with any server-side system.
- We are implementing our Shell
- Fork + Exec
- How coordination between processes is achieved through pipes
The operating system — abstractions you pay for
The OS gives you a convenient interface: files, processes, memory. But every syscall is a context switch. Every abstraction is overhead. Understanding the cost of these abstractions is the difference between "it works" and "it works fast."
- How Virtual Memory works and Page Tables under the hood
- How System calls and context switches work
- Key features OS provides for users
- How Page Faults can dramatically affect performance?
Low-level optimizations — compiler, assembler, and hardware
The compiler does more for you than you think. But sometimes it can't — and that's when you need to understand what's happening one level down.
- Speedup through Instruction-level parallelism (ILP)
- Using SIMD and Branch prediction with examples
- Introduction to assembly language. Learn to write and read simple programs
- Reverse engineering
Memory — from malloc to garbage collector
new Object() — and the object appears in memory. But who decided at which address? Who will handle fragmentation? Who will free that memory? Behind every allocation stands an allocator — and its strategy determines whether your server holds up under load.
- We implement Memory allocator and Garbage collector
- Data Alignment. Impact on Memory and Performance
- The subtleties of implementing data structures in production
- Memory segments. How the Stack and Heap are arranged
A Bit about Bytes — how data is represented in memory and why it matters
Every int, float, string — it's a set of bytes with a specific layout. If you don't know that layout, you can't predict the size of a structure, the speed of serialization, or the behavior of comparisons. The byte level is where your decisions have the most leverage.
- Bitmap indexes in databases
- Details of representation and operation with int, float, string types
- How does the variable length int work under the hood in Protobuf ?
- Unicode or how does Twitter limit the size of a tweet?
- Bit hacks
Cache — the most important abstraction people forget about
Your code doesn't work with RAM. It works with 32 KB of L1 cache. Every memory access that isn't in cache costs ~100 nanoseconds — in that time, the processor could have executed 300–400 instructions. This means the memory layout of your data can matter more than algorithmic complexity.
- Acceleration of production code due to memory hierarchy
- OOP is dead. Long live Data-Oriented Design
- Nuances of writing cache-friendly algorithms and data structures
- Operating system cache and its impact on File I/O implementation
- Tools for measuring cache performance
CPU — what really happens when a processor executes code
You think a CPU is a machine that takes an instruction, executes it, then takes the next one. That hasn't been true since the 1990s. A modern processor is a pipeline.
- The most popular algorithm optimization techniques
- Sentinel and how it helps speed up code
- Are all CPU instructions equally fast?
- How Twitter and Facebook made production code 100x faster
- Nanosecond optimizations in High-frequency trading (HFT) companies
- Implementing a virtual machine as a Java Virtual Machine (JVM)
- Python vs C. How many times and why does Python slow down code?
ЯК ПРОХОДИТЬ
НАВЧАННЯ
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

Oleksii Kolesa
Lead Software Developer @GlobalLogic
The course is well-structured and engaging, genuinely challenging. Plenty of hands-on practice.

Iryna Didkovska
iOS Developer @Ring Ukraine
Great course — really glad Ivan created it and that I had the chance to join. I especially appreciated having access to lecture recordings to revisit at any time. The abundance of additional videos, links, and Ivan's notes broadened my perspective significantly and gave me a clear direction for what to watch and read next.

Mykhailo Borysovskyi
Senior Java Software Engineer @DXC Technology
A very strong and fundamental course that covers core Computer Science principles regardless of programming language. Throughout the program, we explored computer architecture, cache and memory optimizations, assembly language internals, and how the operating system manages processes, threads, address space, and resources — building a deep understanding of performance at the low level.

Daniil Klieshchov
Site reliability engineer, @Susquehanna International Group, LLP
Ivan's lectures were the most valuable for me. There are many areas in computer science that you don't really think about when you're just writing code. Ivan shows exactly those aspects — how they work and why it's important to understand them if you want to optimize anything.
I was constantly asking questions, actively engaging, and that was really valuable. When someone has already been through that journey and explains complex things in a simpler way, it saves a lot of time on research and helps you build intuition faster. That, in my opinion, is one of the strongest sides of the course.

Bohdan Tyshchenko
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.

Sviatoslav Pikh
Senior Software Engineer @ Lalafo
I especially liked the teaching approach, where I was encouraged to find the answer myself in small steps. Thanks to these courses, I discovered for myself how to continue learning at the Senior level. And live communication during lectures turned out to be much more effective than watching recorded videos on Udemy, Coursera, or YouTube.

Pavlo Surikov
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.

Yaroslava Serdiuk
Software Engineer @Google
The course gave a deep understanding of the topic. It was interesting and informative. It is very gratifying that such initiatives are developing in Ukraine. I sincerely recommend it!

Yaroslav Borodaienko
Software Engineer @Amazon
A must-have for anyone who wants to delve into the ins and outs of a modern computer: how its CPU works, what memory is made of, and how the operating system manages processes. This knowledge will allow you to stand out both in technical interviews and during code reviews, providing useful advice. The course is well-structured and includes non-trivial homework assignments. The analysis of optimization cases in the Facebook and Twitter code bases is a particular pleasure.

Mark Firman
Software Engineer @Brains Systems
The depth and quality of the materials are unmatched by any other course. It is a truly unique experience that provides a deeper and more practical understanding of how computers work.

Olha Voichyk
Software Engineer @Google
It was an interesting 3 months, during which I managed to gain and improve my knowledge of code optimization, virtual memory, and process interaction with the operating system. I would also like to note the thoughtful homework assignments — it was a great opportunity to practice what I learned.

Viacheslav Ocheretnyi
Senior Software Engineer @SingleStore (ex MemSQL)
I highly recommend this course and the platform in general!

Kyrylo Popyrko
Software Engineer @Amazon
The course is very well structured: it starts with high-level abstractions and gradually delves into details. Examples are based on real projects; interesting and practical homework assignments (I even had to defuse a bomb!). Worth every minute and every hryvnia invested.

Nazarii Ivanchuk
Software Engineer @Meta
I really enjoyed learning about fundamental topics like algorithm optimization and caching. The chapters on improving CPU and memory efficiency were especially valuable. The material was presented in a clear and accessible way, and the knowledge I gained was immediately applicable.

Roman Peregonchuk
Software Engineer @Meta
The course is just great! It's a really cool way to gain new knowledge, meet interesting people, and as a bonus, prepare for technical interviews. One of my best investments, I can recommend it to everyone!

Vitalii Makovskyi
Head Of Engineering @Artur'In
It was one of the most impressive learning experiences of my life. The teacher was able to convey deep knowledge of the subject and made the process exciting. During the study, you will challenge yourself and, equally important, meet interesting people.

Valentyn Bochkarov
Software Engineer @Microsoft
While preparing for the interview at FAANG, I took the Algorithms in Practice course, and later Performance Engineering. Now I can confidently say that both courses helped me get offers from Oracle and Microsoft.

Sasha Savsunenko
ML Lead @Facebook
It will be interesting and difficult, highly recommended to everyone! The course helped me to quickly understand complex code on a new project, understand the data structures and optimizations used. These are things every programmer should know.

Vladyslav Kaplun
Software Engineer @Meta
While taking the course, I received great satisfaction from the structured approach. The curator impresses with his ability to present information in an accessible and detailed manner. The knowledge gained from the course also has practical application in my work, which emphasizes the value of the education received.
БРОНЮЙ СВОЄ
МІСЦЕ В ГРУПІ
оплата помісячно
420 $
курс триває 4 місяці
оплата за весь курс
1600 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
I accept the terms of the Public Offer Agreement and consent to the processing of my personal data in accordance with the Privacy Policy.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо