./battlecity
diff --git a/frontend/index.html b/frontend/index.html index 9c41efe..e237f4b 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -12,127 +12,26 @@ -Гаммель Дмитрий
-PHP / Go backend-разработчик
-Живучий, колючий, не требует много воды. Специализация — сложные запросы, legacy-код, архитектура.
-cat about.txt
-- Backend-разработчик с 6-летним коммерческим опытом на PHP: сложные запросы к базам данных, - работа с legacy-кодом, архитектурные решения. Спроектировал аналитический контур на ClickHouse, - ускоривший формирование отчётности в 15–20 раз; неофициально возглавлял разработку модуля - документооборота в банковской IT-инфраструктуре. -
-- Начинал с электротехники и АСУТП — писал управляющий софт для автоматизированных систем. - Путь «от электрического сигнала до строчки кода» помогает быстро разбираться в сложных - legacy-системах и нестандартных задачах. -
-- Сейчас изучаю Go и продолжаю искать позицию Middle+/Senior backend-разработчика. -
-ls -la experience/
--
-
-
-
-
PHP-разработчик — ООО «ЭТП ГПБ» (дочернее АО «Газпромбанк»)
--
-
- Поддерживал legacy на Zend Framework, участвовал в переходе на Symfony; PHP 7.4 → 8.0. -
- Спроектировал аналитический контур отчётности на ClickHouse — сократил время формирования отчётов с 3–4 минут до 10–15 секунд. -
- Интеграции с внутренними банковскими сервисами (проверка ЭП, машиночитаемые доверенности), очереди RabbitMQ. -
- Неофициально возглавлял разработку нового модуля документооборота: архитектура, код-ревью, MVP. -
- -
-
-
PHP-разработчик — kupisever.ru
--
-
- Доработка бэкенда B2B-платформы (доска объявлений) на Yii2, стек PHP/PostgreSQL/RabbitMQ/Docker. -
- Модуль email-рассылок с очередями сообщений и конструктором писем. -
- Модуль категорий объявлений — админка и клиентское меню. -
- -
-
-
PHP-разработчик (с обязанностями руководителя группы) — ИстВуд
--
-
- Интернет-магазины на 1С-Битрикс, интеграции с 1С и платёжными системами. -
- Фактически руководил командой из 3 разработчиков: задачи, код-ревью, технические собеседования. -
-
skills --list
- -cat contact.txt
- -${title}
+${payload.reason}
+${title}
-${payload.reason}
-WASD / стрелки + пробел тоже работают
+${t().controlsHint}
подключение...
'} + ${connected ? '' : `${t().connecting}
`}-
- ${rooms.length === 0 ? '
- пока пусто — создай комнату ' : rooms.map(roomRow).join('')} + ${rooms.length === 0 ? `
- ${t().empty} ` : rooms.map(roomRow).join('')}
жду второго игрока (1/2) — открой комнату во второй вкладке/другим человеком
'; - readyBtn = ''; + statusLine = `${t().waitingForSecond}
`; + readyBtn = ``; } else if (currentRoom.mode === 'coop' && !full) { - statusLine = 'можно начать соло, второй игрок сможет подключиться позже
'; + statusLine = `${t().soloHint}
`; } container.innerHTML = `room ${currentRoom.name}
-режим: ${currentRoom.mode}
+${t().room} ${currentRoom.name}
+${t().mode} ${currentRoom.mode}
-
- ${currentRoom.players.map((p) => `
- ${escapeHtml(p.nickname)}${p.ready ? ' — готов' : ''} `).join('')} + ${currentRoom.players.map((p) => `
- ${escapeHtml(p.nickname)}${p.ready ? t().readySuffix : ''} `).join('')}
${p.title}
${p.description}
- ${p.url.replace('https://', '')} + ${p.linkLabel}: ${p.url.replace('https://', '')}${job.role} — ${job.company}
+- ${job.bullets.map((b) => `
- ${b} `).join('')}
${t.name}
+${t.title}
+${t.tagline}
+01${t.aboutHeading}
+${p}
`).join('')} +02${t.experienceHeading}
+- ${renderExperience(t.experience)}
03${t.skillsHeading}
+ ${renderSkillGroups(t.skillGroups)} +04${t.educationHeading}
+- ${renderEducation(t.education)}