FORGE//RS
FORGE//RS
ГОТОВНОСТЬ К СОБЕСЕДОВАНИЮ / RUST 1.96
Короткая теория. Жёсткая практика. Rust, распределённые системы и блокчейн без локальной установки toolchain.
ИНТЕРАКТИВНЫЕ ПОЛИГОНЫ
12 режимов
Двенадцать сигналов памяти и персональный маршрут без ложных заявлений о mastery.
Фильтры по теме и формату, проверяемые вопросы и переход к доказательству кодом.
Просроченные навыки, пробелы уверенности и интервальное повторение без иллюзии XP.
Свободный main.rs в изолированном sandbox на Rust 1.96.
Drop без GC, справедливость Future/Waker и единый контракт Hash/Eq.
Rebase, revert и bisect на едином графе коммитов.
Планы PostgreSQL, инварианты Redis, доставка Kafka и layout ClickHouse.
Взвешенная финальность, equivocation и атомарное представление для reorg.
Кардинальность, buckets гистограмм, recording rules и окна burn rate.
Нагрузка, домены отказа и обоснование компромиссов.
Ревью кода, эволюция схемы и канареечная выкатка.
Оценка по доказательствам и сбалансированное пробное собеседование.
АКТИВНАЯ ЭКСПЕДИЦИЯ
Пройдено: 0 · осталось: 58
Исправьте production-патч, который случайно перемещает изменяемую ссылку.
RUST / ЯЗЫК
Заимствование, lifetime и типизированные границы образуют входной контракт для всех последующих систем.
Исправьте production-патч, который случайно перемещает изменяемую ссылку.
Возвращайте заимствованные данные, не выдумывая владение или статический lifetime.
Сначала: Ссылка, которая исчезлаЗамените теряющие смысл строки стабильным типизированным контрактом ошибок.
Сначала: Представление, которое не должно пережить источникRUST / CONCURRENCY / SAFETY
Restore independent reasoning about async, locks, atomics, unsafe invariants, tests and allocation cost.
Сделайте изменение состояния под несколькими блокировками безопасным при противоположном порядке запросов.
Сначала: Ссылка, которая исчезлаДокажите непересечение двух mutable borrow безопасным API стандартной библиотеки.
Сначала: Ссылка, которая исчезлаСохраните результат, устранив heap-работу на каждом элементе.
Сначала: Ссылка, которая исчезлаПревратите корректный collecting pipeline в Vec-update с повторным использованием allocation.
Сначала: Flamegraph из мелких аллокацийОбновляйте горячую метрику атомарно, не превращая overflow в ложь.
Сначала: Два корректных перевода, один deadlockСделайте overload и shutdown наблюдаемыми вместо маскировки unbounded sender.
Сначала: Два корректных перевода, один deadlockВозвращайте validated views в один frame без payload allocations.
Сначала: Представление, которое не должно пережить источник · Flamegraph из мелких аллокацийПревратите diagnostic index в non-owning view живых contexts.
Сначала: Flamegraph из мелких аллокацийБезопасно скопируйте borrowed pointer-length pair в owned Rust bytes.
Сначала: Unsafe-блок, который не был нуженСпроектируйте компактную таблицу, убивающую реалистичные мутации parser.
Сначала: Строка ошибки, по которой нельзя ветвитьсяИсправьте HashMap-key с несогласованными equality и hash.
Сначала: Строка ошибки, по которой нельзя ветвитьсяОграничьте асинхронные попытки, не скрывая семантику отмены.
Сначала: Строка ошибки, по которой нельзя ветвитьсяСделайте heterogeneous runtime rules намеренно dyn-compatible.
Сначала: Строка ошибки, по которой нельзя ветвитьсяВерните Future свойство Send, не удерживая общий inventory-state через приостановку.
Сначала: Цикл повторов без бюджета · Два корректных перевода, один deadlockИсправьте combinator, который принимает Pending за ранний выход.
Сначала: Цикл повторов без бюджетаСмоделируйте union Cargo features без last-wins ошибок.
Сначала: Шесть happy path и три выживших багаРазрешайте helpers exported macro в месте определения.
Сначала: Feature-флаг, отключивший TLSИнициализируйте address-sensitive значение только после final allocation.
Сначала: Future, заморившая правую ветвьALGORITHMS / COMPLEXITY
Turn common patterns into bounded, deterministic Rust implementations you can explain under time pressure.
Поддерживайте одну монотонную границу вместо повторного scan каждой substring.
Сначала: Представление, которое не должно пережить источникХраните только текущих winners и сделайте ties детерминированными.
Сначала: Окно, двигавшееся назадДвигайте два монотонных cursor и расходуйте каждое совпадение ровно раз.
Сначала: Окно, двигавшееся назадИщите минимальную feasible capacity, а не перебирайте schedules.
Сначала: Replica-event сопоставился дваждыВерните deterministic order или докажите отсутствие валидного порядка.
Сначала: Top K без сортировки всего мираСочетайте совместимую ценность dynamic programming, а не local greedy score.
Сначала: Backfill-rate, угаданный по среднему · Dependency graph, который не стартуетОбновляйте lookup и recency за O(1) без unsafe pointers.
Сначала: Rollout-planner, выбравший одну эффектную changeRETRIES / CONSISTENCY / TRANSACTIONS
Coordinate retries, rate limits, quorum, caches and transactional workflows under partial failure.
Не позволяйте cold key умножать downstream load.
Сначала: Ссылка, которая исчезлаРасходуйте единый deadline вместо умножения частичного отказа.
Сначала: Полуночный cache stampedeСпроектируйте deterministic tests для четырёх cache-refresh race bugs.
Сначала: Полуночный cache stampedeСохраняйте burst, не доверяя часам, которые идут назад.
Сначала: Retry storm после timeoutЗакройте dual-write gap одной transaction boundary.
Сначала: Retry storm после timeoutFence старые completions и допускайте один recovery probe после cooldown.
Сначала: Limiter, печатавший бесплатный trafficПревратите R, W и N в гарантии, а не interview folklore.
Сначала: Limiter, печатавший бесплатный trafficОтменяйте business effects в обратном порядке, не называя это rollback.
Сначала: Order закоммичен, event исчезPOSTGRES / REDIS / KAFKA / CLICKHOUSE
Design storage and observability paths whose correctness and cost survive production traffic.
Спроектируйте bounded Redis keyspace до превращения в shared global state.
Сначала: Полуночный cache stampedeПроектируйте под реальные predicate, ordering и MVCC cost.
Сначала: Order закоммичен, event исчезСделайте at-least-once delivery скучной на business boundary.
Сначала: Order закоммичен, event исчезСформируйте analytical ingestion до инцидента из small parts.
Сначала: Offset закоммичен раньше balanceМеняйте live schema при сосуществовании двух версий приложения.
Сначала: Index, начинающийся с rangeПревратите write skew в bounded retry целой transaction со стабильной identity.
Сначала: Компенсация выполнилась дважды · Index, начинающийся с rangeFence detached work до продвижения offset новым owner partition.
Сначала: Offset закоммичен раньше balanceОцените observability cost до добавления unbounded label.
Сначала: Миллион одно-row inserts · Limiter, печатавший бесплатный trafficCI / KUBERNETES / SLO
Connect dependency graphs, capacity and error budgets into a release path with a deliberate abort boundary.
Найдите dependency critical path при parallel jobs.
Сначала: Dependency graph, который не стартуетПревратите maxSurge/maxUnavailable в явный traffic headroom.
Сначала: CI pipeline, посчитанный суммойСохраняйте scheduled demand видимым при росте queue.
Сначала: Rollout, упавший ниже capacityПереведите availability target в конечные bad events и burn rate.
Сначала: Load test, ускорившийся под overloadSIGNING / MERKLE / TRANSACTIONS
Build deterministic protocol boundaries around signatures, proofs, nonces and mempool replacement.
Сделайте signed bytes canonical, framed и привязанными к одному domain.
Сначала: Строка ошибки, по которой нельзя ветвитьсяПроверьте все fallible fields до мутации deterministic state.
Сначала: Подпись, действительная в двух chainsПроверяйте authenticated path, не стирая left/right.
Сначала: Подпись, действительная в двух chainsОграничьте churn sender/nonce slot явной fee policy.
Сначала: Transaction, увеличившая nonce при failureP2P / CONSENSUS / FINALITY
Reason about peer diversity, fork choice and weighted agreement when participants or links can fail.
Отделяйте chain selection от economic/protocol finality.
Сначала: Ссылка, которая исчезлаРанжируйте peers, не отдавая network view одному failure domain.
Сначала: Limiter, печатавший бесплатный trafficСчитайте weighted supermajority без duplicates и equivocation.
Сначала: Quorum без пересечения · Подпись, действительная в двух chainsRUNTIME / RPC / INDEXER
Keep gas, pagination and derived state deterministic across snapshots, finality and chain reorganization.
Meter deterministic work до расхода ресурсов untrusted program.
Сначала: Flamegraph из мелких аллокацийПривяжите cursors к одному snapshot, исключив drift.
Сначала: Вернувшийся blockRollback derived state до ancestor и переключайте branch атомарно.
Сначала: Вернувшийся block · Order закоммичен, event исчезПРИНЦИП МИССИИ
Не просто вспомнить термин. Восстановить способность самостоятельно принять решение под ограничениями.