Middle to Senior PHP Developer в Rusprofile - #7976322

Rusprofile


Дата: 13.09.21 3:1
Город: Москва, Москва
Категория: ИТ и интернет
Зарплата: договорная
Тип работы: Постоянная работа
График работы: Полный рабочий день


О проекте Rusprofile Rusprofile — это проект, который помогает разного размера бизнесам изучать своих контрагентов. Наша задача — искать в открытых источниках актуальные юридические данные и предоставлять и в удобном виде с аналитикой и выводами. У продукта много кейсов использования, среди прямых клиентов можно найти самых разных людей — бухгалтеров, юристов, страховых агентов, менеджеров по безопасности, закупкам, продажам, собственников бизнеса и даже преподавателей университетов. О технологиях У нас есть большой монолит на PHP. Он состоит из двух частично независимых частей, которые работают на двух разных серверах. Первая часть занимается отображением сайта, а вторая — обновлением данных из различных источников. И та, и другая часть должны работать как можно быстрее, да и общего кода у них немало, поэтому микросервисы сейчас не для нас. У нас есть собственный минималистичный микрофреймворк, построенный вокруг PHP-DI и использующий PSR-7 и PSR-15 для обработки HTTP-запросов. Мы уделяем большое внимание скорости работы сайта: порядка сотни миллионов разных страниц мы отдаём при нагрузке в районе 100-200 RPS на бекенд в среднем за 100-150 мс. В качестве базы используем MariaDB, которая сейчас занимает уже почти 3 Тб, и кроме серьёзной оптимизации структуры базы, индексов, запросов такое быстродействие нам помогает обеспечивать двухуровневая система кеширования в Redis. Ещё у нас есть Eloquent для удобной работы с сущностями, связанными с платным функционалом, Elasticsearch для поиска, Psalm для статического анализа кода. На фронте — Twig, Webpack, SCSS, TypeScript, для мониторинга — Clickhouse/InfluxDB/Grafana. Есть несколько интересных узкоспециализированных вещей, например: развесистый менеджер процессов обновления, чтение штрихкодов, автоматическая сегментация адресов, компилятор Twig-макросов в Javascript. Как построена работа Процесс построен вокруг Scrum-практик — двухнедельные итерации с планированием в начале, ежедневным стендапом и ревью и ретроспективой в конце. С разработкой тесно взаимодействует менеджер проекта, который формулирует большую часть задач, и два продакт-менеджера, отвечающие за разные направления. Задачами мы управляем через Jira, документацию держим в xWiki и Confluence, переписываемся в Slack. Ежедневно с 12 до 18 наша команда находится в голосовом канале в TeamSpeak. В разработке у нас также есть стадии анализа, код-ревью, тестирования и приёмочного тестирования — время от времени мы пересматриваем workflow, чтобы он соответствовал реальности. Мы уделяем внимание качеству кода, и, если нет времени сделать хорошо сразу, то обязательно заводим задачу на рефакторинг. Разработка всегда открыта к новшествам, если они решают больше проблем, чем создаёт сложностей их внедрение. Так, например, мы успешно запустили статический анализ кода в уже большом и давно работающим коде: это было непросто, но затраты уже многократно окупились. О команде Команда Rusprofile — это: - основатели Илья и Дима, которые когда-то вместе заканчивали факультет вычислительной математики и кибернетики МГУ. Все время после университета занимались своими проектами, среди которых Rusprofile — основной. - 12 инженеров с академичным пониманием разработки во главе с СТО Мишей Иглицким, среди которых уже есть 6 бекендеров. Команда инженеров активно растет и в ближайшее время вырастет до ± 17 человек. - бизнес-ориентированные менеджеры и дизайнеры продукта Кого мы ищем Мы ищем Middle to Senior PHP Developer, который будет работать как над агрегацией информации из различных источников, так и над функционалом сайта. Особенности, которые встретятся вам в работе: - Во-первых, данных обычно много: в России зарегистрировано 11 млн. организаций и 16 млн. индивидуальных предпринимателей. База данных у нас занимает почти 3 Тб. Поэтому часто приходится специально размышлять над тем, как сделать так, чтобы всё не тормозило: оптимизировать структуру базы и SQL-запросы, профилировать PHP-код, эффективно использовать пересчёты в несколько потоков и т. п. - Во-вторых, у нас нетривиальная предметная область: это не интернет-магазин, которые все похожи друг на друга, а государственные данные с соответствующими особенностями. Поэтому важно будет разобраться с множеством специфических аббревиатур, и с особенностями хранения данных. - В-третьих, у нас есть активно развивающийся платный функционал, который тоже порою порождает различные технические вызовы. В частности, это касается проведения экспериментов по различным механикам привлечения, которые не должны никак затрагивать пользователей, не участвующих в экспериментах. Опыт, который мы ценим - Уровень — Middle to Senior - Нам очень важно найти эксперта, который хорошо понимает, как код работает с высокой нагрузкой. Ежедневно к нам на сайт заходит более 700к пользователей, мы не останавливаемся на этом и активно развиваем продукт и нашу аудиторию. - Вызовы, которые встречаются в работе с highload и open data сформировали команду сильных инженеров. Без фундаментального понимания разработки и методологичности мышления мы не могли бы решать уникальные задачи. Поэтому нам важно, чтобы вы понимали, что происходит при исполнении кода и SQL запросов. - Мы очень ценим профессионализм в коммуникации – уважаем фидбек, конструктивный профессиональный диалог без растекания мысли по древу и многочасовых дейли. Нам важно найти коллегу, который разделяет такую культуру общения. - Вы уже использовали в коммерческих проектах must have инструменты, на которых у нас все построено: - PHP 8 (PSR-2, 3, 4, 7, 11, 15) - MySQL/MariaDB 5.5 (база данных занимает почти 3 Тб данных, много быстрого чтения, чередующегося с массовыми обновлениями) - Redis для кеширования данных - Elasticsearch - Git - Nice to have инструменты, знание которых будет приятным плюсом для нас: - Eloquent, Psalm - OpenAPI - nginx - InfluxDB, Grafana, Telegraf - Python - CentOS Что готова дать компания - Гибкий график – вы можете работать в удобном для вас режиме (в том числе и удалённо), главное – быть с 12 до 18 на связи с командой в TeamSpeak. - В конце первого года вас будет ждать годовая премия, а далее – квартальные премии. Мы ценим то, что из нашей команды за 5 лет ушло 2 инженера, и, чтобы отблагодарить сотрудников, сделали прогрессивный коэффициент бонусов, который зависит от времени работы в нашей команде. - Работа с highload – ежедневно наш сервис посещает более 700К пользователей. Но на этом мы не останавливаемся, наша продуктовая команда ищет новые аудитории пользователей, а, значит, нагрузки будут только расти. - Работа с уникальными задачами. Мы собираем open data и делаем так, чтобы эти данные были не только актуальными в любой момент, но еще и удобными для наших пользователей. Работа с open data несёт за собой вызовы: государственные данные порою требует изобретательности в методах работы с ними, чтобы извлечь из них максимум полезного. Причины просты – поставщики данных, как правило, не заботятся о том, чтобы эти данные было удобно использовать – у каждого ведомства своя логика упаковки и обработки данных. - Мы всегда рады новым знаниям, помогающим решать наши непростые задачи, потому мы оплачиваем обучение, помогаем посещать конференции и семинары. - У нас небольшая команда без бюрократии и фаундеры, которые слышат каждого. Любой человек может высказаться, что-то привнести и предложить – фаундеры прислушиваются и думают, как претворить все в жизнь

Ждем вас

Контактные данные

Для того, чтобы просмотреть контактные данные этой вакансии, вам необходимо войти на сайт. Если у вас еще нет учетной записи, пожалуйста, зарегистрируйтесь.


RabotaDoma.org

Хочешь работать, не выходя из дома?

Свежие вакансии удаленной работы и простое размещение резюме!

ПОДРОБНЕЕ