Несколько лет мы "прототипировали" в условиях нехватки ресурсов. Сейчас мы собираемся закладывать новую архитектуру, расширяться и формировать ядро команды разработки.
Обязательно:
- опыт разработки 3+ года (не над тривиальными задачами)
- средний С++ и готовность следовать Modern C++
- способность в принципе самостоятельно себя организовывать в отсутствии команды, постоянно присутствующей физически вокруг
- любовь к тому, чтобы доводить начатые продолжительные технические задачи до результата
- живой интерес к продукту, разделение целей про усиление интеллекта
- способность документировать свой код на английском
- готовность вести проекты, таски, документацию в НейроКоде
- готовность при необходимости плотно иметь дело как с Windows, так и Linux
- собственный ноутбук для работы (по крайней мере пока)
Желательно:
- опыт работы с Qt, в частности, Qt Quick
- минимальный опыт DevOps: настраивать CI/CD, работать с docker, и т. п.
- потенциальная готовность к использованию других языков программирования (в перспективе).
С чем, возможно, придется столкнуться:
- немалое количество недокументированного посредственного кода
- отсутствие тестов
- 2-3 человека в команде разработки в первое время
- непривычные задачи, которые ставит Данила (или Артём), в которых поначалу может быть непонятно, почему надо делать так, а не "как обычно".
Про команду:
Сейчас ядро команды составляют три человека:
- Данила Медведев (автор и архитектор НейроКода, CEO)
- Пион Медведева (управление, методология)
- Артём Веремеенко (разработка)
Что у нас по культуре?
- открытые прямые коммуникации
- большая открытость информации
- дружелюбные, трудолюбивые и открытые люди
Где мы территориально?
- сейчас это офис в коворкинге "Балчуг" на Новокузнецкой
Можно ли работать удалённо?
- в целом да, если это хорошо получается
- но процент очного присутствия не должен падать ниже ~50%
Некоторые задачи на обозримом горизонте:
- написание пользовательского интерфейса с использованием Qt Quick
- задачи разнообразного мержинга и синхронизаций древовидных структур данных с разрешением конфликтов и поддержкой историй
- сложные быстрые алгоритмы верстки отрисовки текста, областей, графов (это всё вообще основа нашего UI)
- наведение порядка: документация, devops, тесты, рефакторинг
- перепроектирование и переписывание клиент-серверного протокола
- рендер шрифта на GPU
- создание масштабируемой бекенд-системы (архитектура и реализация)
Примерное облако технологий: GPU-отрисовка, postgresql, С++, Qt, Qt Quick, kafka, nginx, docker, Elastic Search, Open Tracing, Apache Thrift