С каким стеком технологий (backend) вы имеете практический опыт работы?

«С каким стеком технологий (backend) вы имеете практический опыт работы?» — вопрос из категории Софт-скиллы, который задают на 25% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Основной стек (коммерческий опыт):

  • Язык: Java 8-17.
  • Фреймворки: Spring (Boot, MVC, Security, Data JPA, Cloud).
  • ORM: Hibernate / JPA.
  • Базы данных: PostgreSQL, MySQL (написание и оптимизация запросов).
  • Инфраструктура: Docker, базовое знакомство с Kubernetes.
  • Брокеры сообщений: Apache Kafka (для асинхронной коммуникации).
  • Кэширование: Redis.
  • Инструменты сборки: Maven, Gradle.
  • Тестирование: JUnit 5, Mockito, Testcontainers.
  • Системы контроля версий: Git (GitFlow, trunk-based development).

Пример типичного слоя сервиса с Spring:

@Service
@Transactional
@RequiredArgsConstructor // Lombok для инъекции зависимости
public class UserService {
    private final UserRepository userRepository;

    public UserDto getUserById(Long id) {
        User user = userRepository.findById(id)
            .orElseThrow(() -> new ResourceNotFoundException("User not found"));
        return mapToDto(user); // Маппинг в DTO
    }
}

Дополнительно: Опыт интеграции с frontend на React, работа с REST API и OpenAPI спецификациями.