# Автоматизація та CI/CD

> Вибрані роботи Engineer ApS, що демонструють Автоматизація та CI/CD — досягнення, які це підтверджують.

- [Розробила пайплайн погодинної агрегації споживання електроенергії на Python / SQL / Bash + Jq, досягнувши 180 мс для наборів даних за 30 днів із різнорідних джерел JSONL.](https://engineer.company/uk/portfolio/engineered-hourly-electricity-consumption-aggregation-pipeline-in-python-4/)
- [Вирішила 1 000 проблем у географічних даних та часових рядах, використовуючи GDAL, ArcGIS, PostGIS, Mapbox, QGIS, SQL (PL/pgSQL, Transact‑SQL), Bash, забезпечивши високоякісну обробку великих даних.](https://engineer.company/uk/portfolio/resolved-1-000-issues-in-geographical-data-and-7/)
- [Спроєктувала, реалізувала та адмініструвала 6 пайплайнів ETL/ELT, використовуючи Google BigQuery, MSSQL, PostgreSQL, Shell scripting, PL/pgSQL та Transact‑SQL, інтегрувавши дані для ефективної обробки через Python API.](https://engineer.company/uk/portfolio/designed-implemented-and-administered-6-etl-elt-pipelines-8/)
- [Розробила та запустила перший у компанії дашборд observability, що забезпечував аналітику продуктивності системи в реальному часі та візуалізацію даних на великому офісному телевізорі.](https://engineer.company/uk/portfolio/developed-and-launched-the-company-s-first-observability-9/)
- [Спроєктувала, розгорнула та підтримувала 10 серверів PostgreSQL і MS SQL на Ubuntu Linux VPS, забезпечивши оптимальну продуктивність і надійність серверів.](https://engineer.company/uk/portfolio/designed-deployed-and-maintained-10-postgresql-and-ms-13/)
- [Посилила безпеку даних, впровадивши 1 000 правил RBAC для розробників, екземплярів застосунків, PostgreSQL, MS SQL та інших Linux‑серверів, запобігши несанкціонованому доступу; задокументувала за допомогою автоматизації Ansible.](https://engineer.company/uk/portfolio/enhanced-data-security-by-implementing-1-000-rbac-14/)
- [Автоматизувала розгортання GIS SaaS‑застосунку, обробку даних та систему звітності за допомогою GitHub Actions CI/CD, Python, Bash та SQL.](https://engineer.company/uk/portfolio/automated-gis-saas-application-deployment-data-processing-and-16/)
- [Автоматизувала постачання 20 пайплайнів GIS‑даних та ETL‑процесів даних застосунку, оптимізувавши автоматизацію інфраструктури та звітність.](https://engineer.company/uk/portfolio/automated-delivery-of-20-gis-data-pipelines-and-17/)
- [Автоматизувала 100 критично важливих резервних копій даних за допомогою Barman, Google Cloud, Bash та Python, забезпечивши цілісність даних у базах даних.](https://engineer.company/uk/portfolio/automated-100-critical-data-backups-using-barman-google-18/)
- [Розгорнула та підтримувала 20 контейнеризованих застосунків Docker, усуваючи несправності за допомогою Podman і Kubernetes, а також керувала застосунками на R у Google Cloud та AWS.](https://engineer.company/uk/portfolio/deployed-and-maintained-20-docker-containerized-applications-troubleshooting-19/)
- [Запобігла порушенням безпеки, очоливши ініціативи з керування доступом, використовуючи M365, 1Password, Red Hat SSO та OKTA SSO.](https://engineer.company/uk/portfolio/prevented-security-breaches-by-leading-access-management-initiatives-21/)
- [Знизила операційні ризики, впровадивши дашборд моніторингу на базі Grafana та Prometheus, підвищивши надійність системи.](https://engineer.company/uk/portfolio/mitigated-operational-risks-by-implementing-a-monitoring-dashboard-22/)
- [Покращила комунікацію та співпрацю в команді, впровадивши Slack, Mattermost, 1Password та Jira, заощадивши 8 000 людино‑годин.](https://engineer.company/uk/portfolio/improved-team-communication-and-collaboration-by-implementing-slack-34/)
- [Реорганізувала внутрішні процеси, заощадивши 8 000 годин завдяки вдосконаленню архітектури програмного забезпечення, систем та ефективності планування.](https://engineer.company/uk/portfolio/overhauled-internal-processes-saving-8-000-hours-by-38/)
- [Адмініструвала мережеву інфраструктуру для понад 1 000 серверів, забезпечивши оптимальне розгортання систем, безпеку та усунення несправностей.](https://engineer.company/uk/portfolio/administered-network-infrastructure-for-over-1-000-servers-39/)
- [Автоматизувала створення сертифікатів SSL/TLS для 100 застосунків Docker, забезпечивши безпечні з'єднання на хостах Ubuntu Linux.](https://engineer.company/uk/portfolio/automated-ssl-tls-certificate-creation-for-100-docker-41/)
- [Оптимізувала процеси CI/CD, заощадивши 4 000 годин завдяки впровадженню автоматизації в пайплайнах розробки програмного забезпечення.](https://engineer.company/uk/portfolio/streamlined-ci-cd-processes-saving-4-000-hours-42/)
- [Оптимізувала процеси аналізу даних та розробки програмного забезпечення, заощадивши 4 000 годин завдяки впровадженню практик CI/CD на базі GitHub, GitLab, Bash та Python.](https://engineer.company/uk/portfolio/streamlined-data-analysis-and-software-development-processes-saving-43/)
- [Розробила систему звітності Data Analytics, збільшивши квартальний дохід від програмного забезпечення на 400% завдяки PDF‑звітам на базі Python.](https://engineer.company/uk/portfolio/developed-a-data-analytics-reporting-system-increasing-quarterly-44/)
- [Автоматизувала завдання обробки даних за допомогою Shell scripting, PL/pgSQL, Python та Transact‑SQL, підвищивши продуктивність і ефективність.](https://engineer.company/uk/portfolio/automated-data-processing-tasks-using-shell-scripting-pl-45/)
- [Підвищила ефективність проєктів, заощадивши 150 годин на місяць у 30 проєктах, оптимізувавши робочі процеси та управління ресурсами.](https://engineer.company/uk/portfolio/enhanced-project-efficiency-saving-150-hours-per-month-46/)
- [Розробила 600 пайплайнів ETL/ELT на основі PL/pgSQL для оптимізації складних робочих процесів обробки даних у кількох середовищах розробки та продакшн PostgreSQL.](https://engineer.company/uk/portfolio/engineered-600-pl-pgsql-based-etl-elt-pipelines-54/)
- [Згенерувала контракт API з бази даних назовні — OpenAPI, типізований TypeScript‑клієнт на 44 076 рядків, 61 mock‑обробник та обмеження, які застосовує UI, — з перевіркою на кожній ланці, що падає при розходженні.](https://engineer.company/uk/portfolio/built-a-request-schema-validation-contract-with-automated-61/)
- [Розгорнула інфраструктуру Azure як код за допомогою Bicep — Container Apps, PostgreSQL Flexible Server, Front Door/WAF та мережу — у середовищах development, staging і production.](https://engineer.company/uk/portfolio/provisioned-azure-infrastructure-as-code-with-bicep-container-68/)
- [Побудувала пайплайни CI/CD на GitHub Actions з distroless‑образом продакшн‑фронтенду та просуванням між кількома середовищами.](https://engineer.company/uk/portfolio/built-github-actions-ci-cd-pipelines-with-a-69/)
- [Написала 578 цілей автоматизації go‑task, що охоплюють нативний, Docker та HTTPS режими розробки, лінтинг, тестування, базу даних та розгортання.](https://engineer.company/uk/portfolio/authored-578-go-task-automation-targets-70/)
- [Відповідала за наскрізне розгортання платформи в Azure, керуючи релізами в середовищах development, staging і production.](https://engineer.company/uk/portfolio/owned-end-to-end-deployments-of-the-platform-71/)
- [Створила систему інтернаціоналізації для англійської та данської мов, що несе 12 027 повідомлень на локаль у 458 файлах namespace, зі словником, дотримання якого забезпечував лінтер, та бюджетом у 400 рядків на файл.](https://engineer.company/uk/portfolio/established-an-english-danish-internationalization-system-with-linter-78/)
- [Встановила стандарт якості без жодних попереджень для шести мов — Go, TypeScript, SQL, Python, Shell і Markdown — дотримання якого забезпечували pre‑commit hooks.](https://engineer.company/uk/portfolio/set-a-zero-warnings-quality-bar-across-six-79/)
- [Спроєктувала систему управління часом та звітності, яка роками залишалася в промисловій експлуатації без суттєвих змін.](https://engineer.company/uk/portfolio/designed-a-time-management-and-reporting-system-that-88/)
- [Автоматизувала командну співпрацю, керування паролями, управління завданнями та часом, а також створила напівавтоматичну систему демонстрації проєктів, підвищивши продуктивність команди.](https://engineer.company/uk/portfolio/automated-team-collaboration-password-management-task-and-time-89/)
- [Інтегрувала загальнокорпоративну систему керування паролями, посиливши безпеку та оптимізувавши керування доступом.](https://engineer.company/uk/portfolio/integrated-a-company-wide-password-management-system-strengthening-90/)
- [Побудувала багаторівневий набір автоматизованих тестів — 981 тест Go, 543 фронтендні та браузерні специфікації, 494 поведінкові тести SQL — з мутаційним тестуванням, property‑based тестами та обов'язковою перевіркою доступності.](https://engineer.company/uk/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/)
- [Побудувала механізм перевірок репозиторію — 268 зареєстрованих перевірок коміту, 277 правил лінтингу та 15 власних правил ESLint — плюс 146 тестів самих перевірок, щоб стандарт тримала збірка, а не код‑рев'ю.](https://engineer.company/uk/portfolio/built-the-repository-s-guard-engine-of-268-checks-95/)
- [Перенесла повільну роботу зі шляху запиту в чергу завдань River — 15 модулів воркерів, 8 запланованих задач та 20 завдань pg_cron — щоб запит повертався, поки робота за ним триває.](https://engineer.company/uk/portfolio/moved-slow-work-onto-a-river-job-queue-97/)
- [Запровадила безперервну програму безпеки — сканування коду, DAST, перевірки залежностей і вразливостей, генерацію SBOM, пошук секретів та actions, закріплені за SHA, — поряд із 21 письмовим аудитом безпеки.](https://engineer.company/uk/portfolio/established-a-continuous-security-programme-104/)
- [Побудувала власну інфраструктуру компанії як 19 плейбуків Ansible і 34 ролі на 12 065 рядках YAML, що зводять живий хост до оголошеного стану, де кожен play ідемпотентний.](https://engineer.company/uk/portfolio/built-the-companys-infrastructure-as-code-108/)
- [Загартувала SSH до 24 стверджених директив із тристадійною перевіркою — файл‑кандидат, зібрана конфігурація, а тоді власне зчитування демона — після того, як зчитування спіймало робочий сервер на мовчазному перевизначенні двох із двадцяти чотирьох.](https://engineer.company/uk/portfolio/hardened-ssh-with-three-stage-validation-111/)
- [Довела весь шлях блокування вторгнень на кожному запуску загартування, блокуючи зарезервовану тестову адресу, читаючи отримане правило ядра й знімаючи блокування у гарантованому блоці прибирання, щоб тюрма, яка перестала працювати, валила запуск, а не звітувала про здоров'я.](https://engineer.company/uk/portfolio/proved-the-intrusion-banning-path-on-every-converge-112/)
- [Перевірила правила фаєрвола за позицією, а не за наявністю, читаючи пронумерований перелік правил і живий ланцюг фільтрації пакетів, бо правило, яке існує, — це не правило, до якого доходить хоч один пакет.](https://engineer.company/uk/portfolio/verified-firewall-rules-by-position-113/)
- [Побудувала зашифровані резервні копії поза хостом на restic із обрізанням за терміном зберігання, перевіркою цілісності та щомісячним автоматизованим навчальним відновленням, а тоді проаудитувала позицію відновлення й записала прогалини, замість лишати їх на знаходження під час інциденту.](https://engineer.company/uk/portfolio/built-encrypted-backups-with-a-monthly-restore-drill-114/)
- [Побудувала моніторинг із сигналом живучості, який пінгує лише поки пам'ять і диск здорові, тож ослаблений хост здіймає тривогу, замовкаючи, — і спіймала шість імен змінних, що казали «free», де перевірка правильно вимірювала «available», на порядок різні на машині з 464 МБ.](https://engineer.company/uk/portfolio/built-dead-mans-switch-monitoring-115/)
- [Змусила check mode казати правду на всій платформі, знайшовши шість зондів, які ухвалювали рішення за значенням, якого хост ніколи не давав, бо модуль command в Ansible звітує про успіх під --check, повністю пропускаючи саму команду.](https://engineer.company/uk/portfolio/made-ansible-check-mode-tell-the-truth-116/)
- [Додала передпольотний play, який виконує той самий код, що й зведення, проти локальних секретів оператора приблизно за секунду, після того як наполовину застосований продакшн‑запуск загинув на дев'ятому завданні з уже записаними на живий хост налаштуваннями swap.](https://engineer.company/uk/portfolio/added-a-preflight-play-for-secrets-117/)
- [Звірила зону DNS із 20 записів декларативно з API Cloudflare, з окремими входами для аудиту та експорту в BIND, і вимкнула проксі CDN назад із міркувань приватності після того, як його побудувала.](https://engineer.company/uk/portfolio/reconciled-a-dns-zone-declaratively-118/)
- [Зменшила експозицію пісочниці systemd на кожному юніті, який встановлює сама платформа, — служба сигналу живучості з 9,6 UNSAFE до 1,5, звернений до інтернету git‑форж із 8,3 EXPOSED до 1,5 — і додала перевірку парсером під час зведення, знайшовши директиву з помилкою, яку мовчки ігнорували у трьох шаблонах юнітів.](https://engineer.company/uk/portfolio/cut-systemd-sandbox-exposure-across-every-unit-119/)
- [Побудувала сім ролей звітування лише для читання, які подають живий хост як Markdown — факти, доступ, git, метрики, трафік, безпека та інвентар провайдера — за правилом, що не друкується жодне число, якого запуск не виміряв.](https://engineer.company/uk/portfolio/built-seven-read-only-host-reporting-roles-120/)
- [Розгорнула власний git‑форж компанії на Soft Serve, приватний за замовчуванням і без вебпанелі, з портом SSH, прив'язаним до loopback за хостом‑переходом, і зробила посадкову сторінку перед ним артефактом збірки основного сайту, а не копією, яку тримають руками.](https://engineer.company/uk/portfolio/deployed-the-companys-own-git-forge-121/)
- [Розгорнула контейнерний рівень на Podman і Quadlet під systemd, а не на Docker, бо Docker публікує порти контейнерів над власними правилами фаєрвола хоста, — і дала розгортанням непривілейованого користувача з однією фіксованою командою замість root.](https://engineer.company/uk/portfolio/deployed-a-container-plane-on-podman-and-quadlet-122/)
- [Автоматизувала провізіювання другого сервера в другого хмарного провайдера, створивши фаєрвол перед машиною, щоб вона народжувалася за ним, із фаєрволами обох провайдерів, написаними прямо до їхніх REST API, щоб уникнути сторонньої колекції.](https://engineer.company/uk/portfolio/provisioned-a-second-server-from-code-123/)
- [Записала правило обсягу в репозиторій після того, як реструктуризація занесла до нього інвентар, дозволи фаєрвола та прозу іншої компанії, — і втримала карантинований залишок під сканером секретів, замість виключити його.](https://engineer.company/uk/portfolio/wrote-a-scope-rule-after-a-credential-leak-124/)
- [Розділила чотири секрети, що належать окремому хосту, після встановлення, що два хости зі спільним сигналом живучості сповіщають менше, ніж два сигнали, а не більше, і що спільна парольна фраза резервних копій робить два хости одним репозиторієм.](https://engineer.company/uk/portfolio/split-every-operational-secret-per-host-125/)
- [Побудувала ворота коміту з 22 однорядкових лінтерів плюс п'ятьох, що заслуговують на абзац, без рівня попереджень і без дозволених вбудованих придушень, з покриттям HTML, CSS, JavaScript, Python, YAML, Markdown, shell, посилань, орфографії, секретів і типографіки.](https://engineer.company/uk/portfolio/built-a-22-linter-commit-gate-127/)
- [Скоротила керовані браузером ворота якості сайту з 1 636 секунд до 615, плануючи їхні перевірки від найдовшої через пул воркерів, обмежений чотирма смугами, вимірявши, що абеткова черга коштувала 320 секунд проти 224.](https://engineer.company/uk/portfolio/cut-the-visual-quality-gate-to-ten-minutes-128/)
- [Замінила 27 відтворених розмірів шрифту, чиї найближчі сусіди різнилися на 0,6%, шестикроковою шкалою Major Third і написала лінтер, який валить двадцять восьмий.](https://engineer.company/uk/portfolio/replaced-27-font-sizes-with-a-six-step-scale-129/)
- [Знайшла й виправила 11 дефектів доступності, які браузер звітував здоровими: вісім посилань підвалу, що лишалися в порядку табуляції за pointer‑events, шкалу прокрутки, яка обрізала колофон на трьох сторінках, і механізм правил, що виконував 70 зі своїх 105 правил.](https://engineer.company/uk/portfolio/fixed-11-accessibility-defects-the-browser-called-healthy-131/)
- [Закрила систему кольорів на 28 задокументованих кольорах із лінтером, який валить значення, намальоване але незадокументоване, задокументоване але ненамальоване, хибно виміряне, переписане як літерал або в межах перцептивної відстані 0,02 від уже наявного.](https://engineer.company/uk/portfolio/closed-the-colour-system-at-28-colours-133/)
- [Виявила, що світлій темі бракувало повносторінкового шару накладання від самого дня її написання, стверджуючи, що обидві теми малюють кожну шарувату поверхню однаковою кількістю шарів.](https://engineer.company/uk/portfolio/found-the-light-theme-missing-an-overlay-layer-134/)
- [Віддзеркалила весь сайт як 777 документів Gemini і 777 документів Gopher з того самого розгорнутого дерева, з нульовою зміною байтів у HTML.](https://engineer.company/uk/portfolio/mirrored-the-site-to-gemini-and-gopher-137/)
- [Замінила 963 анонімні блоки структурованих даних, які переповідали компанію 1 671 раз, одним пов'язаним графом із 16 типів, викарбуваним зі стабільних ідентифікаторів походження.](https://engineer.company/uk/portfolio/replaced-963-structured-data-blocks-with-one-graph-138/)
- [Скоротила пакунок стилів із 87 КБ до 31 КБ, вийнявши з нього шрифт у base64, і відкинула 756 КБ у 22 файлах, які публікувалися при кожному розгортанні й на які ніщо не посилалося.](https://engineer.company/uk/portfolio/cut-the-stylesheet-bundle-from-87kb-to-31kb-139/)
- [Виправила мапу сайту, де 172 з 176 URL мали одну позначку часу зміни, взявши дату з історії git після встановлення, що експорт переписує кожен файл при кожному запуску.](https://engineer.company/uk/portfolio/fixed-a-sitemap-with-one-shared-timestamp-140/)
- [Поставила документацію під власний лінтер — побюджетний ліміт рядків на файл, який лише знижується, вимогу індексу та перевірку справжніх шляхів, — який знайшов шість із дев'яти планів, позначених виконаними, попри невідмічені пункти, і чотирнадцять завдань, що блокували кожен коміт, не згаданих у жодному документі.](https://engineer.company/uk/portfolio/put-the-documentation-under-its-own-linter-142/)
- [Підвела 10 242 рядки JavaScript воріт якості під форматувальник і лінтер, встановивши, що це найбільший обсяг коду в репозиторії й єдиний, якого ніщо не читало, виправила 13 знахідок і не придушила жодної.](https://engineer.company/uk/portfolio/brought-the-quality-gate-code-under-a-linter-143/)
- [Побудувала на Python генератор CV, рекомендацій, портфоліо та супровідних листів на основі бази даних — 41 модуль, 10 580 рядків — що відтворює шість форматів виводу з одного джерела SQLite на 23 таблиці, зібраного ідемпотентним конвеєром із 19 кроків.](https://engineer.company/uk/portfolio/built-a-database-driven-cv-and-portfolio-generator-144/)
- [Втримала генератор на 981 тестовому випадку із порогом покриття гілок 92% і попередженнями як помилками та ствердила ідемпотентність, запустивши весь конвеєр збірки двічі з порожнього файлу й вимагаючи, щоб другий прохід нічого не змінив.](https://engineer.company/uk/portfolio/held-the-generator-to-964-tests-and-a-coverage-floor-145/)
- [Встановила відповідність PDF/UA‑1 на дев'яти документах за 106 зі 106 правил і виявила, що архівний варіант валить одне правило зі 146 — майже‑успіх, який читається як успіх для будь‑кого, хто не запускає валідатор.](https://engineer.company/uk/portfolio/established-pdf-ua-1-conformance-across-nine-documents-146/)
- [Обрала кожне правило, яке має лінтер Python, як помилку й опрацювала 1 815 знахідок до нуля, де кожен із небагатьох винятків несе письмову причину, а два з них підперті перевіркою, а не коментарем.](https://engineer.company/uk/portfolio/enabled-every-python-linter-rule-as-an-error-147/)
- [Написала тести для самих перевірок після встановлення, що перевірка, якій дають лише чистий вхід, одного дня відзвітує чисто, бо нічого не прочитала, — підклавши помилку правопису, щоб підтвердити, що перевірка орфографії її знаходить, і взявши діапазон ідентифікаторів із бази даних, а не з числа в тесті.](https://engineer.company/uk/portfolio/wrote-tests-for-the-checkers-themselves-149/)
- [Виявила, що хуки коміту та ворота якості виконують різні перевірки, поки документ обіцяв, що вони однакові, порівнявши два переліки в тесті, — п'ять, які виконувалися лише вручну, були тими, що читали прозу CV.](https://engineer.company/uk/portfolio/found-the-commit-hooks-and-the-gate-disagreeing-150/)
- [Відрепетирувала CI‑хук на боці форжу й знайшла два дефекти, недосяжні читанням файлу: запасний варіант, який клав нерозв'язний аргумент на вхід хука, і власну змінну середовища git, яка йшла за воротами у checkout і робила 19 тестів червоними.](https://engineer.company/uk/portfolio/rehearsed-the-forge-side-ci-hook-151/)
- [Побудувала міжмовну перевірку контенту, яка валиться, коли переклад губить число, вказане англійською, і коли мова вживає нотацію, якої не вживає, — знайшовши два данські описи без метрики і шістнадцять українських фрагментів, що цитували на англійський лад.](https://engineer.company/uk/portfolio/built-a-cross-language-figure-and-notation-check-153/)
- [Написала парсер, який читає справжній C‑заголовок на 7 308 рядків і перевіряє кожне місце виклику, кожну константу переліку й те, що кожен клас‑власник вказівника є final, після того як рукописний заголовок‑заглушка дозволив викликам до трьох вилучених функцій скомпілюватися, злінкуватися й впасти.](https://engineer.company/uk/portfolio/wrote-a-parser-that-verifies-every-ffi-call-site-157/)
- [Звела набір тестів із шести тестів понад межу в шістдесят секунд до 135 успішних за 8,9 секунди, профілюючи головний потік і прибравши два виклики, всередині яких він сидів у 3 989 із 4 017 вибірок.](https://engineer.company/uk/portfolio/took-the-test-suite-under-nine-seconds-158/)
- [Назвала кожен суто піктограмний елемент керування в інтерфейсі для зчитувачів екрана після того, як кнопка надсилання оголошувалася як «arrow up circle, button», і написала лінтер, що вимагає підпис у межах восьми рядків від піктограми.](https://engineer.company/uk/portfolio/named-all-seventeen-interface-icons-for-screen-readers-159/)
- [Побудувала систему дизайну на 48 токенів поверх власного скляного матеріалу платформи й написала лінтер, який відхиляє магічне число, жорстко задений розмір шрифту чи анімацію, що ігнорує настройку зменшеного руху.](https://engineer.company/uk/portfolio/built-a-48-token-design-system-160/)
- [Дістала ту половину ядра обміну повідомленнями, якої застосунок ніколи не використовував, — передавання резервної копії, зникомі повідомлення, редагування та повторне надсилання, підтверджені запрошення, проксі та політику шифрування, — ведучи кожен тест проти справжньої бібліотеки без заглушок.](https://engineer.company/uk/portfolio/reached-the-unused-half-of-the-messaging-core-161/)
- [Проаудитувала 644 крейти Rust на сумісність ліцензій при кожній збірці й довела, що перевірка спрацьовує, переписавши ліцензію одного крейта й перемістивши зафіксовану ревізію ядра без перегенерації.](https://engineer.company/uk/portfolio/audited-644-rust-crates-for-licence-compatibility-163/)
- [Побудувала набори піктограм і фавіконів компанії з двох рукотворних малюнків, де кожен похідний ресурс перегенеровується скриптом, а перевірка валиться, коли похідний файл закомічено раніше за своє джерело.](https://engineer.company/uk/portfolio/built-the-visual-identity-from-two-drawings-164/)
- [Втримала чотири репозиторії на одному стандарті історії — конвенційному, без емодзі, без рядків атрибуції, із примусом через хук повідомлення коміту — поряд із 48 документами інструкцій, що керують тим, як виконується робота.](https://engineer.company/uk/portfolio/held-five-repositories-to-one-history-standard-165/)
- [Виміряла тринадцять адрес лише за власним журналом доступу вебсервера — без кукі, без трекерів і без сторонніх сервісів — маскуючи мережу клієнта в момент запису рядка та згортаючи результат у постійний архів із 21 денного показника та 20 місячних фасетів.](https://engineer.company/uk/portfolio/measured-thirteen-addresses-from-the-access-log-alone-166/)
- [Змусила шість збирачів звітів повідомляти ту частину свого входу, яку вони так і не прочитали — файли, що лишилися закритими, непроінстальовані проби, нерозпізнані рядки журналу, — і підігнала пороги до 116 виміряних зразків, з'ясувавши, що сліпий збір і здоровий хост дають ту саму сторінку.](https://engineer.company/uk/portfolio/made-six-collectors-state-what-they-never-read-167/)

<https://engineer.company/uk/categories/automation/>
