Российская Академия Наук
Должность: студент-разработчик C++
Время работы: 2017-02 → 2019-07
⚠️ в РАН я работал не официально, т.к. пришёл туда в качестве приглашённого перспективного студента, будучи обучающимся в АФСБ.
Технологический стек
- Основной:
- C++14:
- STL
- MPI
- OpenMP
- Python:
- Qt
- PyPlot
- NumPy
- Pandas
- Git
- C++14:
- Дополнительный:
- Postgres
- Специфичный:
- Solidity (для разработки на Ethereum).
Участие в разработке
В РАН я не был приставлен к какому-то конкретному проекту, т.к. РАН является государственной организацией и не вовлечена в коммерческую разработку ПО. По факту, за годы своей работы в этой организации я смог поработать на многих внутренних проектах, каждый из которых предназначался исключительно для внутреннего использования сотрудниками РАН с целью решения ими профессиональных задач.
Подавляющее большинство задач сводилось к написанию программ для кластерных вычислителей, с использованием библиотек MPI и OpenMP, смысл которых – сбор, обработка и анализ статистических данных. Конкретно данные имели самую разную классификацию: от научных, полученных в результате проведения экспериментов, до данных экологической и социальной статистики. Большой объём времени занимала задача визуализации данных и результатов анализа.
Обязанности и зона ответственности:
- Написание кода и unit-тестов
- Проверка кода других разработчиков
- Написание технической документации
- Написание пользовательской документации
- Участие в процессе проектирования проектов
Персональный вклад
В каждом из проектов я принимал полноценное участие на всех этапах разработки ПО: выработка требований → решение поставленной задачи → тестирование полученных результатов → анализ и учёт обратной связи от сотрудников РАН.
API для унификации написания программ сбора статистики с Суперкомпьютерного Центра (СКЦ)
Внёс существенный вклад в разработку API, которое реализует технологию MapReduce, привнося в неё некоторые специфические особенности, продиктованные областью применения и характером архитектуры СКЦ; смысл же, сводится к тому, чтобы предоставить множеству отделов РАН, производить параллельные вычисления на мощностях СКЦ, путём написания программ, согласованных с унифицированным интерфейсом, не вдаваясь в технические детали вычислительного оборудования. Особенно важными нюансами в разработки, можно выделить: (1) в архитектуру приложения заложена гибкость рода смены конфигурации СКЦ; (2) написание приложений, связанных со сбором статистики, при использовании, данного API, подразумевает кодирование настолько минимальное, что большинство приложений, подобного рода, укладываются в 100 строк C++.
Программа автоматизации управления документооборотом
Мною была написана программа, предназначение которой осуществлять конвертацию данные из БД (Postgres) и/или Excel-таблиц в Word-документ(ы), которые предоставляются для отчётности. Для данного проекта был реализован графический модуль с использованием Qt5.
Проект распределённой базы данных на технологии блокчейн
Исключительно научно-тестовый проект, который разрабатывался мною в качестве ответа на вопрос «есть ли смысл так делать?», суть которого можно описать так: используя технологию блокчейн (разработка велась на платформе Ethereum) создать распределённую БД между всеми институтами РАН, в которой бы фиксировались открытые научные факты и научные достижения российских учёных и/или коллективов и/или институтов.
Личная оценка плюсов и минусов работы в компании
По факту, это было моим первым местом работы, а потому дать объективную оценку весьма сложно, разве что много лет спустя, после опыта работы во многих иных местах.
И так: РАН – это весьма консервативная организация, большинство сотрудников которых (на момент 2017 года), это почтенные члены-корреспонденты РАН, учёные, профессора, опыт которых бесценен, однако опыт без какой-либо корректировки на тенденции современного мира. К примеру, «да», установленные компиляторы позволяли использовать 14-ый стандарт C++, однако менторское искусство ограничивалось стандартом не выше 03-его, отчего все новые практики привносились исключительно студентами, вроде меня. Наличие же задач, необходимых к решению – это прямое следствие нежелания руководства посмотреть во внешний мир в поисках уже существующего решения.
И всё же, я всегда буду любить РАН, потому что именно здесь мне реально поставили боевую задачу реализовать Дерево Фибоначчи.
Плюсы:
- невероятно интересные задачи в большом количестве, причём на выбор;
- большинство задач – это мини-проекты, средней продолжительностью жизни 2-3 месяца;
- возможность вести параллельные научные исследования или работы;
- идеальное место работы если ты студент, т.к. ты можешь и должен оттачивать навыки программирования чего-то, что бессмысленно программировать в случае, если во главу угла встают деньги и время, затраченные на разработку;
- доступ к библиотеке Web of Science.
Минусы:
- преподаватели-сотрудники, опыт которых завис на рубеже 90х годов;
- бессмысленность работы с точки зрения карьерного роста;
- Фантастический бюрократизм;
- Невозможность донести мысль о том, что большинство задач, на которые тратятся время и средства, можно отдать на аутсорсинг, ценой в ежемесячную подписку.