Описание проекта
Мы ищем опытного Full-Stack разработчика для поддержки и развития веб-приложения, предназначенного для создания и обработки электронных счетов в формате UBL 2.1 (EN 16931, XRechnung). Проект включает backend на Go (Gin) и Python (Django), frontend на Vue.js с TypeScript, контейнеризацию через Docker и проксирование через Nginx. Основные задачи — доработка функционала, интеграция с внешними системами (например, Peppol), обеспечение безопасности и оптимизация производительности.
Обязанности:
- Поддержка и доработка backend на Go (Gin) для парсинга и генерации UBL/XML-документов.
- Разработка REST API на Python (Django) с использованием GORM для работы с PostgreSQL.
- Создание и оптимизация интерфейсов на Vue.js с использованием Pinia и Vue Router.
- Настройка и поддержка Docker-контейнеров для разработки и продакшена.
- Конфигурация Nginx для проксирования запросов между frontend и backend, включая настройку HTTPS (LetsEncrypt).
- Интеграция с внешними сервисами (например, Peppol) и обработка медиафайлов.
- Обеспечение безопасности приложения (CORS, заголовки, валидация данных).
- Написание тестов (Jest/Vitest для frontend, unit-тесты для Go) и документации.
- Мониторинг логов (Zerolog) и устранение ошибок.
Требования:
- Опыт работы:
- 3-5 лет в Full-Stack разработке.
- Практический опыт с Go (Gin) для создания API и обработки XML/JSON.
- Уверенное владение Python и Django для разработки REST API.
- Опыт работы с Vue.js, TypeScript, Pinia и Vue Router.
- Технические навыки:
- Знание Docker для контейнеризации и деплоя (опыт с многоэтапными сборками — плюс).
- Опыт работы с PostgreSQL (GORM) и оптимизацией запросов.
- Настройка Nginx (прокси, gzip, CORS, HTTPS с LetsEncrypt).
- Понимание стандарта UBL EN 16931 или способность быстро разобраться в спецификациях.
- Знание инструментов сборки: Vite, Tailwind CSS, Sass.
- Опыт работы с системами логирования (Zerolog или аналоги).
- Дополнительные навыки:
- Опыт интеграции с SMTP для отправки писем.
- Знание основ DevOps: CI/CD, Air для hot-reload, управление сертификатами.
- Базовые навыки администрирования Linux (Alpine, Ubuntu).
- Личные качества:
- Умение разбираться в существующем коде и предлагать улучшения.
- Внимание к деталям при работе с технической документацией.
- Навыки командной работы и коммуникации.
Будет плюсом
- Опыт работы с Peppol или аналогичными системами обмена документами.
- Знание немецкого/английского для чтения спецификаций (например, XRechnung).
- Опыт написания тестов с использованием Jest, Vitest или Go testing.
- Знание Air для разработки с hot-reload.
- Опыт работы с финансовыми документами или бухгалтерией
Технологический стек проекта - Backend: Go (Gin, Zerolog), Python (Django, GORM)
- Frontend: Vue.js (Pinia, Vue Router), TypeScript, Tailwind CSS, Vite
- База данных: PostgreSQL
- Контейнеризация: Docker (Alpine-based), multi-stage builds
- Веб-сервер: Nginx (HTTPS, LetsEncrypt, CORS)
- Стандарты: UBL 2.1, EN 16931, XRechnung
- Инструменты: Air (hot-reload), Jest/Vitest (тесты), Sass
- Среда: Linux (Alpine/Ubuntu)
Условия: - Удаленная работа или офис (по договоренности).
- Гибкий график.
- Доступ к существующей документации и коду.
- Возможность влиять на архитектуру и развитие продукта.
- Конкурентоспособная заработная плата (обсуждается индивидуально).