На что вы ориентируетесь при поиске новой работы как Java-разработчик?

Ответ

При поиске новой роли я оцениваю проекты и условия работы по нескольким ключевым техническим и организационным критериям.

Технический стек и процессы:

  • Современный Java/Kotlin: Работа с актуальными версиями (Java 11+), использование современных API (Streams, Optional, Records, Pattern Matching).
  • Релевантные фреймворки и подходы: Опыт с Spring Boot, Micronaut, Quarkus; микросервисная или чистая архитектура.
  • Качество кода: Внедрение практик Clean Code, проведение регулярного Code Review, написание модульных и интеграционных тестов (JUnit, Testcontainers). Приветствуется TDD/BDD.
  • Инфраструктура и DevOps: Автоматизация сборки (Maven/Gradle), CI/CD (GitLab CI, Jenkins, GitHub Actions), контейнеризация (Docker, Kubernetes).

Пример интересной технической задачи:

// Использование современных возможностей Java для создания читаемого и эффективного кода
public record UserResponse(String name, String email, LocalDateTime registeredAt) {}

public List<UserResponse> getActiveUsers(List<User> users) {
    return users.stream()
            .filter(User::isActive)
            .map(u -> new UserResponse(u.getName(), u.getEmail(), u.getRegisteredAt()))
            .toList();
}

Организационные аспекты:

  • Гибкость: Возможность удаленной или гибридной работы, гибкий график.
  • Культура команды: Открытость к обмену знаниями, отсутствие микроменеджмента, ориентация на результат.
  • Профессиональный рост: Доступ к обучению, сложные и масштабируемые задачи, участие в архитектурных решениях.

Я стремлюсь избегать проектов с устаревшими технологиями (например, Java 6-8 без плана миграции, EJB 2.x, SOAP-сервисы) и токсичной рабочей средой, где переработки являются нормой.

Ответ 18+ 🔞

Ну, слушай, вот я тут смотрю на вакансии, понимаешь, и у меня в голове уже целая система оценки, как у этого Герасима, только не «Муму», а «мудак или не мудак проект». Прям волнение ебать, как карты лягут.

Про техническую начинку, или «На чём будем пахать»:

  • Java/Kotlin: Если в требованиях Java 6 или 8 без планов на выход, я сразу — «в рот меня чих-пых». Нужно что-то современное, 11+, чтобы можно было Records, Streamы и прочие вкусности юзать, а не городить велосипеды из одних классов-сущностей.
  • Фреймворки и архитектура: Spring Boot — это как родная, но если Micronaut или Quarkus — тоже пойдёт, лишь бы не этот ёбанный легаси-монолит, где за изменение одной кнопки три отдела согласовывают. Микросервисы или чистая архитектура — это да, это наш путь.
  • Качество кода: Если в процессе нет Code Review и все пишут как бог на душу положит — это пиздец, а не работа. Чистый код, тесты (JUnit, Testcontainers), может даже TDD — вот что греет душу. Без этого — одни костыли потом, ебать мои старые.
  • Инфраструктура: Сборка должна быть автоматизирована (Maven/Gradle), CI/CD чтоб крутился, а не ручками деплоили. Docker, Kubernetes — это уже почти стандарт, без них как без рук.

Вот, к примеру, задача, которая могла бы заинтересовать:

// Использование современных возможностей Java для создания читаемого и эффективного кода
public record UserResponse(String name, String email, LocalDateTime registeredAt) {}

public List<UserResponse> getActiveUsers(List<User> users) {
    return users.stream()
            .filter(User::isActive)
            .map(u -> new UserResponse(u.getName(), u.getEmail(), u.getRegisteredAt()))
            .toList();
}

Видишь? Красиво, коротко, без лишнего говна. Не то что в старых проектах — три класса, пять интерфейсов и овердохуища кода.

А теперь про атмосферу, или «С кем предстоит в окопах сидеть»:

  • Гибкость: Удалёнка или гибрид — обязательно. Сидеть с девяти до шести в офисе, чтобы просто «быть на виду» — это, прости, мартышлюшка какая-то. Результат важнее отсиженных часов.
  • Культура в команде: Чтобы можно было знаниями обмениваться, а не сидеть, как немой Герасим, и бояться слово сказать. Микроменеджмент — это вообще красный флаг, при виде которого подозрение ебать чувствую.
  • Рост: Если задачи — однотипная хуйня из JIRA, а про архитектуру и речи нет, то какой рост, о чём вы? Нужны вызовы, доступ к обучению, чтобы мозги не засохли.

А чего я, как собака Муму, боюсь и обхожу стороной? Проекты, где основной стек — это Java 6, EJB 2.x и SOAP-сервисы, которые уже никому не нужны, но «работают же». И, конечно, токсичная среда, где переработки — это норма, а не ЧП. На такое даже смотреть не хочу, сразу — «иди нахуй, мужик», как в той записке. Потому что жизнь одна, а говнопроектов — овердохуища.