что с кубернетесом? где он мог бы использоваться в моих проектах

Если в проекте k8s — готов войти, это вопрос недель, а не месяцев.

Как закрыть дыру за выходные, если куб встречается в твоих целевых вакансиях часто: подними k3s или minikube локально и перенеси compose-стек реестра — BFF, бэкенд, Postgres, Redis, Prometheus. Получишь манифесты, пробы, секреты и ingress на реальном приложении, а в ответе на вопрос появится «переносил свой стек, вот с чем столкнулся». В навыки резюме k8s до этого момента не ставь — на техничке проверяется первым же уточняющим вопросом.

✻ Churned for 44s

※ recap: Мы готовим твоё резюме и материалы для поиска работы: RU и EN версии обновлены до 2 страниц и лежат в ~/Desktop/CV, плюс написаны сопроводительные и пост для LinkedIn. Сейчас разбираем ответы на вопросы с собеседования — последний был про Kubernetes.

❯ измени обложку для линкеда, поменяв почту на rem.iurkov@gmail.com

Read 4 files, listed 2 directories, ran 14 shell commands

Готово — почта на обложке заменена на rem.iurkov@gmail.com.

Файлы в ~/Desktop/CV/banners/, оригиналы на рабочем столе не тронуты:

  • banner-backend.png / @2x
  • banner-architect.png / @2x
  • banner-engineer.png / @2x

Пропатчил все три варианта, потому что не знаю, какой сейчас стоит в профиле — почта во всех была одна и та же, в одних и тех же координатах. Размеры прежние: 1584×396 и 3168×792 для ретины.

Как делал: исходников (HTML/SVG/Figma) на диске нет, поэтому правил сами PNG — вырезал старый текст, восстановил фон построчно по чистому участку тех же строк и дорисовал новый адрес. Шрифт подобрал по метрикам оригинала: Poppins SemiBold 17px, тот же белый, та же базовая линия и левый край, что у 18rem03@gmail.com. Строка @ok0l0culture и всё остальное не менялись — на глаз новая строка от старой не отличается по весу и посадке.

Если найдёшь исходник баннера (Figma или HTML), скинь — тогда правки будут чище и можно будет заодно поменять заголовок под ту роль, которую сейчас ищешь.

✻ Brewed for 6m 20s

※ recap: Мы готовили твои материалы для поиска работы: резюме RU и EN приведены к двум страницам с новой почтой и объединённой Аксмой, написаны два сопровода и пост для LinkedIn, обложка обновлена. Дальше — скажи, что правим.

❯ }, "numberFormat": "ru", "screenHeight": 1080, "speechVoices": [ "Милена:ru-RU", "Daria:bg-BG", "Eddy (китайский (Китай континентальный)):zh-CN", "Eddy (китайский (Тайвань)):zh-TW", "Eddy (немецкий (Германия)):de-DE", "Eddy (английский (Великобритания)):en-GB", "Eddy (английский (Соединенные Штаты Америки)):en-US", "Eddy (испанский (Испания)):es-ES", "Eddy (испанский (Мексика)):es-MX", "Eddy (финский (Финляндия)):fi-FI", "Eddy (французский (Канада)):fr-CA", "Eddy (французский (Франция)):fr-FR", "Eddy (итальянский (Италия)):it-IT", "Eddy (японский (Япония)):ja-JP", "Eddy (корейский (Республика Корея)):ko-KR", "Eddy (португальский (Бразилия)):pt-BR", "Flo (китайский (Китай континентальный)):zh-CN", "Flo (китайский (Тайвань)):zh-TW", "Flo (немецкий (Германия)):de-DE", "Flo (английский (Великобритания)):en-GB", "Flo (английский (Соединенные Штаты Америки)):en-US", "Flo (испанский (Испания)):es-ES", "Flo (испанский (Мексика)):es-MX", "Flo (финский (Финляндия)):fi-FI", "Flo (французский (Канада)):fr-CA", "Flo (французский (Франция)):fr-FR", "Flo (итальянский (Италия)):it-IT", "Flo (японский (Япония)):ja-JP", "Flo (корейский (Республика Корея)):ko-KR", "Flo (португальский (Бразилия)):pt-BR", "Grandma (китайский (Китай континентальный)):zh-CN", "Grandma (китайский (Тайвань)):zh-TW", "Grandma (немецкий (Германия)):de-DE", "Grandma (английский (Великобритания)):en-GB", "Grandma (английский (Соединенные Штаты Америки)):en-US", "Grandma (испанский (Испания)):es-ES", "Grandma (испанский (Мексика)):es-MX", "Grandma (финский (Финляндия)):fi-FI", "Grandma (французский (Канада)):fr-CA", "Grandma (французский (Франция)):fr-FR", "Grandma (итальянский (Италия)):it-IT", "Grandma (японский (Япония)):ja-JP", "Grandma (корейский (Республика Корея)):ko-KR", "Grandma (португальский (Бразилия)):pt-BR", "Grandpa (китайский (Китай континентальный)):zh-CN", "Grandpa (китайский (Тайвань)):zh-TW", "Grandpa (немецкий (Германия)):de-DE", "Grandpa (английский (Великобритания)):en-GB", "Grandpa (английский (Соединенные Штаты Америки)):en-US", "Grandpa (испанский (Испания)):es-ES" нашел в фингерпринт

Это не «откуда-то пришло» — это снимок браузера, который соби и отправляет на бэкенд. Разбор по полям:

speechVoices — результат window.speechSynthesis.getVoices(), и, установленных в системе. numberFormat: "ru" —Intl.NumberFormat().resolvedOptions(). screenHeight: 1080 — screen.height. Классический набор компонентов browser fingerprint.

Что этот конкретный отпечаток говорит о пользователе: macOS с русским языком интерфейса. «Милена» — штатный русский голос macOS, а Eddy / Flo / Grandma / Grandpa — набор голосов, появившийся в свежих версилокализованы по-русски («китайский (Китай континентальный)»),то есть система на русском. Плюс экран высотой 1080. На Windows и Android список голосов выглядит совершенно иначе, поэтому он и ценен для фингерпринта — комбинация голосов довольно уникальна и стабилсбрасывает очистка кук.

Откуда взялся код. Вариантов три:

  1. Кто-то из команды намеренно добавил антифрод или трекинг м ожидаемое поведение.
  2. Подключённая библиотека. Такой состав полей характерен для fingerprint-библиотек вроде CreepJS и его производных; у FingerprintJS в открытой версии голосов нет. Могло приехать транзитом вместе с антибот-скрипт
  3. Сторонний скрипт на странице, который к вашему продукту отношения не имеет.

Как найти за пять минут. Грепни фронт по getVoices, speechSynthesis, speechVoices, fingerprint, visitorId — включая node_modules, если в билд тянется чужая либа. Со стороны бэкенда посмотри, какой эндпоинт принивилась колонка или таблица, куда он ложится: git log -S"speechVoices" покажет коммит и автора. Если в исходниках ничего нет, значит скрипт грузится извне — тогда смотри вкладку Network на странице логина и ищи, кто шлёт POST с этим телом. Отдельно стоит проверить правовую сторону, особенно если проднт — это данные, позволяющие отслеживать конкретного человекамежду сессиями, и под GDPR он трактуется как персональные данные, требующие основания для обработки и упоминания в политике. Если это делалось «для антифрода» без документов — лучше узнать сейчас, а не на ауди

Скажи, в каком проекте это админка и где лежит репозиторий, —о и когда это добавил.