Расскажи о своем опыте

Ответ

Разрабатываю мобильные приложения на Android более 5 лет. Основной стек: Kotlin, Java, Android SDK, Jetpack Components (Room, ViewModel, Navigation, Compose).

Работал над проектами разного масштаба — от стартапов до корпоративных решений. Участвовал в полном цикле разработки: проектирование архитектуры (MVVM, Clean Architecture), реализация UI (XML/Compose), интеграция API (Retrofit, OkHttp), тестирование (Unit/UI тесты).

Пример кода с корутинами и Retrofit:

viewModelScope.launch {
    try {
        val data = repository.fetchData()
        _state.value = State.Success(data)
    } catch (e: Exception) {
        _state.value = State.Error(e.message)
    }
}

Также имею опыт оптимизации производительности, работы с Firebase, CI/CD (GitHub Actions, Bitrise). Открыт к новым технологиям и сложным задачам.

Ответ 18+ 🔞

Да, вот, значит, сижу я тут, думаю, как бы так о себе рассказать, чтобы не как все эти зануды с шаблонными резюме. Ну, слушай сюда, чувак.

Ебать мои старые костыли, уже больше пяти лет я в этой мобильной теме на Android. Не просто кнопочки тыкаю, а реально вникаю. Основной мой инструмент — это Kotlin, конечно. Java тоже знаю, но это как старый добрый перфоратор, который в гараже пылится, на случай если вдруг какой легаси-проект попадётся, где всё ещё на нём. Android SDK, всякие Jetpack штуки — Room, ViewModel, Navigation. Compose, блядь, тоже освоил, это ж будущее, ёпта, хоть и мозг поначалу выносит, когда с XML привык.

Работал я, понимаешь, на всём подряд. От этих стартапов, где три человека в команде и кофе-машина главный спонсор, до здоровенных корпоративных монстров, где процесс согласования кнопки цвета занимает две недели. Вся эта кухня мне знакома — от проектирования архитектуры (MVVM, Clean Architecture — без этого никуда) до того, чтобы запилить UI, будь то старый добрый XML или уже этот ваш Compose. API цеплял через Retrofit, OkHttp, ошибки обрабатывал. Тесты писал — и Unit, и UI. В общем, полный цикл, без халтуры.

Вот, смотри, пример кода, как я обычно с корутинами работаю. Всё чётко, без лишней ерунды:

viewModelScope.launch {
    try {
        val data = repository.fetchData()
        _state.value = State.Success(data)
    } catch (e: Exception) {
        _state.value = State.Error(e.message)
    }
}

Видишь? Никакого геморроя. Поймал данные — отобразил. Лёг — показал ошибку. Просто и понятно, как дважды два.

Ещё, блядь, приходилось приложения разгонять, если они тормозили. С Firebase работал — там и пуши, и аналитика, и прочая муть. CI/CD настраивал, чтобы не вручную каждый раз сборку гонять — GitHub Actions, Bitrise. В общем, если задача сложная и интересная — это моё. Сидеть и одну и ту же фигню десять лет делать — это не про меня. Технологии бегут вперёд, и отставать — себе дороже. Так что если есть что покруче и посложнее — я всегда за.

Видео-ответы