Bootstrap Themes

Software Engineers League

Чемпионат по надежному программированию "Software Engineers League": лучший в Лиге — лучший в профессии!

Цели

  • Популяризации знаний в области проектирования надежного программного обеспечения
  • Выявление лучших талантливых инженеров в сообществе
  • Стимулирование программистов к самообразованию и решению сложных инженерных задач
  • Создание привлекательного имиджа работодателей для членов оргкомитета, спонсоров и партнеров Чемпионата
  • Расширения партнерских программ и связей

Правила соревнования

  • Призовой фонд в эквиваленте $600 распределяется: первое место — экв. $300, второе место — экв. $200, третье — экв. $100.
  • Цель — решить инженерную задачу.
  • Последняя дата подачи решения: 31.10.2021.
  • Дата оглашения результатов и победителей: 15.11.2021.
  • Язык программирования: Python.
  • Язык документации к решению на выбор участника: английский, русский, украинский.
  • Решения принимаются в виде zip-архива с исходным кодом.
  • Участник соревнования соглашается с тем, что его решение может быть опубликовано с указанием авторства организаторами соревнования в образовательных и демонстрационных целях.
  • Авторские и коммерческие права остаются за участником-автором решения.
  • Участник соглашается с тем, что разработка решения задачи им выполнена самостоятельно, и что он является единственным автором решения.
  • Соревнование состоится при наличии хотя бы трех решений, удовлетворяющих критериям соревнования.
Получить задачу

Официальные источники информации

Организатор

Первый институт надежного программного обеспечения формирует и пропагандирует новую профессиональную ИТ-культуру: надежность, гордость и персональная ответственность за результат.

Жюри, оргкоммитет

Владимир Обризан

Кандидат технических наук, директор и основатель Первого института надежного программного обеспечения.

Сергей Зайченко

Кандидат технических наук, ведущий программист и архитектор.

Виктория Копейкина

HR-менеджер Design and Test Lab.

Спонсор соревнования

Design and Test Lab — Mature Reliability Standard. Design and Test Lab разрабатывает надежные мобильные приложения, а также проектирует и тестирует интеграцию с облачными сервисами.

Python Software Engineer (Backend)

Мы приглашаем Python Software Engineer (Backend) в свою команду для разработки полезных проектов! — Социальная сеть для архитекторов, дизайнеров, ландшафтных дизайнеров; — Социальная сеть для лечения редких болезней со всего мира;

Подать резюме

Junior Python Software Engineer (Backend)

Мы приглашаем Python Software Engineer (Backend) в свою команду для разработки полезных проектов! — Социальная сеть для архитекторов, дизайнеров, ландшафтных дизайнеров; — Социальная сеть для лечения редких болезней со всего мира;

Подать резюме

Информационные партнеры

GoIT — это образовательная международная EdTech-компания, уникальное IT-сообщество

Beetroot Academy — Інтенсивні ІТ-курси

Задача

В социальных сетях принято указывать геолокацию пользователя. Потому что в социальных сетях интересно посмотреть своих соседей, кто еще в сети из моего города, района, улицы уже зарегистрирован в сети. Тем не менее, указывать свой домашний адрес может быть опасно: злоумышленники могут найти пользователя в реальном мире. Поэтому применяются специальные алгоритмы загрубления, которые показывают не точную географическую координату, а с погрешностью в несколько километров, что делает невозможным определить точный адрес пользователя.

Задача участника — реализовать функцию, которая загрубляет координаты пользователя: показывает их с погрешностью N километров в радиусе от географической координаты, указанной при сохранении профиля пользователя.

Решение должно быть выполнено в виде веб-сервиса, который реализует две операции:

  • POST /user — сохранение или создание профиля пользователя (объект User);
  • GET /user/<user_id> — получение профиля пользователя (объект User).

При сохранении или создании профиля пользователя он всегда передает свои точные географические координаты.

При получении профиля пользователя другим пользователем всегда возвращается загрубленная координата. Загрубленная координата должна быть стабильной: при каждом запросе она должна быть одна и та же.

При получении профиля пользователя администратором системы всегда возвращается точная координата пользователя.

Объект User, схема данных:

{
    "full_name": string,
    "user_id": string,
    "location": {
      "lat": float,
      "lon": float
   }
}

Объект User, пример:

{
    "full_name": "Vasiya Poupline",
    "user_id": "123",
    "location": {
      "lat": 123.2,
      "lon": 34.5
   }
}

Язык: Python.

СУБД: любая на выбор участника: Postgres, MySQL, MongoDB, SQLite, и т. п.

Фреймворк: любой на выбор участника: Flask, Django, Tornado, и т. п.

Критерии оценивания

  • Корректность алгоритма.
  • Наличие автоматических тестов.
  • Наличие документации в коде.
  • Применение паттернов проектирования.
  • Чистота кода.
  • Другие.

Регистрация участника

Зарегистрируйтесь, чтобы получить информацию о ходе соревнований, оглашении победителей, приглашения на новые соревнования.

Зарегистрироваться

Загрузить решение

Напомним правила:

  • Email и имя участника должны совпадать с указанными при регистрации.
  • Последняя дата подачи решения: 31.10.2021.
  • Язык программирования: Python.
  • Решения принимаются в виде zip-архива с исходным кодом.
  • Участник соревнования соглашается с тем, что его решение может быть опубликовано с указанием авторства организаторами соревнования в образовательных и демонстрационных целях.
  • Авторские и коммерческие права остаются за участником-автором решения.
  • Участник соглашается с тем, что разработка решения задачи им выполнена самостоятельно, и что он является единственным автором решения.
Загрузить решение

Пригласить друзей и знакомых на Чемпионат:

Телеграм
Линкедин
Вконтакте
Ватсап

Контактная информация оргкоммитета

info@first.institute