open atlas

Собери что-то настоящее

Проекты

Нешаблонные проекты, которые прокачивают изученное. Выбери один, доведи до конца, затем подними до сеньорского уровня.

Показано: 51 · запускаемых стартеров: 26

  • Архитектура B2B-платформы заказов и биллинга

    advanced · 5d

    Спроектируй архитектуру B2B-платформы заказов и биллинга от начала до конца: выдели ограниченные контексты из проблемного пространства, назначь каждому структурный стиль (слоёный, гексагональный или чистый/луковый), реши, где оправданы CQRS, event sourcing и event-driven саги, выбери между модульным монолитом и набором сервисов, явно избегая ловушки распределённого монолита, и обоснуй каждое значимое решение Architecture Decision Record, подкреплённым измеримой фитнес-функцией.

    architecture-patterns
    Открыть проект →
  • Очередь задач at-least-once

    advanced · 6d

    Собери долговечную очередь задач на Postgres с visibility timeout и идемпотентными консьюмерами, чтобы упавший воркер не терял задачу.

    ● Запускаемыйqueuesdistributed
    Открыть проект →
  • Лаборатория «от разведки до устранения» в авторизованном окружении

    advanced · 8d

    Подними намеренно уязвимую цель, которой ты владеешь — заведомо «сломанное» приложение в локальном контейнере или CTF-машину на своём компьютере, — и проведи против неё полноценную наступательную работу от начала до конца, в рамках, которые ты сам себе утвердил. Ты проводишь разведку машины, выбираешь один класс уязвимости, доказываешь его рабочим эксплойтом в лаборатории, а затем разворачиваешься на 180 градусов и пишешь исправление и правило обнаружения. Цель не в том, чтобы «вскрыть машину», а в том, чтобы прожить весь цикл, который проходит настоящая работа: рамки, доказательства, влияние, устранение — на цели, где никто не пострадает.

    security-offensivesecurity-defensivesecurity-foundations
    Открыть проект →
  • Фильтр Блума

    intermediate · 4d

    Собери пространственно-эффективное вероятностное множество, отвечающее на запросы членства за O(1) с настраиваемой вероятностью ложных срабатываний, — и разберись, почему ложных отрицаний в нём быть не может принципиально.

    ● Запускаемыйdata-engineeringbackend
    Открыть проект →
  • Лаборатория cache stampede

    intermediate · 4d

    Воспроизведи thundering-herd промах кэша под нагрузкой, затем убей его через single-flight и пересчёт с ранним истечением.

    ● Запускаемыйcaching
    Открыть проект →
  • Прерыватель цепи

    intermediate · 4d

    Собери прерыватель цепи, который прекращает долбить падающую зависимость, безопасно прощупывает её в состоянии half-open и автоматически восстанавливается — именно этот паттерн не даёт каскаду микросервисов превратить один плохой узел в полный простой.

    ● Запускаемыйbackenddistributed
    Открыть проект →
  • Лаборатория харденинга облака

    advanced · 9d

    Возьми облачный аккаунт, которым владеешь сам, и проведи его от состояния «работает» к состоянию «защищаемо». Ты измеришь реальную текущую posture, ужмёшь IAM до least privilege, не сломав приложение, закроешь сеть и секреты и докажешь каждое изменение диффом «до/после». Это и есть суть работы по облачной безопасности: не добавлять фичи, а убирать постоянный доступ и тихие мисконфигурации, которыми воспользовался бы атакующий.

    security-cloudsecurity-foundationssecurity-defensive
    Открыть проект →
  • Совместные курсоры

    intermediate · 6d

    Показать живой курсор и выделение каждого подключённого пользователя в общем документе, без конфликтов, через WebSocket.

    networkingfrontendreactbrowserdistributedqueuesperformanceobservability
    Открыть проект →
  • Палитра команд

    intermediate · 3d

    Палитра команд ⌘K с нечётким ранжированием, асинхронными источниками действий и полным клавиатурным управлением (стрелки, Enter, Escape, области видимости) — интерактивный слой, который нужен каждому профессиональному инструменту.

    ● Запускаемыйfrontend
    Открыть проект →
  • Кольцо consistent hashing

    advanced · 5d

    Собери кольцо на виртуальных узлах, которое перераспределяет минимальный набор ключей при появлении или уходе узла — базовый примитив за Dynamo, Cassandra и каждым шардированным кэшем, который должен пережить ротацию узлов без полного перебалансирования.

    ● Запускаемыйdistributedbackend
    Открыть проект →
  • Сервис фич-флагов

    intermediate · 5d

    Собери небольшой сервис флагов с правилами таргетинга, процентными раскатками и типизированным SDK, который вычисляет флаги на клиенте из закешированного набора правил.

    backendapis
    Открыть проект →
  • Конкурентный сервис ингеста на Go

    advanced · 8d

    Собери конкурентный воркер ингеста/фан-аута на Go — а затем эксплуатируй его: ограничь работу, примени backpressure, сделай вызовы downstream устойчивыми к отказам, выкати в минимальном контейнере и разбери инцидент с утечкой горутин, пока он не съел твою память.

    gobackendperformanceobservabilitydeployment
    Открыть проект →
  • Сервис RAG с опорой на источники

    advanced · 9d

    Демо RAG, отвечающее по корпусу, собирается легко; сервис RAG, которому ты доверишь живых пользователей, — нет. Сложность не в поиске, а в опоре на источники: заставить модель говорить только то, что подтверждает найденный текст, прикреплять цитаты, которые читатель может проверить, и доказать на eval-наборе, что ответы не уплывают в уверенную выдумку. Ты соберёшь весь цикл — нарезка, эмбеддинги, хранилище, retrieval top-k, опора, цитаты, оценка — и нащупаешь, где именно он течёт.

    ai-llmbackenddatabasesobservability
    Открыть проект →
  • Защищённый домашний стек

    advanced · 5d

    Разверни self-hosted стек медиасервера и домашнего сервера на nas01.example, где пять сервисов делят сетевое пространство имён одного VPN-контейнера — kill-switch обрывает весь трафик в момент разрыва туннеля, список split-tunnel сохраняет LAN-доступ, а три кольца доступа (localhost / LAN 10.0.0.0/24 / mesh-VPN 100.64.0.30) держат нужные двери открытыми для нужных людей. Усиль хост: SSH только по ключу, fail2ban, автоматические обновления безопасности; напиши скрипт ротирующего резервного копирования с шифрованием age; и уходи зная, что стек уходит в тень при любом сбое.

    dockernetworkingsecurity-defensivecli
    Открыть проект →
  • Лаборатория профилирования горячего пути

    advanced · 8d

    Возьми заведомо медленный кусок JavaScript и преврати его в управляемый эксперимент. Ты соберёшь микробенчмарк, которому действительно можно верить, отпрофилируешь горячий путь так, чтобы суметь назвать, что именно делает движок, и применишь оптимизации с учётом устройства движка — мономорфизм, устранение мегаморфных точек вызова, сокращение аллокаций — доказывая каждый выигрыш цифрами, а не ощущениями. Это вся дисциплина работы над производительностью в миниатюре: измерь, выдвини гипотезу о движке, измени одну вещь, измерь снова.

    js-enginenodetypescript
    Открыть проект →
  • Кодирование Хаффмана

    advanced · 6d

    Собери lossless-компрессор с нуля: постройте оптимальное дерево prefix-free кодов снизу вверх, выведи битовые строки и докажи, что round-trip точен, а результат короче кодирования фиксированной шириной.

    ● Запускаемыйalgorithmsdata-engineering
    Открыть проект →
  • Идемпотентный ETL-конвейер

    advanced · 9d

    Конвейеры не падают аккуратно — они падают в три часа ночи, на середине загрузки, и кто-то их перезапускает. Этот проект учит одному свойству, которое отличает любительский скрипт от настоящей дата-инженерии: прогон, который можно повторить сколько угодно раз и всё равно получить ровно одну копию каждой строки. Ты построишь пакетную загрузку, идемпотентный load, watermark для инкрементальных выгрузок и проверки качества данных, которые останавливают мусор, прежде чем он отравит всё ниже по течению.

    data-engineeringbackenddatabasessql-postgres
    Открыть проект →
  • Планировщик задач

    advanced · 6d

    Планировщик задач cron + backoff с доставкой at-least-once, идемпотентными обработчиками и visibility timeout — чтобы ни одна задача не терялась молча, даже при краше воркера на середине выполнения.

    backendqueues
    Открыть проект →
  • JSON-парсер с нуля

    advanced · 6d

    Напиши рекурсивно-нисходящий парсер JSON по спецификации — токенизатор, диспетчер значений, обработчик escape-последовательностей, декодер чисел — и наблюдай, как каждый крайний случай RFC 8259 превращается в конкретный путь в коде.

    ● Запускаемыйalgorithmstypescript
    Открыть проект →
  • LRU-кэш

    intermediate · 4d

    Собери LRU-кэш с вытеснением за O(1) на связке хешмапы и двусвязного списка — та самая задача, которая показывает, почему вытеснение из кэша сложнее, чем кажется.

    ● Запускаемыйbackendcaching
    Открыть проект →
  • Сервис, которому доверяет systemd

    intermediate · 7d

    Скрипт, который запускается, может написать кто угодно. Задача — превратить его в сервис, который операционная система будет поддерживать живым, разумно перезапускать, честно логировать и зажмёт в угол, если он начнёт сбоить. Ты проведёшь небольшой демон от «работает, пока я держу терминал открытым» до настоящего systemd-юнита — запускаемого при загрузке, под надзором PID 1, с логами в journald и ограниченным радиусом поражения. Это и есть разница между кодом и сервисом.

    linux
    Открыть проект →
  • Мини-CRUD API

    starter · 4d

    Собери свой первый настоящий бэкенд: крошечный HTTP API, который создаёт, читает, обновляет и удаляет заметки — на SQLite, чтобы данные пережили перезапуск. Ты пройдёшь путь от сервера в одну строку с «hello» до небольшого сервиса, который проверяет ввод и хранит строки, — честно, шаг за шагом.

    ● Запускаемыйnodebackenddatabases
    Открыть проект →
  • Nest-сервис в продакшен-форме

    advanced · 9d

    NestJS вознаграждает за структуру и наказывает за её отсутствие. Собери сервис так, как его выкатила бы команда: feature-модули с настоящими границами, DTO, валидирующие на краю, guards и interceptors, которые держат сквозные заботы, типизированный config, в котором не опечатаешься, и e2e-набор, поднимающий всё приложение целиком. Это и есть разница между «знаю декораторы Nest» и «понимаю, зачем они существуют».

    nestbackendnode
    Открыть проект →
  • Next.js-приложение в продакшен

    advanced · 9d

    Собери мультитенантное контент-приложение на App Router — а потом эксплуатируй его: закрой авторизацию и секреты, наслои кэши, реши каждый выбор edge-vs-node и разберись с инцидентом, когда один тенант отравляет общую ISR-страницу.

    nextjsfrontendsecurityobservabilityperformance
    Открыть проект →
  • Числовой инструментарий

    advanced · 8d

    Собери небольшую библиотеку, на которую втайне опирается любая численная программа: векторы, матрицы, решатель линейных систем и описательную статистику — написанные тобой и проверенные на ответах, которые ты можешь подтвердить вручную. Здесь алгебра, которую ты выучил, перестаёт быть домашним заданием и становится кодом, который вызывает другой код. Ты на собственном опыте поймёшь, почему арифметика с плавающей точкой немного врёт, почему решить Ax = b сложнее, чем подсказывает учебник, и как доказать, что твои числа верны.

    ● Запускаемыйmathalgorithms
    Открыть проект →
  • Мини OAuth 2.0 + PKCE логин

    starter · 3d

    Реализуй поток authorization-code + PKCE целиком против реального провайдера, чтобы понять каждый редирект и токен, а не доверять библиотеке.

    securityapis
    Открыть проект →
  • Офлайн-синхронизация PWA

    advanced · 6d

    Notes PWA с офлайн-приоритетом: локальная очередь записей (IndexedDB), которая синхронизируется при переподключении через last-writer-wins, service worker для кеширования ресурсов и background sync для пропущенных записей.

    frontendbrowser
    Открыть проект →
  • Движок поиска маршрутов

    intermediate · 8d

    Четыре алгоритма поиска — одна общая задача: добраться из A в B по взвешенной сетке. Ты построишь BFS, DFS, Dijkstra и A* на одной модели графа, а затем запустишь их бок о бок и увидишь, как они расходятся: DFS бросается в тупик, BFS равномерно растекается, Dijkstra ползёт наружу по стоимости, A* тянется к цели. Именно здесь раздел про алгоритмы перестаёт быть набором фактов и становится инструментами, между которыми ты выбираешь осознанно.

    ● Запускаемыйalgorithmsbase-cs
    Открыть проект →
  • Личная страница-портфолио

    starter · 3d

    Собери одностраничный сайт о себе на чистом HTML, CSS и капле JavaScript — без фреймворка, без сборки, просто файлы, которые открываются в браузере. В итоге у тебя будет что показать, и ты по-настоящему поймёшь каждую строчку, потому что написал её сам.

    frontendbrowser
    Открыть проект →
  • Загрузка через presigned URL

    intermediate · 4d

    Прямая загрузка в хранилище через presigned URL с ограничениями размера и content-type и webhook завершения, проверяющим, что объект действительно прибыл, — чтобы API-сервер никогда не касался байт файлов.

    backendapissecurity
    Открыть проект →
  • Асинхронный Python-сервис: собрать и эксплуатировать

    advanced · 8d

    Собери асинхронный FastAPI-сервис приёма, который валидирует, прогоняет через пайплайн и выдерживает нагрузку, — а потом эксплуатируй его: упакуй, контейнеризуй с корректным поведением PID-1 и разберись с инцидентом, когда проглоченный CancelledError тихо протекает задачами, пока event loop не начинает голодать.

    pythonbackendperformanceobservabilitydeployment
    Открыть проект →
  • Визуализатор планов запросов

    intermediate · 5d

    Вставь EXPLAIN (ANALYZE, FORMAT JSON) и отрисуй дерево плана с таймингом по узлам и ошибкой оценки строк, чтобы плохой join был виден сразу.

    databases
    Открыть проект →
  • Распределённый rate limiter

    intermediate · 4d

    Собери token-bucket лимитер, который держится поперёк многих инстансов приложения за счёт счётчика в Redis, а не в памяти процесса.

    ● Запускаемыйapisbackend
    Открыть проект →
  • React-фича под нагрузкой

    advanced · 8d

    Выкати одну настоящую production-фичу на React — живой совместный дашборд активности — а потом эксплуатируй её: оптимистичные правки, стриминговые обновления, бюджет на кадр, полную доступность и разбор инцидента, когда render-шторм замораживает вкладку.

    reactfrontendperformanceobservability
    Открыть проект →
  • Движок регулярных выражений

    advanced · 7d

    Собери движок регулярных выражений с нуля через конструкцию Томпсона и симуляцию подмножества состояний — тот же метод, что делает grep и re2 иммунными к катастрофическому обратному ходу.

    ● Запускаемыйalgorithmsjs-engine
    Открыть проект →
  • Оптимизатор отчётной схемы

    advanced · 8d

    Отчётность — это место, где база либо оправдывает себя, либо нет: запросы широкие, таблицы большие, а «тормозит» — самый частый баг в продакшен-аналитике. Ты смоделируешь домен продаж и событий, напишешь честные медленные версии запросов для дашборда, а затем ускоришь их индексами и материализованными представлениями — и прочитаешь EXPLAIN ANALYZE, чтобы доказать ускорение, а не гадать о нём. Это сердце трека: превратить расплывчатое «отчёт подтормаживает» в измеренное, обоснованное изменение плана.

    sql-postgresdatabasesdata-engineering
    Открыть проект →
  • Мини-сигналы

    intermediate · 3d

    Собери реактивную библиотеку сигналов примерно в 100 строк (signal/computed/effect) с автоматическим отслеживанием зависимостей и безглючными батч-обновлениями — та же модель, что лежит в основе Solid, Preact Signals и Vue 3.

    ● Запускаемыйfrontend
    Открыть проект →
  • Список с пропусками

    advanced · 6d

    Реализуй вероятностную упорядоченную структуру данных, которая обеспечивает O(log n) поиск, вставку и удаление без балансировочной бухгалтерии деревьев — только слоистые «экспресс-полосы» через отсортированный связный список.

    ● Запускаемыйalgorithmsdatabases
    Открыть проект →
  • Досье по проектированию системы

    advanced · 8d

    Возьми одну крупную систему — сократитель URL, который должен обслуживать миллиарды редиректов, — и напиши проектный документ, который staff-инженер защищал бы на ревью. Никакого работающего кода: результат — это строгий текст, числа и диаграммы. Ты пройдёшь путь от расплывчатого «сделай короткие ссылки» к очерченным требованиям, прикидочной модели нагрузки, конкретной модели данных и API, к тому единственному узкому месту, которое реально ломается под нагрузкой, и к честной карте того, чем ты пожертвовал ради его устранения.

    system-design-casessystem-design
    Открыть проект →
  • Текстовый diff — алгоритм Майерса

    advanced · 6d

    Реализуй алгоритм diff Майерса с нуля: вычисли наибольшую общую подпоследовательность, построй edit script обратным ходом, докажи минимальность и применяй патчи так, чтобы любой round-trip был побайтово точным.

    ● Запускаемыйalgorithmsengineering-practice
    Открыть проект →
  • Моделирование угроз и закаливание небольшого приложения

    advanced · 8d

    Возьми небольшое приложение, которым ты полностью владеешь, и прогони его через цикл, в котором живёт настоящий инженер по безопасности: сначала разберись, как атакующий реально его сломает, а затем закрой эти пути один за другим. Ты построишь дерево атаки против собственного сервиса, а потом починишь аутентификацию, авторизацию, обращение с секретами, заголовки безопасности и валидацию ввода — и запишешь, какое исправление убивает какую ветку дерева. Это и есть всё ремесло защитной безопасности в миниатюре: не чек-лист, а цепочка от угрозы к мере, которую ты сможешь защитить вслух.

    security-foundationssecuritysecurity-defensive
    Открыть проект →
  • Трёхзвенное приложение на AWS через IaC

    advanced · 9d

    Подними настоящую трёхзвенную систему на AWS — балансировщик спереди, вычислительный слой посередине, управляемый Postgres за ним и S3 для объектов — целиком из кода, который можно прогнать заново. Суть не в том, чтобы один раз прокликать консоль; суть в том, чтобы описать всю топологию, её IAM и сетевые границы как Terraform (или CDK), который можно передать коллеге, снести и пересоздать байт в байт. Это тот проект, где «инфраструктура» перестаёт быть кучей консолей и становится артефактом, который можно ревьюить.

    awsdockersecurity-cloud
    Открыть проект →
  • Крошечная стековая виртуальная машина

    advanced · 9d

    Собери машину, которая исполняет программы. Ты определишь небольшой набор инструкций в виде байт-кода, напишешь ассемблер, превращающий читаемые мнемоники в байты, и напишешь цикл интерпретатора, который по одной достаёт, декодирует и исполняет их. К концу ты разберёшь по косточкам весь путь от строки исходника до работающей программы — потому что каждый его слой написал сам.

    ● Запускаемыйbase-csalgorithms
    Открыть проект →
  • Планировщик сборки на топологической сортировке

    intermediate · 4d

    Собери планировщик задач на основе DAG — как Make или CI-пайплайн — который упорядочивает задачи по зависимостям, обнаруживает циклы до дедлока и определяет, какие задачи можно выполнять параллельно.

    ● Запускаемыйalgorithmsengineering-practice
    Открыть проект →
  • Движок автодополнения на основе trie

    intermediate · 4d

    Собери префиксное дерево для ранжированного автодополнения — вставляй слова с весами, проходи каждый префикс за O(длина_префикса + результаты) и детерминированно разрешай ничьи без базы данных.

    ● Запускаемыйalgorithmsfrontend
    Открыть проект →
  • Прувер по таблицам истинности

    advanced · 8d

    Преврати логику, которую ты изучал на бумаге, в работающий движок: распарси формулу пропозициональной логики в дерево, обойди все наборы значений и построй её таблицу истинности, а затем реши, тавтология ли она, выполнима ли и эквивалентна ли другой формуле. Логика — это место, где строгость становится механической, и написать машину, которая проверяет рассуждение, — самый верный способ понять, почему рассуждение верно. В итоге у тебя будет маленький, но честный проверяльщик теорем, которому ты доверяешь, потому что собрал каждый его шаг сам.

    ● Запускаемыйlogicalgorithms
    Открыть проект →
  • Типобезопасный SDK для API

    advanced · 8d

    Собери клиент, которому другие инженеры действительно будут доверять: типизированный SDK поверх настоящего HTTP API, где неправильное поле, пропущенный вариант и ответ, соврамший о своей форме, ловит компилятор — а не падение в проде. Ты смоделируешь домен через размеченные объединения и дженерики, проверишь каждый ответ на границе и дашь выводу типов донести точные типы до места вызова, не оставив ни одного `any`, которым прикрывают дыры.

    ● Запускаемыйtypescriptapisbackend
    Открыть проект →
  • Union-Find (система непересекающихся множеств)

    intermediate · 4d

    Построй структуру непересекающихся множеств от наивного массива родителей до почти константного амортизированного времени — и прими на ней алгоритм Краскала для поиска минимального остовного дерева.

    ● Запускаемыйalgorithmsdistributed
    Открыть проект →
  • URL-сокращатель под нагрузкой

    advanced · 10d

    Собери URL-сокращатель, который выдерживает настоящий трафик, — а потом эксплуатируй его: задеплой, наблюдай и разберись с инцидентом, когда одна горячая ссылка плавит твой кэш.

    ● Запускаемыйsystem-designapisdatabasesbackendcachingsecurityengineering-practiceci-cddeploymentobservabilityperformance
    Открыть проект →
  • Виртуальная таблица данных

    advanced · 5d

    Отрисуй и плавно прокручивай 100 тыс. строк на 60fps с windowing-виртуализацией, залипающими заголовками и полной клавиатурной навигацией — без библиотек, только математика.

    ● Запускаемыйfrontendperformance
    Открыть проект →
  • Краш-устойчивое key-value хранилище с WAL

    advanced · 7d

    Собери крошечное дисковое KV-хранилище, которое переживает kill -9 на середине записи, дописывая в write-ahead log до изменения основного файла.

    ● Запускаемыйdatabasesdistributed
    Открыть проект →