Работа над внутренней ERP-системой банка для ипотечных и неипотечных сделок с недвижимостью. Опыт взаимодействия с большим количеством команд (как внутренних, так и внешних) в рамках одной компании. Опыт работы в системе с большим количеством бюрократических элементов и согласований.
- →Оптимизировал и доработал сервис работы с файлами (общая модель, используемая остальными сервисами компании). До подключения сервис страдал от падений по OOM и по месту на диске. Реализовал рестриминг входного потока в различные конечные хранилища (замена стандартного multipart/form resolver для Spring), оптимизировал все места, использовавшие byte[] вместо stream, произвёл рефакторинг архитектуры — вынес всё, что не относится к общей модели работы с файлами, в другие сервисы
- →Разработал сервис конвертации и слияния списка файлов в различных форматах (Word, Excel, изображения любых форматов, PDF) в PDF-формат. Сервис выдерживает высокую нагрузку без падений, имеет рассчитанное количество воркеров под конфигурацию VM, поддерживает горизонтальное масштабирование
- →Разработал сервис электронного подписания документов с различными стратегиями подписания (одиночное, соподписание) для различных способов подписания (КриптоПро в браузере, облачные УЦ: Госключ, АйТи Мониторинг, DigitalDeal, ПЭП через интеграцию с внешними шлюзами), верификация криптографических подписей через внешний сервис
- →Разработал сервис неипотечных сделок (с оптимизациями для определённого SLA) с интеграциями с другими сервисами
- →Шаблонизатор для документов Microsoft Office — генерация документов Word с использованием конструкций (циклы, условия, функции и операторы). Внутренний язык легко кастомизируется. Работает на базе ANTLR4 (лексический анализатор) и docx4j (библиотека для работы с DOCX-документами)
// Experience.java
// ========================================