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

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

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

Oleksii Kolesa

Lead Software Developer @GlobalLogic

Linkedin

The course is well-structured and engaging, genuinely challenging. Plenty of hands-on practice.

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

Iryna Didkovska

iOS Developer @Ring Ukraine

Linkedin

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.

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

Mykhailo Borysovskyi

Senior Java Software Engineer @DXC Technology

Linkedin

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.

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

Daniil Klieshchov

Site reliability engineer, @Susquehanna International Group, LLP

Linkedin

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.

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

Bohdan Tyshchenko

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

Sviatoslav Pikh

Senior Software Engineer @ Lalafo

Linkedin

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.

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

Pavlo Surikov

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

Yaroslava Serdiuk

Software Engineer @Google

Linkedin

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!

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

Yaroslav Borodaienko

Software Engineer @Amazon

Linkedin

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.

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

Mark Firman

Software Engineer @Brains Systems

Linkedin

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.

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

Olha Voichyk

Software Engineer @Google

Linkedin

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.

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

Viacheslav Ocheretnyi

Senior Software Engineer @SingleStore (ex MemSQL)

Linkedin

I highly recommend this course and the platform in general!

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

Kyrylo Popyrko

Software Engineer @Amazon

Linkedin

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.

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

Nazarii Ivanchuk

Software Engineer @Meta

Linkedin

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.

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

Roman Peregonchuk

Software Engineer @Meta

Linkedin

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!

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

Vitalii Makovskyi

Head Of Engineering @Artur'In

Linkedin

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.

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

Valentyn Bochkarov

Software Engineer @Microsoft

Linkedin

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.

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

Sasha Savsunenko

ML Lead @Facebook

Linkedin

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.

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

Vladyslav Kaplun

Software Engineer @Meta

Linkedin

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 і ми з усім допоможемо

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

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

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

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

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

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

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

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

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

bottom of page