Какие задачи вы выполняли на последнем месте работы?

Ответ

На последней позиции в качестве Backend-разработчика на Spring Boot я занимался следующими задачами:

  • Разработка REST API для банковского приложения.
  • Реализация безопасности: JWT-аутентификация и авторизация с помощью Spring Security.
  • Работа с данными: Оптимизация сложных SQL-запросов к PostgreSQL и настройка индексов.
  • Интеграции: Подключение внешних платежных шлюзов и систем.
  • Тестирование: Написание модульных и интеграционных тестов с использованием JUnit 5 и Mockito.
  • Поддержка инфраструктуры: Участие в рефакторинге legacy-кода, настройке пайплайна CI/CD в Jenkins и разработке асинхронного микросервиса для уведомлений на основе Kafka.

Пример кода (Endpoint для проверки баланса):

@RestController
@RequestMapping("/api/accounts")
public class AccountController {

    @GetMapping("/{id}/balance")
    @PreAuthorize("hasRole('USER')")
    public ResponseEntity<BigDecimal> getBalance(
            @PathVariable Long id,
            @AuthenticationPrincipal UserDetails user) {
        // Проверка прав доступа
        if (!accountService.isOwner(id, user.getUsername())) {
            return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
        }
        return ResponseEntity.ok(accountService.getBalance(id));
    }
}

Ответ 18+ 🔞

Вот, представляешь, сижу я на этой своей последней работе, блядь, как Backend-разработчик на Spring Boot. И занимался я там таким, что волосы дыбом встают, ёпта!

Ну, в общем, список моих подвигов, блядь:

  • REST API пилил для одного банковского приложения. Не просто так, а чтобы деньги считать, блядь, серьёзно всё.
  • Безопасность, мать её. JWT-токены, Spring Security — чтобы всякие левые пидорасы не ломились в систему, как к себе домой. Авторизация, аутентификация, в рот меня чих-пых, чтоб всё по полочкам.
  • С данными воевал. PostgreSQL, блядь. Запросы такие, что сам SQL с ума сходил. Оптимизировал, индексы настраивал — чтобы не тормозило, как черепаха в сиропе.
  • Внешние шлюзы подключал, платежные. Интеграции, блядь. Там свои заморочки, свои API, доку — овердохуища текста, который читать — терпения ебать ноль.
  • Тесты писал. JUnit 5, Mockito. Чтобы потом, когда что-то сломаешь, не охуеть от последствий, а сразу понять, что ты — мудак.
  • Инфраструктуру поддерживал. Legacy-код рефакторил — это как разгребать авгиевы конюшни, только кодом. CI/CD в Jenkins настраивал. И ещё, блядь, асинхронный микросервис для уведомлений на Kafka делал. Чтобы письма летели, как дерьмо в вентилятор, только вовремя.

А вот, смотри, кусочек кода, как я endpoint для баланса делал. Красота, блядь:

@RestController
@RequestMapping("/api/accounts")
public class AccountController {

    @GetMapping("/{id}/balance")
    @PreAuthorize("hasRole('USER')")
    public ResponseEntity<BigDecimal> getBalance(
            @PathVariable Long id,
            @AuthenticationPrincipal UserDetails user) {
        // Проверка прав доступа
        if (!accountService.isOwner(id, user.getUsername())) {
            return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
        }
        return ResponseEntity.ok(accountService.getBalance(id));
    }
}

Видишь? @PreAuthorize("hasRole('USER')"). Это чтобы не абы кто мог зайти и посмотреть, сколько у кого денег. Сначала проверяем: а твоя ли это, сука, учетка? Если нет — получай FORBIDDEN и иди нахуй. А если твоя — вот тебе баланс, держи, распишись. Всё честно, блядь.

Вот такая, понимаешь, жизнь у backend-разработчика. Не сахар, но зато интересно, ёпта. То SQL-запрос оптимизируешь, то с Kafka танцуешь, а то legacy-код читаешь и думаешь: «Какой же, блядь, пидарас это писал?.. О, это же я полгода назад».