Android | Михаил Белый
309 subscribers
272 photos
32 videos
127 links
Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform) и разных вещах, которые мне интересны.

Посты каждый день в 5 вечера.

Автор: @michaelbel

Забустить: t.me/boost/foundout

Задонатить: boosty.to/michaelbel
Download Telegram
Токио. Часть 2

По необъяснимой причине в Японии очень популярны гашапоны – капсульные автоматы, из которых за монетку выпадает пластиковый шар с игрушкой или сувениром внутри. В магазинах целые этажи заставлены игровыми автоматами, манипуляторами и прочими кран-машинами, где можно попытать удачу. Работают за 100-йеновые монеты. Сотрудники часто помогают игрокам, могут поставить игрушку ближе к краю. Это не мошенничество, а часть сервиса – игрок чувствует, что его поддерживают и просаживает вообще всю мелочь.

Принято убирать за собой поднос на фудкорте. Мусор повсеместно сортируется, чему меня научил японский дед на экспо. Принцип следующий: отдельно лед из напитков, бутылки и стаканчики, бумагу, пластик, стекло и органику. С таким подходом одни баки стоят полупустые, а другие с горкой. Мусорка в городе это событие. Их или нет, или они хитроумно спрятаны. Благодаря этому чисто и нет крыс, но приходится носить этикетки и обертки с собой. Выкинуть можно в ближайшей семерочке.

В Токио обнаружена совершенно прекрасная культура зонтиков. В Японии часто идут дожди. Чтобы изучение города не прерывалось, в кафе и других местах можно бесплатно взять зонт. Перед входом в магазины будет стойка, куда его можно воткнуть. А в отелях есть специальная сушилка.

Японские туалеты – предмет национальной гордости и технологического чуда. Непозволительно чистые даже на вокзалах и в парках. Муха не еблась. Унитазы умнее, чем некоторые люди. Подогрев сиденья. Струя воды для подмывания с регулировкой температуры и напора. Автосмыв и дезодорация. Бумага при этом однослойная. Даже если её 4 раза сложить в папию она не превратится.

Время улетать. В аэропорту Токио погранец с планшетом спрашивает сколько кэша ты собрался вывести. Лимит 100k йен не превышен. Не нужно делать подъем с переворотом, когда регистрируешь багаж. Просто вкатываешь его. В бизнес-зале свежие онигири и отменный рис из мультиварки.

Япония невероятная. Не верится, что есть страна, в которой настолько любят жизнь. Находят радость в деталях, держат чашку обеими руками, много работают, бережно относятся к природе и повсеместно окружают заботой. В какой бы город не попал, хочется остаться там жить. Хочу приехать сюда еще 10 раз.
9522111
Навигация по контенту

Настало время обновить закреп.

Привет! Это канал о карьере в IT в роли Android Developer. Здесь ты найдешь:

• Карьерный роадмап в Notion.
Содержит:
– Список бесплатных курсов.
– Рекомендации по прохождению интервью.
– Примеры System Design.
– Задачи на Live Coding от разных компаний.
– 1000+ вопросов с собеседований + ответы.
– Алгоритмы и структуры данных.
– Java и Kotlin.
– RxJava.
– Android SDK.
– Android Jetpack.
– Compose.
– Gradle.
– Git.
– Примеры open-source проектов.
Посты с обновлениями: #roadmap@foundout.

• Набор эмодзипаков со всеми мобильными и айти сервисами. Уже 1000 эмодзи. Посмотреть в миниаппе.

🐗 🐗 🐗 🐗 🐗 🐗 🐗 🐗 🐗 🐗 🐗

🐗🐗🐗🐗🐗🐗

🐗 🐗 🐗 🐗 🐗

🐗 🐗 🐗 🐗 🐗

История развития: #emoji@foundout.

Серия постов о прохождении собеседований на российском рынке. Что спрашивают на первичном скрининге, техническом интервью и собесе на софты. Список ТОП-100 вопросов с ответами. Как и зачем делать запись собеса.

Подтверждение всех навыков на HeadHunter, необходимых Android-разработчику. Ответы на теоретические и практические тесты.
Посты: #hhskills@foundout.

• Годовой марафон решения задач с сервиса LeetCode. Все решения доступны в роадмапе.
Отчеты: #leetcode@foundout.

• Попытка решить все задачи с сервиса Yandex CodeRun с компилятором Kotlin/Java, включая подборки. Это самый полный в интернете сборник решений.
Посты: #coderun@foundout.

Пост про типобезопасные зависимости.
Пост про термины из Android на английском.
Пост про хоткеи в Android Studio.
Пост про использование BOM-зависимостей.
Пост какую Activity выбрать.
Пост как проектировать приложение с нуля.
Пост как совмещать 2 дейли.
Пост как использовать ChatGPT в разработке.

🐗 Boosty со всеми постами и платным чатом.

🐗 YouTube с видео про Android.

🐗 GitHub с репозиториями.
movies – мультиплатформенное приложение со всеми свистелками.
android-template – шаблон для старта Android-проекта.
kmp-template – шаблон для старта KMP-проекта.

А также:
🎢 Пост как докатился до жизни такой
🐺 Рецензия на книгу «Морской волк» Джека Лондона
🐗 Пост про отсылки к Игре престолов
🐗 Гайд по Telegraph
🏝 Пост как выгодно уходить в отпуск
🦍 Бунт против системы подарков коллегам
🇯🇵 Пост про Японию
Please open Telegram to view this post
VIEW IN TELEGRAM
81255211
Android | Михаил Белый pinned a photo
Please open Telegram to view this post
VIEW IN TELEGRAM
Нейросети и мессенджеры

Две корпоративные реальности заметил. Существует острая необходимость использовать телеграм как основной способ общения команды и чатгпт как основную нейросеть для разработки и анализа проекта. И в то же время попытки запретить и ограничить использование и первого и второго из-за переживаний о безопасности.

На свете не осталось людей, которые не осознают важности нейросетей. Это понимают и в учебных заведениях и на работах. Работодатель поощряет использование ллмок в работе, но запрещает скармливать им кодовую базу проекта. А без контекста нейросеть работает как новоприбывший джун – фиксит баг в одном месте, создавая регрессию в другом. Вместо этого – плагин для IDE и корпоративный чатбот с апи популярных нейросетей, в котором служба безопасности мониторит все запросы. Ну и как этим пользоваться? За историю браузера бывает стыдно, как и о чем болтаешь с чатгпт вообще ни одна живая душа знать не должна.

В случае с телеграмом целое государство озаботилось переездом на скрепный блинолопатный мессенджер. Ок, ждем когда доделают. По этой или другим причинам в родных компаниях издается высочайший указ – по рабочим вопросам общаемся строго в тимсе, пароли и токены пересылаем только по корпоративной почте. Далее Коля пишет Толе про статус задачи, а тот ни в зуб ногой, потому что корпоративный мессенджер у него только на корпоративном компе установлен. Еще и под корпоративным впн. На ретро пиздов получают оба: один за то, что не прочитал, второй за то, что дополнительно не тегнул в телеграме. Для каждого из нас телега – личный мессенджер. В нем почти невозможно пропустить сообщения. Их можно читать в пушах и в предпросмотре. Еще и установлен на всех устройствах, потому что является удобным файлообменником. Работники больше вовлечены в общение, пересылают мемы в чатиках, отвечают в позднее и нерабочее время. Потому что телеграм это же не рабочая звонилка, сейчас быстренько отвечу зайду и выйду на пять секунд. Работодатель и мечтать не мог о такой вовлеченности. Во времена личного удовлетворения она ему перепадает даром.

Безопасность важна. Но не бывает быстрой коммуникации за пределами телеграма. Не бывает эффективного использования нейросетей с товарищем ревизором посередине.
13432
🐗🤝🐗 Подтверждение навыка Linux

Вопросы про работу с файловой системой, поиск и фильтрацию данных в терминале, управление пользователями и правами, автоматизацию и скрипты, безопасность серверов и системное администрирование Linux.

Доступно 3 теста:
• Базовый – 10 вопросов за 15 минут.
• Средний – 13 вопросов за 20 минут.
• Продвинутый – 16 вопросов за 28 минут.

Также недавно на госуслугах появилось подтверждение айти компетенций. Если присмотреться – это те же навыки с хедхантера, которым сто лет в обед. В дополнение к шильдику в резюме получишь моднявую пдфку от минцифры.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
5432
🐗 Решения 49 задач с CodeRun

В роадмап добавлено еще 49 решений задач с CodeRun. Теперь их там 278.

Десант
Игрушечный лабиринт
Роботы
Сталкер
Взлом сервера
Система линейных уравнений – 2
Реклама
Современники
Охрана
НГУ-стройка
Игра в пьяницу
Произведение
Квадрат и окружность
День рождения Васи
Перемещение чанков
Слова, в которые играют люди
Разделение графа
Поиск
Добавить минусы
Автодополнение
Тимбилдинг
Библиотека
Мобилки
MEW HTTP
Сервис подписки
Салон Health & Sun
Достопримечательности
RLE-сжатие
Площадь между кривыми
Поддоны на складе
Расшифровка сообщения
Коля и датацентры
Система счисления
Гвоздики
МЕХ
Разнообразие товаров
Посадка в самолет
Тетрамино
Заезд 2.0
Амбициозная улитка
Построить квадрат
Счастливый номер
Вопросы про максимум
Честный дележ
Микроволновка
Шифр подстановки
Парные коды
Ухудшение графа
Сумма

#coderun@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
7221
Media is too big
VIEW IN TELEGRAM
Гуляя по Лосиному острову неожиданно оказался на экскурсии. Не смотря на дождь решил тоже послушать про оленей, лососей, маралов и яков.

Но оказалось в парке живут 60 диких кабанчиков. Двоих можно увидеть на специальной биоферме.

Степа сейчас на массе, весит 150 кг, походка размеренная. Его подруга Фрося более резвая и светлая.

Таких больших кабанов я еще не видел.
1122
🐗 Обновление эмодзипака

Добавлено 64 новых эмодзи:

🐗 Android Studio Nightly

🐗 Firebase Studio

🐗 Google Vertex AI

🐗 Google Project IDX

🐗 Google Colab

🐗 Google Dialogflow

🐗 Google AI

🐗 Google Fitbit

🐗 Google Gemma

🐗 YouTube Kids

🐗 Microsoft Viva Engage

🐗 Microsoft Defender

🐗 Microsoft Editor

🐗 Microsoft Clipchamp

🐗 Apple Music

🐗 Apple Shortcuts

🐗 JetBrains AI

🐗 KotlinConf

🐗 МТС

🐗 Мегафон

🐗 Билайн

🐗 Т2

🐗 Yota

🐗 Ростелеком

🐗 Госуслуги

🐗 ОС Аврора

🐗 IBS Group

🐗 Magnit Tech

🐗 Sber Tech

🐗 X5 Tech

🐗 Avito Tech

🐗 Lamoda Tech

🐗 Т-Банк

🐗 Ростех

🐗 Bell Integrator

🐗 Ланит

🐗 YandexGPT

🐗 DivKit

🐗 Amazon Nova

🐗 RISC-V

🐗 Hibernate

🐗 Bootstrap

🐗 Max (HBO Max)

🐗 Cursor

🐗 TeamViewer

🐗 Qwen

🐗 Cline

🐗 Grab

🐗 Devin AI

🐗 Elm

🐗 Sequoia Capital

🐗 Windsurf

🐗 Haxe

🐗 Character ai

🐗 Astro

🐗 AnyDesk

🐗 Alibaba Cloud

🐗 Replicate

🐗 SensorTower

🐗 2GIS

🐗 Zenly

🐗 Likee

🐗 Dota 2

🐗 Nebius

Обновлено 6 эмодзи:

🐗 ➡️ 🐗 Google Pay

🐗 ➡️ 🐗 HP

🐗 ➡️ 🐗 Microsoft 365

🐗 ➡️ 🐗 Microsoft Designer

🐗 ➡️ 🐗 Perl

🐗 ➡️ 🐗 Nintendo Switch

Все паки: первыйвторойтретийчетвертыйпятыйшестой

Сайт и миниапп с названиями, поиском и фильтрами

#emoji@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
52211
This media is not supported in your browser
VIEW IN TELEGRAM
MacBook Pro 16 Space Black (антирекомендация)

Сегодня продал старый мак, который покупал прошлым летом. Не прошло и года как он заколебал. Причины всего две – слишком большой и слишком черный.

Я мигрировал на него с 14-дюймового Space Grey. И в итоге вернулся на 14 дюймов, уже в серебристом цвете.

Начнем с диагонали.

Может показаться, что 14 дюймов для разработки маловато, а 16 будет в самый раз. Ничего подобного. В самый раз будет 27 дюймов. Докупается внешний 4k-монитор сяоми и вот теперь как надо.

В кафе этот монстр занимает весь столик, тарелку поставить некуда. В самолете не помещается на коленях. Если сидящий впереди пассажир откинет спинку кресла, он в лучшем случае лишит тебя комфорта, а в худшем – сломает экран. Нужен рюкзак побольше и спина покрепче таскать эту дуру.

Еще и легко коцается, когда задеваешь им углы и вслепую кабеля втыкаешь. Потому что это всего лишь крашеный алюминий.

Закончим про цвет.

Серебристые маки годами доминировали в продажах и мозолили глаза в фильмах и сериалах. Поэтому я, жертва маркетинга и любитель всего нового, решил брать именно черный мак. Подумаешь отпечатки пальцев будут оставаться, я же могу их тряпочкой протирать!

Оказалось отпечатки – вообще не повод для беспокойства. Другое дело проклятая пыль. Ее пиздец как видно, ведь она бело-серого цвета! Собираешься с утра продуктивно тикеты раскидать, идешь к своему aesthetic fucking slave месту, открываешь мак, а он засран с головы до ног! Засран экран. Засрана клавиатура. Засран трекпад. Засраны динамики. Всё в пылище и всё засрано. Вот те нате протирайте! И так каждый день.

От пыли дома никуда не деться. Это же наш собственный эпидермис сыпется. А вот от черного мака запросто.

Пошел нахер из моего дома и из моей жизни.
167533221
🐗 Десять месяцев решаю литкод

За июнь решено 30 задач уровня изи. Все они относятся к категории SQL и подразумевают написание SELECT-запроса, который возвращает результат в нужном виде. Количество задач перевалило за 300. Поднялся в рейтинге на 348 987 место.

Combine Two Tables
Employees Earning More Than Their Managers
Duplicate Emails
Customers Who Never Order
Delete Duplicate Emails
Rising Temperature
Game Play Analysis I
Employee Bonus
Find Customer Referee
Customer Placing the Largest Number of Orders
Big Countries
Sales Person
Triangle Judgement
Biggest Single Number
Not Boring Movies
Swap Salary
Actors and Directors Who Cooperated At Least Three Times
Product Sales Analysis I
Project Employees I
Sales Analysis III
User Activity for the Past 30 Days I
Article Views I
Reformat Department Table
Queries Quality and Percentage
Average Selling Price
Students and Examinations
List the Products Ordered in a Period
Replace Employee ID With The Unique Identifier
Top Travellers
Group Sold Products By The Date

#leetcode@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
43211
🧻 $1M / year after tax

По интернетам гуляет вакансия андроид-разработчика в команду телеграм с зарплатой миллион долларов в год. В фаанге сопоставимый рейз будет только на позициях L6+ с бонусами и акциями. За что такие бабки? Попробуем выяснить:

1. Пиар.
Телеграм исторически нанимает через челленджы. Это проверенный формат вирусного маркетинга. У него высокая эффективность. Сотни разработчиков копаются в исходниках и присылают патчи. Платформа получает бесплатный аудит, свежие идеи и людей в команду. По слухам, количество разработчиков в компании исчисляется десятками, а HR-отдел отсутствует вовсе. Платить сверх-зарплаты не проблема. Это укрепляет лояльность и привлекает новых сотрудников. Сами разработчики – призеры олимпиад и выпускники мат-/физ-факов из СНГ. Не отсвечивают и фанатеют от своего ремесла. Компания поощряет соревновательный дух, жесткую ответственность за результат и умение писать код без багов. Эту философию придется разделять.

2. Дубай.
Вакансия подразумевает оффер в Дубайский офис. Хорошо, если кабаныч одобрит удаленку. Иначе придется собирать манатки и переселяться в пустыню. Я был в Дубае дважды. Это в 2 раза больше, чем этот город заслуживает. Там невозможно жить. С апреля по октябрь на улице как в парилке. Застойный залив. Жизнь противоестественна и держится на кондиционировании, опреснении воды и импорте всей еды. Сложно интегрироваться. Виза с жесткой привязкой к работодателю. Для экспатов все заметно дороже: аренда, медицина, школы.

3. Приложение.
Код клиента лежит на гитхабе. Можно глянуть, с чем предстоит работать. Все челленджи требуют внедрения новой функциональности в текущую кодовую базу. А она, мягко говоря, специфичная. Никаких тебе чистых архитектур, котлинов и композов.

Есть такое выражение из 1984 года: программный код надо писать так, чтобы его легко читали люди, а только потом исполняли машины. В телеге на эту мудрость положили с прибором. Код не чистый и абстрактный, а тяжеловесный и лапшистый. Написан на Java и C++. Тестов нет. Каментов нет. Минимум внешних зависимостей. ExoPlayer, Zxing, WebRTC и RecyclerView завендорили вручную.

Используется подход Single-Activity. Конфигурация управляется вручную. Экраны – вьюхи, упорядоченные в стек, подобно фрагментам. XML-файлов нет. Компоненты создаются программно в коде. Вместо векторов – наборы png и найнпатчи. Анимации делаются с помощью ValueAnimator и ObjectAnimator. Для стикеров используется движок rlottie от самсунга, написанный на плюсах. Он кэширует битмапы и крутит их на CPU. Никакого OpenGL.

Сетевой слой держит долгоживущее шифрованное TCP-соединение. Шифрование, сокеты и API реализованы на плюсах и управляются через JNI. Файлы качаются чанками по 4 в параллель. Есть проверка CDN-хэшей и дозапись на диск. Используется собственный декларативный язык описания объектов и методов. Из декларации при сборке генерируется огромная схема на 72k строк. Для каждого конструктора получается класс-наследник TLObject, а для метода – такой же класс + обертка для ожидаемого ответа. Когда приложение отправляет запрос, объект сериализуется в буфер байтов нативной памяти, адрес буфера передаётся в ядро, оно шифрует и шлет пакет по TCP. Данные летают мимо куч Java. По сети не передаются даже имена полей. По крайней мере разработчики телеги могут говорить, что не перекладывают на работе джейсон.

Для локальной бд используется SQLite. Таблицы создаются на Java. Вызовы настроены через JNI, минуя распаковку в Java-объекты. Соединение открывается один раз при старте. Схема минималистичная, что упрощает миграции, но усложняет читаемость. База хранит ключи секретных чатов и защищена от бэкапа.

Экран профиля, который предлагается переделать в конкурсе, содержит 14608 строк кода. В рамках проекта это даже немного. Когда будет конкурс, связанный с экраном чата, придется читать 43368 строк. Из-за своих размеров он даже не загружается на гитхабе. Здесь же встречается 139-уровневый if-else.

И все это лишь вершина айсберга. Посмотреть не погружаясь в проект. Подобного «олимпиадного мастерства» там как говна за баней.

Не стыдно и лям просить за такое.
Please open Telegram to view this post
VIEW IN TELEGRAM
2176411
Посчитать зарплату

Бывает свалилась котлета на карту и совсем непонятен механизм ее формирования. Оказывается, можно не только его посчитать, но и предсказать.

По трудовому договору зарплата выплачивается каждые 15 дней. Понятия «аванс» в ТК нет. С окончания периода, за который начислят выплату также должно пройти не больше 15 дней. Сроки для зарплаты за первую половину месяца приходятся на 16-31 числа, а за вторую – на 1-15. Конкретные даты устанавливаются работодателем. Это могу быть любые дни: 5 и 20, 7 и 22, 10 и 25, 15 и 30. Деньги придут раньше, если на эти даты выпали выходные или праздники.

Для примера возьмем зарплату 500 000₽ Гросс (сумма до вычета налогов) и посчитаем.

С 1 января 2025 года действует пятиступенчатая прогрессивная шкала налога для физлиц. Если на протяжении года зарабатывать по 500k, то будут применяться 3 шкалы – 13%, 15% и 18%.

13% на первые 2.4 млн.
15% на сумму от 2.4 млн до 5 млн.
18% на сумму от 5 млн до 20 млн.

Таким образом зарплата чистыми будет таять на глазах:
В январе435 000₽ (500 000 × 0.87).
В мае433 000₽ (400 000 × 0.87 + 100 000 × 0.85).
В июне425 000₽ (500 000 × 0.85).
В ноябре410 000₽ (500 000 × 0.82).

Отпускные, премии и больничные добавляются к доходу того года, в котором выплачены, и могут приблизить даты перехода на 15% и 18%.

Ставка НДФЛ 1 января снова вернется к 13%.

Примеры

Посчитаем первую зарплату, если устроились на работу 14 апреля.
Выплаты 10 и 25 числа.
25 апреля будет выплата за период 1-15 апреля.
В апреле 22 рабочих дня.
В первой половине месяца мы успеем отработать 2.
500 000 / 22 = 22 727₽ – стоимость 1 рабочего дня в апреле.
22 727 × 2 × 0.87 = 39 545₽ – размер нашей первой зарплаты.

Посчитаем выплаты за май, если работаем с января.
Полная зарплата за месяц свалится платежами 25 мая и 10 июня и составит 433 000₽.
В мае 19 рабочих дней: 8 – в первой половине месяца и 11 – во второй.
500 000 / 19 = 26 316₽ – стоимость 1 рабочего дня в мае.
26 316 × 8 = 210 528₽ – «грязный» доход за 1–15 мая.
210 528 × 0.87 = 183 159₽ – выплата 25 мая.
4 × 500 000₽ = 2 млн – доход за январь-апрель.
2.4 млн - 2 млн - 210 528 = 189 472₽ - сумма, которая еще облагается 13%.
(189 472 × 0.87) + (100 000 × 0.85) = 249 841₽ – выплата 10 июня.

Поздравляю, вы переучились на бухгалтера.
8431