Avatar

Иван Луговой

Более-менее профессиональный разработчик на каких-то более-менее полезных языках.

Опыт работы: 6 лет

Стек

Java 8-21
Spring Framework
Hibernate
JPA
JavaFX
OpenGL
Vulkan API
PostgreSQL
MySQL
MongoDB
RabbitMQ
Docker
HashiCorp Vault
Gradle
Clean Code
Карьера
Проекты

Forte Holding GmbH

Наименование: ООО «ФОРТЕ ХОУМ ГМБХ»
Позиция: Java-разработчик
Время работы: С Октября 2024 (1 год 7 месяцев)

Задачи

- Разрабатывал обычные микро-сервисы на классическом стеке Spring Boot: CRUD'ы, web-сервисы и "перекладыватели" json'а.

- При необходимости писал библиотеки для внутреннего использования, в силу стека представляли собой Spring Boot модули. Например: модуль логирования, который отправлял их в базу данных.

- Написал простой CI/CD сервис, способный вызывать Gradle-задачи, выполнять shell-скрипты и отправлять файлы на сервера.

- Разрабатывал сервисы с графическим web-интерфейсом на основе Vaadin. Одним из таких был портал управления внутренними сервисами: просмотр логов, удаленное выполнение команд и управление сервером авторизации.

Стек

Java 17-21
Spring Boot 3-4
Spring Web
Spring Security
Spring Cloud
Vaadin
RabbitMQ
Jenkins
Gradle
HashiCorp Vault

VimeWorld

Наименование: ООО «Ваймворлд»
Позиция: Java-разработчик
Время работы: Март 2025 — Апрель 2025 (2 месяца)

Задачи

- Верстал графические пользовательские интерфейсы (GUI) по готовым макетам из Figma. Тесно сотрудничал с дизайнером, чтобы согласовывать различные детали и доробатывать непродуманное ранее.

- Проектировал расширение и проработку возможностей графического движка, но на этом сотрудничество закончилось, не сошлись.

Стек

Java 8
OpenGL
ProtoBuf
Maven

Cristalix

Наименование: ИП Леханов Константин Анатольевич
Позиция: Java-разработчик
Время работы: Октябрь 2022 — Сентябрь 2024 (2 года)

Задачи

- Разработал конструктор пользовательских графических интерфейсов (кто-то называет это движком), позволяющий собирать сложные интерфейсы на основе конфигурации в коде или json. Написан с использованием OpenGL и имеет, например, следующие компонент: контейнеры, макеты (layout), кнопки, поля ввода. Для проработки визуальной составляющей, тесно сотрудничал с дизайнером, чтобы соответствовать внешнему стилю проекта.

- На основе вышеупомянутого конструктора написал множество различных готовых реализаций графических интерфейсов, например: дерево навыков, экран итогов игры, рейтинг игроков

- Отдельной, как по мне недооцененной, разработкой стал конструктор частиц (particle), способный обрабатывать десятки миллионов объектов в тик (20 раз в секунду). Концепция была вдохновлена устаревшей системой частиц в игровом движке Unity, позаимствовал: параметры и настройку поведения через математические кривые (curve).

- Начал разработку графического редактора на основе все того же конструктора интерфейсов. Основная цель: позволить дизайнерам, не понимающим код, создавать графические интерфейсы прямо в среде их использования (для специфики Minecraft это важно), а так же избавить разработчиков от необходимости верстки. Экспорт готовой верстки производится в Json, после чего разработчик может подключить его к любому проекту. Проект, к сожалению, так и остался в стадии MVP, в силу моего ухода с должности.

Стек

Java 8
OpenGL
GLSL
Java Compiler
MongoDB
Gradle

Junior Java Developer (Self-Directed Training)

Время работы: Июнь 2020 - Сентябрь 2022 (2 года 3 месяца)

Задачи

- Самостоятельно освоил Java Core: от примитивов, до структур данных, Collections, Stream API, многопоточность, ООП.

- Разобрался как работать с базами данных, системами контроля версий (Git) и системами сборки Maven и Gradle.

- Освоил основы Spring Framework: Boot, Web, WebFlux, Data, Security.

- Выполнял фриланс-заказы по разработке backend-функционала на Java.

Стек

Java Core
ООП
Collections
Stream API
Spring Boot
Spring Web
Spring WebFlux
Spring Data
OpenGL
MySQL
SQLite
Maven
Gradle
Git

vext

Состояние: В разработке

Движок для desktop приложений с графическим интерфейсом на основе Vulkan API.

  • Простота в использовании;
  • Компактность и легкость расширяемости;
  • Готовый набор UI-компонентов;

Ссылки: GitHub

puml-generator

Состояние: v1.0.0

Утилита, конвертирующая исходный код Java в Plant UML диаграмму зависимостей классов. Имеет гибкие настройки и легкую расширяемость.

Ссылки: GitHub

byte-mapper

Состояние: v1.0.1

Удобный сериализатор и десериализатор Java объектов в виде компактного массива байт. Берет лучшее из нескольких технологий:

  • Компактность, схожая с ProtoBuf;
  • Синтаксическое удобство, как у JPA;
  • Простота использования, как у Jackson ObjectMapper;

Ссылки: GitHub

Пример

User.class
java
copy
@ByteEntity(1)
public class User {

    @ByteProperty(1)
    private int id;

    @ByteProperty(2)
    private String firstName;

    @ByteProperty(3)
    private short age;

    @ByteProperty(4)
    private Address address;

    @ByteProperty(5)
    private Contact[] contacts;
    
    // Getters and Setters...
}
java
copy
// Create Byte Mapper Context
ByteMapperContext context = new ByteMapperContext();
mapper = context.getByteMapper();

// Write User object to ByteBuffer
ByteBuffer exampleBuffer = ByteBuffer.allocate(1024);
mapper.write(exampleBuffer, user);

buffer.flip();

// Read User object from ByteBuffer
user = mapper.read(exampleBuffer);