iOS Makes Me Hate
3.94K subscribers
1.16K photos
169 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Когда закончил трехмесячный курс по SwiftUI
23
За что увольняют бигтехи

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

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

Увольняют всегда самых бесполезных и невыгодных. Главные причины:

1. Нет прибыли или перспектив у продукта. Это стандартная тема стартапов или экспериментальных продуктов в бигтехах.

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

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

2. Иди в небольшие команды, но с перспективой быстрого роста. Так и продукт будет расти, и ты вместе с ним. Если ты идешь в переполненную команду, то есть риск "оптимизации ресурсов" и будет сокращение всех, независимо от скилла.

3. Увольняют тех, кто не думает о прибыли или стоимости. Любая коммерческая разработка требует коммерческого мышления. Любой код, который мы пишем, должен либо приносить деньги, либо экономить.

Алгоритмы, на масштабах крупных компаний, сокращают миллионы долларов. Систем дизайн — ускоряет чтение и поддержку.

Бизнес не любит леньтяев, кто жадностью выжимает бабки и дает посредственный результат. Также бизнес не любит тех, кто делает "идеальный", но бесполезный код, распыляя свои ресурсы на неэффективные вещи.

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

4. Увольняют тех, кто не развивается и делает минимум. Эффективность — это относительная вещь. Чаще всего увольняют тех, кто слишком засиделся на одном месте. Джун, который долго растет. Сеньор, который начал отставать от других сеньоров или даже мидлов.

Программирование — это конкуренция. Всегда нужно изучать что-то новое и уметь адаптироваться.

5. Иди туда, где твоя работа будет полезная. Да да, довольно таки очевидный совет, но невсегда. Часто бывает, что найм происходит бессознательный и по инерции. Например, команда с упором на бэк, просто так нанимает мобильного разраба, для которого нет задач. Просто потому что так требует регламент или были планы на пару кварталов.

А если нет задач, то нет развития и повышений по зп. Что вероятней, может привести либо к твоему т-шейпингу, либо к увольнению.

А какие советы при выборе компании вы знаете?
104
This media is not supported in your browser
VIEW IN TELEGRAM
🌿 UPGRADE

Начал тренироваться в ютуб и видео

Coming Soon
Please open Telegram to view this post
VIEW IN TELEGRAM
3242
This media is not supported in your browser
VIEW IN TELEGRAM
Кратко о всей системе найма и что ищут крупные компании
157
💎 Перевод книги "Как расти мобильным инженером"

Как жаль, что я не начал читать эту книгу раньше. Сэкономил бы пару лет.

Наше развитие зависит только от нас. Но также важно выбирать среду, где его можно ускорить или наоборот замедлить.

Да да, выбор компании для развития — важнейшая вещь в пути. Она дает нам либо задачи, либо окружение для роста. Главное условие — наличие профессиональной среды для сбора фактуры и доказательства своей инженерности.

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

Например, в первой главе есть советы:
🟣 Искать компании с четким роадмапом развития. Для примера приложил открытый роадмап Авито.
🟣 Искать компании с руководителями, что разбираются в мобилках. Дал коммент, что часто так и есть.
🟣 Искать компании с сильными сеньорами.
🟣 Не быть самым умным разрабом в маленьком пузыре

Такие и другие советы до сих пор актуальные и не стоит их игнорировать.

💎 Полный доступ можно получить тут
Please open Telegram to view this post
VIEW IN TELEGRAM
114
🌿 Юнит-тест закрытого модуля аналитики

Тестирование кода — это обязательный навык любого высококлассного специалиста, так говорил гугл в своей книге. Такие требования во многих крупных компаниях.

Пару лет назад в авито я занимался поддержкой utility модуля. В нем почти не было UI, а сохранять код целым было необходимо долгое время. Делать ежедневные прогоны руками тестировщика невыгодно, поэтому нужно было обкладываться юнит-тестами.

Тот опыт и послужил основной к моей статье про юнит-тестирование.

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

Набросал в скриншотах. Делитесь что бы улучшили.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
133
🌋 Новый сборник в ноушене: Юнит-тесты

Следом сразу публикую новый сборник для подготовки к собесам:

🟣Разница между Spy и Mock?
🟣Как писать юнит тест для многопоточного кода?
🟣Критерии хорошего юнит-теста?
🟣А также еще другие вопросы

🌿 Этот и другие сборники можно найти тут
🧬 Ознакомиться с другими сборниками тут
Please open Telegram to view this post
VIEW IN TELEGRAM
97
Астемир не перестает разносить и задавать стиль
322
Forwarded from Polymorphic Blueprint (Aѕtɛmiɾ)
Media is too big
VIEW IN TELEGRAM
#metal #advancedui

Metal in Action: Countdown Button

Опять кнопка, но это уже без машины состояний (state machine), но на Metal. Концептуально эффект и компонент построены по следующему принципу:

1️⃣ Шейдер оперирует хеш-функцией для генерации псевдослучайных чисел от 0 до 1. Используется для введения случайности в последующую функцию шума
2️⃣ Генерация Perlin noise - вид градиентного шума на основе 2D координат. Используется для генерации плавных вариаций толщины и цвета линии
3️⃣ Фрактальное Броуновское движение (FBM) или функция, заданная на конечном интервале и равная нулю вне его, которые включают кусочно непрерывные функции, удовлетворяющие условию роста. На практике позволяет обьеденить несколько слоев шума для создания органически выглядещего фрактального узора
4️⃣ Обьеденеие Perlin noise и FBM для рендеринга сегментов кривой
5️⃣ Финальное преобразование и масштабирование UV координат учитывая стиль, скорость, дисперсию, плотность и цвета линий и последующее их обьеденение в одно изображение

Все это стичается (shader stiching) в финальный шейдер, который прокидывается к UI компоненту, конфигурируется и начинает свой жизненный цикл. В случае UIKit это требует чуть большего количества кода и работу с CoreAnimation слоями, а в случае со SwiftUI все оборачивается в шейдерный модификатор (shader modifier, iOS 17+)

Небольшие артифакты/фризы в видео это комбинация захвата видео, рендеренга и сжатия телегой


🏛 Polymorphic Blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
2833
Подборка материалов для собеседований

Я много раз говорю, что материалов в сети для подготовки достаточно. Но появилась другая проблема — нет систем рекомендаций.

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

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

Я как жук-говновоз — роюсь в куче мусора и ищу золото, фильтруя сквозь свой опыт и опыт доверительных лиц из комьюнити.

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

🟣 Электронная книга со всеми советами по прохождению собеседований
🟣 Плейлист разборов структур данных и алгоритмов
🟣Топ 400 литкодовских задач
🟣Советы по интервью на алгоритмы
🟣Курс по систем дизайну от Arslan Ahmad

Курсы по поведенческим интервью

🟣https://techready.in/courses/mastering-behavioral-interviews-a-comprehensive-guide/
🟣https://www.designgurus.io/course/grokking-behavioral-interview
🟣https://www.youtube.com/c/JeffHSipe
Please open Telegram to view this post
VIEW IN TELEGRAM
1283
Карьерный рост или профессиональное развитие?

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

Например, одна из глав называется "Professional Growth Versus Promotions". В моем менталитете часто была такая связь: если ты растешь профессионально — значит растешь карьерно. Но это ошибочно. Особенно ярко это подсвечивает заголовок и опыт многих разрабов. Мы редко задумываемся, что это две абсолютно разные вещи, которые по-разному определяют нас как экспертов.

В первых главах автор щупает очень тонкую материю, которую часто я поднимал в своих рассуждениях. На чем лучше фокусироваться: на должностях и званиях или опыте и скилле?

Ему понадобилось семь лет на одном месте, чтобы стать сеньором. Он очень сильно прокачался экспертно: потрогал много технологий, углубился в сложные задачи. Когда же его коллеги делали в разы меньше и получали повышения проще.

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

По мнению автора повышение — это бюрократия. Избыточная фокусировка только на должностях приводит:
🟣Невозможностью сменить компанию на текущую должность
🟣Получить отзывы, что вам не хватает навыков для текущей должности

Автор советует определить что для вас важно.

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

Или же профессиональный рост, где должность можно получить при смене работы, а навыки так легко не достаются.

🌿 Подробнее почитать перевод книги вместе с комментариями можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
743
Media is too big
VIEW IN TELEGRAM
Мы за деньги и мозги

Ставь лайк, если тоже эволюционируешь по рилсам ноунеймов из инсты
1442
Сколько обычно зп джуна?

В догонку последним двум постам, о том что же определяет экспертность, поговорим про вилки.

Часто разрабы думают, что их скиллы определяет вилка. И что условный джун это где-то 100 тысяч максимум, мидл 150 тысяч, а сеньор от 200к. Но это ошибочно. Возможно корни идут с древнего стереотипа «цена означает качество», который используют маркетологи.

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

Зачем так сделано? Мотивация для роста, поддержка эффективности, контроль роста стоимости по грейдам. Отсутствие эффекта домино при изменении вилок. Более детальное регулирование стоимости. Да фиг его знает. Причин использовать такую модель очень много.

Только вот главное заблуждение, что у всех грейдов есть четкая граница. Этим часто любят пользоваться всякие сообщества накрутчиков, думая что обходят систему. Но скорее показывают отсутствие понимания самой системы.

Ответ на вопрос, показывают ли деньги твой скилл, как и титулы, — нет

(на скрине условные вилки)
73
📺 Новый метод оплаты подписки для эксклюзивного контента

Много людей жаловались на бусти:
- сложности в оплате
- отмены подписки
- ужасный UX/UI
- невозможность использовать тем, кто заграницей

Разрабы бусти, вас что, накрутчики делали?

В этом вопросе я обещал помочь и вот увидел возможность.

Если ты хотел получить контент, но не нравился бусти, тыкай сюда ➡️
https://t.iss.one/tribute/app?startapp=s6L2
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Какой продукт делали накрутчики опыта?

Рейтинг худших мобильных приложений по мнению комьюнити (без обид)
Anonymous Poll
23%
Boosty
29%
Viber
23%
Wildberries
7%
Сбер Онлайн
20%
Сбермегамаркет
13%
Яндекс маркет
9%
Яндекс Го
4%
Самокат
9%
Freedom Finance
24%
Другое
🚘🚘 Задача на проектирование: создание кастомного Notification Center'а

В ноушене продолжаю наполнять фреймворк задачами для систем дизайна и проектирования.

Создание своего Notification Centr'а, наверное, одна из самых популярных задач.

В ней требуется:
🟣 Знать паттерны Singletone и Observer
🟣 Понимать как добавлять и удалять наблюдателей
🟣 Задумываться о потокобезопасности

💎 Получить доступ к этой и другим статьям можно через бусти или трибут
Please open Telegram to view this post
VIEW IN TELEGRAM
5