Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Як Android Developer роботу на 6к+ шукав

Вриваюся у пʼятницю з темою грошей. По стопах недавнього посту вирішив описати свій процес пошуку роботи. Якось у вихвалянні своїми зарплатами добре чутно фронтендерів та девопсів, а мобільна сфера мовчить, наче в ній нічого не змінилося. Ну, може, і правильно роблять 🙂 Бо спойлер: варіантів на 12к мені не траплялося.

Ввідні дані: Android Developer з 5 років досвіду + паралельно рік Flutter. Вакансії з кросплатформою цього разу принципово не розглядав, хоча кілька пропозицій було. Перевів профіль на Djinni в стан активного пошуку близько 16.11, де поставив очікування 6000$ (маючи на увазі net). Менше не розглядав. Також відповів кільком рекрутерам в LinkedIn, де одразу ж оголошував свої зарплатні очікування. Загалом, більше ніде не шукав. Цього разу спрацював саме LinkedIn. Аутсорс загалом ігнорував, в першу чергу розглядав продуктові вакансії, плюс кілька варіантів аутстафу.

Говорячи про адекватність запитів: на Djinni всі одразу бачать зарплатні очікування, тому там «втрати лідів» через гроші не було. На час закриття профілю я був у топ 20% за кількістю отриманих пропозицій серед усіх Android-девелоперів в активному пошуку. Висновок: для ринку зараз це цілком обґрунтовані очікування. В LinkedIn близько у половини пропозицій, які обговорював, стеля була в районі 5500$.

На жаль, рекрутери все ще дуже люблять розмовляти. Якщо шукати роботу, ніде не працюючи, то з цим можна жити. Та навіть 3+ дзвінків по 20-30 хвилин легко пустять продуктивність робочого дня під укіс. Старався по можливості планувати їх якнайменше. З одним рекрутером (за що йому красно дякую) все вирішили письмово аж до етапу технічної співбесіди, інші хотіли поговорити. 1-2 рази це було прямо по мобільному звʼязку, всі інші рази по відео. Загалом, поспілкувався десь з 10-12 рекрутерами голосом. Не сказати, щоб прямо розмови не мали жодного сенсу, але без них, звісно, було б краще. У 80% випадків перевіряли англійську, на решту позицій вона не вимагалася. В мене щось типу Upper-Intermediate, американці за 3 роки роботи з ними не жалілися, всім рекрутерам цього теж вистачило. Хоча питання для «перевірки» у всіх однакові: після 1-2 разів можна відповідь вивчити як віршик і розповідати одне й те ж саме.

На технічну співбесіду домовився з 10+ компаніями, побував на 7-8 (всього одна технічна співбесіда в європейську компанію була англійською). Деякі співбесіди на менш цікаві позиції скасував, коли отримав достатню кількість привабливіших. Десь проект був 100% Java, у когось дейлі після 18:00.

По етапах все індивідуально. Найбільше пройшов в одному аутстафі — дзвінок з рекрутером, технічна співбесіда зі сторони компанії, технічна співбесіда з купою людей зі сторони клієнта, і мало би бути ще HR-інтервʼю. Найменше було в одному продукті — рекрутер, технічна співбесіда й офер.

Перший офер прилетів 30.11, через пару днів другий, який я і прийняв. Ще у 2-х місцях вдало пройшов технічну співбесіду і був, так би мовити, на підході до оферу. Загалом активний пошук зайняв трохи більш як 2 тижні. Далі щось шукати для себе сенсу не побачив. Радикально кращих пропозицій, ніж ту, що прийняв, за цей час не було, всі були в рамках 6000-6500$ net. Думаю, щось на 7000+ можна спробувати знайти, особливо якщо розширити горизонти пошуку на інші платформи, але пошук займе помітно більше часу. Та й ціллю було не максимізувати дохід, а знайти якийсь цікавий продукт і не продешевити.

2 технічні співбесіди завершилися відмовою. Щодо одного продукту я жалкую, мені здалося, що там має бути цікаво. Щодо другого я навіть радий, що не пройшов. Інтервʼюери були якісь пихаті, і здавалося, що перед ними лежить шпаргалка: «Як завалити кандидата за 100 простих запитань». Найдивніше питання я почув саме від них: «Вам треба зберігати 50 булеанів максимально ефективно, і не можна використовувати колекції. Як ви це зробите?» Одразу згадався епічний, хоча й елегантний костиль з використанням BitSet і файлової системи в якості БД, про який говорилося на одній конференції , але що хотіли від мене почути, я так і не зрозумів. Можливо, про побітові операції.

Здалося, що у більшості однакове джерело стратегії проведення техспівбесіди. Майже щоразу підійматися наступні питання:

  • мультитрединг в Java на рівні голих Thread-ів, а також захід з боку Android у вигляді Looper/Handler/MessageQueue; хтось трохи говорив про Executor-и;
  • synchronized/volatile в різних комбінаціях, іноді доходили до Semaphore і ReentrantLock;
  • колекції, в основному ArrayList vs LinkedList, реалізація HashMap (дехто заходив зі сторони контракту equals/hashCode) і Big O оцінка операцій з колекціями; також дехто згадував і про синхронізовані колекції;
  • життєвий цикл Activity, від базового розуміння до всіляких каверзних штук;
  • FragmentManager — чомусь всіх дуже цікавило, навіщо треба всі ці commit/commitNow/commitAllowingStateLoss/commitNowAllowingStateLoss;
  • в чому різниця invalidate vs requestLayout у View, саме в такому формулюванні;
  • робота у фоні — сервіси та в якому Thread-і вони за замовчуванням запускаються, WorkManager і таке інше;
  • Різниця між MVP, MVVM, плюс MVI, якщо інтервʼюер про нього в курсі.

Питання про DI, корутіни, Rx та про те, як я вирішував ті чи інші практичні проблеми, зустрічалися набагато рідше. А щось типу System design interview у вигляді обговорення архітектури клону якоїсь популярної програми взагалі було лише в одному місці.

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному7
LinkedIn

Найкращі коментарі пропустити

Периодически мониторю рынок зп методом прохождения собесов и вот что я заметил — если нужно клепать обычные аппки, типа мониторинга качества сна или какие-то заметки, то потолок зп — 6500К, а вот если нужна узкая или специфическая экспертиза — там потолка вообще нет. А вот по стеку технологий тут вообще мрак — на 90% технических собесов мне интервьюеры не могли объяснить причини использования, например, корутин или дагера, при этом во всех требованиях эти технологии заявлялись как мастхев. Из этого я сделал вывод что большая часть всех современных требований — не более чем последствия неправильно выбранных архитектурных и технических решений или просто желание техлида попробовать на проде новую фишечку или рюшечку, и если принимать оффер на такой проект, то нужно быть готовым к тому что этот проект франкенштейн из разных библиотек и фреймворков, которые и вносят большую часть багов в проект. Кстати, это может быть основной причиной почему ищут дополнительного разраба или почему старый разраб ушёл, так что стоит задуматься заранее :)

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Помітив, що в деяких компаніях такі опитувальники з листочка ідуть під запис, і здебільшого це хороший сигнал. Якщо ви не попадаєте у відповідь з їх «підручника», але є розуміння теми і підходів, хтось в адекваті може це прослухати і дати добро на наступний етап, не дивлячись на кількість мінусів, що наставив вам незрілий biased інтерв’юер (це як з питанням про булеани).

Что такое настоящие деньги для действительно профессионалов, не про Фаанг и не про жалкое уезжунчество.

www.linkedin.com/...​4608,6873644001921265665

хорошая зарплата в компании напрямую — это 12-15К в месяц , сравните со своей . подумайте . вы не представляете как это делится водоразделом . Или вы там или не там . Вы не там судя по щенячему восторгу что вас ищут . Все ищут , кидают инфу , но там не из чего выбирать . Я все обращения с советскими фамилиями , на русском/украинском — просто не спрашивая о цифре игнорирую . Несколько раз обижались , пришлось в цифрах все объяснять . что , где , почем , какая пищевая пирамида . рекрутеры сами ее не понимают . для них это «много» . а просьба от «иностранной компании» у них вызывает щенячий энтузиазм . типа Заграница .

шота пішло не так і ссилку відключили

да, я проверил оригинальный пост, и автор коментов почистил их все в ветке. (

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

Там был срачик между, как заявлено, очень опытным чуваком с примерно 20 летним опытом, который специализируется на высококвалифицированном и дорогом консалтинге. И новоиспечённом синьоре, который радуется, что типа рекрутеры бегают за украинскими ИТ-шниками. Опытный чел напоминает, что даже сейчас за хорошие вакансии на удалёнку вне Фаангов идёт смертный бой мастодонтов со всего мира. И действительно хорошая з/п — это от 12 тыс у американцев. А не та шелуха, что мы обсуждаем 6-7 тыс. gross-net.

от 12 тыс у американцев

Якщо жити в США з 12к gross і у нас 7к gross з ФОПівськими 5% податків, то тут ще треба думати, кому буде комфортніше. Позицій на 12к, працюючи з України на США, лічені одиниці. За них не те, що боротьба, тут чисто пощастити має)

В срачике на Линке была речь о мировых remote first конторах, думаю, и работе в них по нормальным, американским рейтам не-Фаангов. И тот чувак, что удалил посты, утверждал, что нужно не на доу/джинни искать работу от тех рекрутеров, а самому долбиться к иностранным рекрутерам. Другое дело, как писали тут ранее, некоторым западло работать в чужом часовом поясе годами и тратить огромные усилия на создание своего международного имиджа/портфолио, по типу деятельности Кожаева, мимикрировать под типа американца.

Пока что то, что я вижу, у нас всё ещё продуктовые ищут на своё легаси волшебников для разгребания своих говн за 7к gross, т.е. это примерно аналог планки хард-скилов на 12-15 в американских remote-first конторах. ( Может меня пригласят на отечественный проект с нуля с хорошим финансированием, но не в продукт.

Ну, таких реально мало. Навіть Gitlab локалізує ЗП. З компаній, що remote-first і по одному рейту платять усім, я хіба Bootcamp можу згадати. І то недавно там був кіпіш, що третина працівників звільнилася. Історія темна, але репутація глобальна компанії трошки підмочена. Так що я би поки побоявся туди іти)

Может и не remote-first, это я как версию предложил. Те, что нанимают из любой точки мира, а не ты сам их убедил, что достоин з/п в 12к-15к — ИМХО, это так или иначе вариации галеры Crossover for work. Т.е. нужно предлагать что-то редкое, ценное, я сам в массовом направлении работаю, так что хз, что это может быть.

Лет 5-6 назад тут, на Доу, я участвовал в дискуссии с теперь канадским мигрантом Майком Горчаком. Он как раз писал, что нужно портфолио, какие-то регалии, дать процентов 30 скидку от рейта местного офисного либо быть на голову выше его. Но, как видим, Горчак всё же в этом амплуа долго не удержался и мигрировал.

З мого власного досвіду, вам скоріше запропонують релокейт, ніж ремоут контракт з відповідною зарплатою.
$40/h — це «магічне» граничне значення для аутсорсу, вище за яке уже вважається ризиком, адже компанія теж інвестує в людину і потрібна гарантія, що він не звалить через місяць.
Ну але це так — «думки в голос». Просто скидається на то, що для мобільної розробки (тред же про Android?) маркетинг значно важливіший від самих технологій і дуже часто під капотом у додатку буде суцільне пекло, а всі гроші підуть на дизайнера та рекламу.

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

$40/h — це «магічне» граничне значення для аутсорсу, в

магічне число для контрактора в тій же Німеччині 60EUR h
так що думайте

У випадку Німеччини мені лише релокейт пропонували. Але це не дуже репрезентативно, бо вибірка дуже мала. Думаю, якщо оббити пороги десятка (десятків?) зарубіжних компаній то зрештою і знайдеться 60EUR контракт з України.

Просто Індокитай демпінгує страшне і треба на їх фоні якісно виділятись.

європейським менталітетом і 1 год. різниці в часі

і шо?
якщо в штаті, то податків менше?
для бізнеса цікаво загальна вартість працівника:
офіс, ПК, інтернет, соцвиплати, податки на фонд з.п. і т.д.

а тут тобі контрактор, і вуаля, головняк з плечей, хай він собі думає, чи 45% податків у ЄС, чи 5% вна Україні, чи 19% в Польщі, чи 10% в Болгарії, 0% в Грузії.

нас всё ещё продуктовые ищут на своё легаси волшебников

мій отвєт їм: шукаєте волшєбніка — візьмете сказочніка

м 6-7 тыс. gross-net.

так і тих не дають, не в бюджеті, хД

The 18 highest paying developer roles in 2021
www.infoworld.com/...​eloper-roles-in-2021.html

Software and applications manager: $142,500-$166,250
Mobile applications developer: $137,250-$163,750
Senior software engineer: $135,250-$162,250
Software engineer: $124,500-$147,250
Software developer: $122,250-$142,750
Developer/programmer analyst: $112,500-$133,750
Mainframe programmer: $70,250-$87,500

Это своего рода «звоночек» тем, кто финансово планирует работать до старости, лет до 70-ти, на легаси. Как видно, за хардкорное легаси реально платят примерно в 2 раза меньше.

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

що хотіли від мене почути, я так і не зрозумів

Цим можна описати увесь український HR: вчитися ми не хочемо, хочемо десь прочитати «правильну» відповідь (рівня шкільного підручника) — і надалі питати «вгадайте, якими словами написано у нашому підручнику». І не тільки ж в HR, в технарів те саме. Тобто, та сама відсутність HR освіти, яка проявляє себе, щойно їм надали право на «синдром вахтера».

А якщо на конференції були — то вже ховайся в жито. Особливо коли то «16-річні сеньйори», і були лише на 1-2, і звісно ж тепер мають питати у всіх саме те, що говорилося на конфі, і це є новою реальністю та єдино можливим майбутнім — а зовсім не перевзуються та за півроку розповідатимуть чому новий ХулаХопJS в 100 разів краще за новий безнадійно застарілий (на місяць) ХулаХупJS.

Периодически мониторю рынок зп методом прохождения собесов и вот что я заметил — если нужно клепать обычные аппки, типа мониторинга качества сна или какие-то заметки, то потолок зп — 6500К, а вот если нужна узкая или специфическая экспертиза — там потолка вообще нет. А вот по стеку технологий тут вообще мрак — на 90% технических собесов мне интервьюеры не могли объяснить причини использования, например, корутин или дагера, при этом во всех требованиях эти технологии заявлялись как мастхев. Из этого я сделал вывод что большая часть всех современных требований — не более чем последствия неправильно выбранных архитектурных и технических решений или просто желание техлида попробовать на проде новую фишечку или рюшечку, и если принимать оффер на такой проект, то нужно быть готовым к тому что этот проект франкенштейн из разных библиотек и фреймворков, которые и вносят большую часть багов в проект. Кстати, это может быть основной причиной почему ищут дополнительного разраба или почему старый разраб ушёл, так что стоит задуматься заранее :)

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

А навіщо використання базових речей пояснювати?) Це як на на Java проекті питати «чому ви використовуєте Spring?» Можна придумувати альтернативні костилі, але ці речі — стандарт де-факто.

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

использование любой технологии или подхода должно быть аргументированным

тільки не треба доводити це до абсурду 🙂 обгрунтовувати використання стандартного підходу до асинхронності з мови програмування, якою написано проект, не потрібне. Коли в JS хтось юзає проміси, перед тим, хто приходить на співбесіду, ніхто не пояснює, чому вони використовуються. Це само собою зрозуміло.

А разве в джс еще асинк/эвейт не подвезли?

Підвезли. Це ж все одно спеціальний синтаксис для роботи з промісами

await же не умеет ничего, кроме навешивания then

только потому что это используют все остальные.

Это, кстати, не «только потому что»
Из неявных связей:
* Больше информации в свободном доступе (обсуждения, костыли, проблемы, решения)
* Больше людей знакомы с этой технологией/подходом до онбординга
От чего уже можно взять производные:
* Больше пул потенциальных кандидатов, которые уже знакомы с этими штуками на боевых примерах
* Быстрее онбординг и процесс найма

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

Потому что использование любой технологии или подхода должно быть аргументированным

В случае, если в твои задачи входит их выбирать, а не пилить на уже выбранном.
Я могу обосновать и Котлин, и Корутины, и Даггер/Хилт, и МВВМ. Джуну/миддлу надо просто уметь этим пользоваться.

Тогда ответьте мне на простой вопрос — зачем нужен Dagger/Hilt на проекте?

Ох уж ці техліди—анархісти. «Dependency injection — ракова пухлина розробки, давай створення залежностей по місцю використання!»

Чтоб не писать тоже ручками

зачем нужен Dagger/Hilt на проекте?

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

А в чем геморрой? Юзай мокито.
Дагер нужен чтоб все в говнокод не сказывалось и была структура у проекта

Дагер нужен чтоб все в говнокод не сказывалось и была структура у проекта

То есть, ты хотел сказать — чтобы где-то можно было посмотреть что и от чего зависит.
Для этого нужно придерживаться архитектурных паттернов и не усложнять граф зависимостей без необходимости.
Если у какого-то объекта много зависимостей и вы хотите структурировать их даггером, проблема не в зависимостях, а в God Object

Когда у тебя сотни объектов которые могут инжектится в любых комбинациях то без дагера ни куда. Скоупы разбитые на компоненты это все надо будет писать с нуля. Но зачем если есть даггер

Если есть сотни объектов с взаимными зависимостями — это уже большой вопрос к тем, кто эти объекты наплодил. Исходя из такого утверждения — даггер это просто костыль, который помогает не свихнуться (и то не факт). Может проще отрефакторить эту часть? Дальше же будет только хуже.

Что отрефакторить? Сделать с 5 объектов 1? Ты принципы солид читал?

Во-первых — солид это не аксиома, во-вторых — солидом надо пользоваться с головой, иначе получится код для которого понадобиться даггер, в-третьих — я нигде не писал что нужно из 5 классов сделать 1 — потому что это вообще никак не получится поддерживать.

Ну, в цілому зрозуміло, в ООО «КАРТСИС» іти не варто, цікаві там техліди :)

Мы тут обсуждаем проблему или переходим на личности?

Та проблеми тут нема, це ти прийшов і її створив на рівному місці 🙂

Я попав один раз на проект, який розробляв товариш, який теж на дух переносив корутіни і даггер. Було сумно. І це не дивно, бо вирішити проблеми, які на фултаймі роками вирішували деви даггеру і котліну, окремий індивід на більш-менш обʼємному проекті не осилить. Так що такі проекти я обходжу стороною, от і все. Ти маєш право так лідити проекти, я маю право обходити їх десятою дорогою)

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

Тоесть что бы завелись нормально юнит-тесты — надо основной код рефакторить? Не слишком ли много чести для того, что должно быть атомарным и по сути является поддержкой проекта? Может проще писать простые методы и валидировать данные не в тестах?

что бы завелись нормально юнит-тесты — надо основной код рефакторить?

Это почти всегда так.

Не слишком ли много чести для того, что должно быть атомарным

Основной код тоже должен быть атомарным.

по сути является поддержкой проекта?

А поддержка проекта — это не важно?

Это почти всегда так.

Так может тогда проблема в юнит-тестах?

Основной код тоже должен быть атомарным.

Не спорю, но его атомарнасть должна определяться архитектурой, но никак не решениями типа даггера.

А поддержка проекта — это не важно?

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

Так может тогда проблема в юнит-тестах?

Для того, чтобы код Андроид приложения можно было покрыть юнит-тестами, он должен соответствовать ряду критериев. Проектов, которые сами по себе им соответствуют — примерно ноль. Зависимости должны быть организованы определённым образом, иначе логика окажется там, где её тестами будет не покрыть.

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

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

А навіщо використання базових речей пояснювати?) Це як на на Java проекті питати «чому ви використовуєте Spring?»

Ну, Spring -то таке, а до нього (до Джава-розробки + сапорт + багфiкс де треба знати продукт) ще треба практичнi навички Automation testing (Selenide\Selenium), Dev-ops (опенстек — тераформ ), пiдтримка артiфакторi з купою докер-iмiджiв для 25 гiлок на рiзних кастомеров. Це те, що я зараз реально маю й не дуже радий такому стеку.
Як на мене, automation testing та dev-ops — це окрема царина.
I коли вакансiя зразу про таке, то схоже там проблеми з проектом — нема розподiлення повноважень щоб типу зекономити бюждет та полекшити менеджмент.

I звicно скрiзь костилi, бо «в 7-ми девiв опенстек без нагляду», Автотести кривi, продукт вивчати (щоб добре розумiти що до чого) нiколи й не вперлось, лекше звiльнитися та пошукати щось притомне.

Вам треба зберігати 50 булеанів максимально ефективно, і не можна використовувати колекції. Як ви це зробите

Использую int50 и побитовые сдвиги

і не можна використовувати колекції

Как только появляется подобное условие — можешь считать что человек, это спрашивающий, не имеет образования как такового, а если и было, давно затёрто бюрократией. Потому что это задача на «примените именно то, что нам где-то рассказали есть единственно верно».

У меня тут бы ещё один вопрос появился: а откуда эти 50 boolean поступили к нам?

Второй вопрос: Чем вызвана необходимость «максимальной» оптимизации. Все же обработка 50 булинов на современном железе «максимально» эффективно в контексте мобильной разработки — это копейки по производительности/памяти. Так что очень интересно, что именно вызывает требование оптимизировать быстродействие работы именно с ними

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

С родни баяна www аля как сложить два числа- используйте jquery, ведь обработка на современном железе это копейки... :)

Да тут скорее в другом проблема, как бы хранение 50 булинов в одном лонге — ок. 50 булинов в коллекции при этом (относительно лонга) все еще статистическая погрешность при том объеме памяти, который выделяется приложению (оперативной или на диске).

Есть варианты, когда у тебя все ОЗУ доступное приложению забито. Но опять же в этом случае оптимизации начинаются не с флагов (возможно я узко смотрю, но 50 булинов в лонг — это для меня выглядит просто как набор флагов). Исторически это имело смысл. Сейчас, как я ниже написал, уже лет 10 даже разработчики платформ не заморачиваются с этим. Разработчикам клиентского же приложения (или даже библиотеки) туда стоит проваливаться когда другие варианты исчерпаны, или, возможно, если эти флаги постоянно копируются прям чуть ли не каждый такт. Но тогда опять же это не единственный вариант оптимизации. В таком случае флаги помещаются в отдельные таблицы.

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

Ну например вы передаете 50 параметров на BLE устройство...

Да, это и моя лучшая догадка. Я ниже писал такой вариант :)

Новый тип intX. Каждый бит хранится в отдельном элементе массива.

Коллеги, ссылка ниже будет офтопом.

Когда в очередной раз представители перекупов, нищие мамкины стартаперы/бизнесмены с Запада будут разыгрывать перед вами сценку с расширенными от ужаса глазами, услышав ваши зарплатные ожидания. И толкать речь, что с такими ожиданиями они пойдут нанимать в Индии, Китае, Вьетнаме. Вспомните эти ссылки с короткой версии документалки декабря 2021 года от сингапурского государственного канала CNA про воспитание детей в китайских мегаполисах Tier 1, 2.

1) Некий IT-работник жалуется, что расходы на воспитание такие, что для 2-го, 3-го ребёнка его з/п нужно удвоить, утроить, таймкод: youtu.be/orM0xQJsIew?t=105 .

И, образно говоря, последний гвоздь в гроб плачущих нанимателей-нищебродов
2) В Шанхае и Пекине

the average worker earns about 20 000 yuan or $3000 a month

youtu.be/orM0xQJsIew?t=117
Это по текущему обменному курсу, который в США считают заниженным. Непонятно, конечно, это net или gross; да, это самые дорогие мегаполисы Tier 1 Китая, с просторными семейными квартирами по $800 тыс. — 1 миллиону баксов. Но это средняя з/п даже не работников ИТ!

IT-работник жалуется, что расходы на воспитание такие, что для 2-го, 3-го ребёнка его з/п нужно удвоить, утроить, таймкод: youtu.be/orM0xQJsIew?t=105 .

китайський баскетбол — це як? вони там під 2метри збираються рости?
там структура витрат — уппер мідл клас, ну-ну

Судя по той документалке расходы на воспитание ребёнка в Tier 1 — просто конские, Киев отдыхает. Можно, конечно, где-то в глубинке воспитывать как животное, занедорого. Меня в той документалке, в полной версии, впечатлил кадр из хроники 30-40 летней давности, как селянин на велике тянет крытый прицеп с маленькими детьми, а там их штук 10 реально сидит. ))

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

Получил 6к гросс с першого же собеседования, туда и пошел. Собеседование не было слишком тяжёлым, но и назвать лёгким тоже сложно: на английском, лайвкодинг присутствовал, ни к тому ни к тому не привык, и местами из-за этого тупил. На фоне предыдущей работы вышло +1500, потому особо долго не думал.

Чет каждый раз когда я думаю, что подобрался к потолку и урвал неплохую сделку, появляются подобные топики, которые заставляют думать, что продешевил. Шо, опять? Ради +500, очевидно, менять работу не буду, но червячек точить начинает.

Ради +500, очевидно, менять работу не буду, но червячек точить начинает.

Та ладно, розслабся, всього +300) У мене за останні півтора роки відбулося зростання ЗП x2, і все одно щоразу, як заходжу на dou і читаю коментарі, виявляється, що всі вже давно отримуються +2к і треба терміново бігти шукати, де би пропампитися до нової планки. Тож вирішив найближчим часом розслабитися і отримувати задоволення, а в теми, що стосуються грошей, не заходити.

І сам таку тему створив, да.

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

Кстати европейцы начинают придираться к интервалам работы в 6-8-9 месяцев.
Но именно у них самые скромные рейты.

У меня контрофер был принят, а так я уже 5 лет в одной конторе/аккаунте работаю. Это уже может вызывать подозрения.

і?
кажеш їм в мене консалтинг, а ви міряєте як найманого згідно КЗзП

Ради +500, очевидно, менять работу не буду, но червячек точить начинает.

Можно сходить попробовать — если дадут оффер, будете уже решать.
Может там будет серая сфера, или работа с РФ/Азией не дай Б-г
А может все хорошо будет.

А что с Азией не так? Никогда не было опыта, просто интересно

1. dou.ua/...​rums/topic/35689/#2290103
2. Соковыжималки
3. Общение на повышенных тонах
4. Отношение: «я — господин, ты — холоп»
5. Качели с настроением. Ощущение, что общаешься с девочкой-эмочкой: то она светится и души в тебе не чает, то грубо отталкивает и угрожает броситься под машину прямо сейчас.
6. Странная мораль: могут подставить, могут слово дать — и злостно забрать. Больше к индусам относится.
7. Странное понимание личных границ.

На наших менеджеров дерьма выливается в разы больше. Начинаются игры «любим — не любим», «заплатим — не заплатим», из-за чего все причастные от рядовых сотрудников до СЕО небольшой компании могут поседеть и заработать какой-то жёсткий невроз.

ради 500 и не стоит, выставляеш вилку 8K и пассивный(или активный) поиск на джине и Li, и ждеш своего часа, а он прийдет судя по тенденциям нашей индустрии...

В Линке постят поиск Джава синьоров на 10к

«Вам треба зберігати 50 булеанів максимально ефективно, і не можна використовувати колекції. Як ви це зробите?»

Боже, яка мерзота придумала це питання....

Я подозреваю, что от автора хотели услышать про bit field на лонге. Вполне норм вопрос на базовые знания по computer science

Да вот только подозревать и остаётся

Скорее всего так и было. Но это ж не максимально эффективный способ :)

сініор тест аутомейшн інжінірам нє понять

Спасибо, но моё мнение, в ноябре-декабре 2021 надо целиться на $6500-$6800 net за опытного, но заурядного спеца (без уникальных, редких навыков/опыта).
Заодно и с рекрутерами время сэкономится, и собеседований меньше. Может даже есть смысл объявлять рекрутеру, что ищешь именно единственную работу, без «зайчиков», поэтому такая сумма. )

Ну, я і написав:

Думаю, щось на 7000+ можна спробувати знайти, особливо якщо розширити горизонти пошуку на інші платформи, але пошук займе помітно більше часу.

Серед варіантів був на 6500 net. Але це 1 із 7. Виглядає це, що з такими запитами пошук затягнувся би на місяці. Тим більше, що я хотів не просто конкретну суму, а й цікавий проект. Займатися таким затягнутим пошуком не було ні бажання, ні, взагалі-то, часу, до 2022 треба була нова робота :)

Поиск в качестве безработного и поиск индексации з/п — ситуации разные, конечно. Я написал зарплатные запросы чисто в целях индексации. Мне кажется, когда мы пересечём отметку 2022 года, то и суммы типа $7000 gross перестанут быть редкими. Во всяком случае, на рубеже 2020 и 2021 года было именно так — осенью рекрутеры искали ещё по старым ценам, с учётом пандемической коррекции. Перекупы пытались ещё давать оферы по относительно старым ценам в начале 2021 года (при скромных заявленных ожиданиях), но при малейших попятных охотно накидывали с кастомером по 700-800 к первоначальной сумме офера.
Т.е. весной 2022 может быть весьма обидно, когда рекрутеры будут предлагать вилки +500 к поспешно принятому в конце 2021 года оферу.

весной 2022 может быть весьма обидно, когда рекрутеры будут предлагать вилки +500 к поспешно принятому в конце 2021 года оферу

1-2 місяці без роботи, чи +500 до ЗП, що краще?) Ті +500 почнуть в плюс іти через 1-2 роки. Тоді вже знову роботу шукати доведеться з великою вірогідністю.

Дякую! Круто! Треба більше таких історій :)
З датами, метриками, настроєм, критеріями відбіру.
Те що отримав 1+ офер на багато грошей — підкріплює репутацію.
Якщо хтось хоче таке ж розказати, але анонімно — пишіть у редакцію ДОУ Марії Дубініній [email protected] :)

Це зараз не багато грошей

dou.ua/...​articles/who-is-worth-5k
суха статистика каже що >= $5000 у 12% :)

В тій статистиці врахоівані джуни та ХР-відділи.
Практика каже, що влітку аутсорсери відсипали $7k сіньорам, а зараз на Джинні 2 найми по 10К.

зараз на Джинні 2 найми по 10К

Аж 2? Ну, це да, серйозна заявка :)

Статистика Доу говно, выкидывает резюме на 5к и тебе пишет 100 рекрутером. До короны выкидывал на 4к писало 60 человек, на 5к писало 3.

нуу по доу статистика — по текущим зарплатам тех кто сейчас работает на своем месте 1-2-3-5-10 лет
а по джинну — это те кто сейчас работу меняют, поэтому там числа выше

При таких раскладах не меняют те, кто не могут. Или у кого сильно уютное место попалось.

Те кто работает 10 лет на одном месте, в общем случае не способны работать на другом.

Или наоборот, могут видеть последствия принятых технических и организационных решений на 10 лет вперед? :)

А ви нормальну статистику купіть, а не доу де 1.5 землекопа голосують.

там же 13тис свіжеопитаних
де ви більше знайдете з українського ринку IT?

Це зараз не багато грошей

Власне, я в 99 перцентиль і не цілився. Але сказати, що це мало грошей, у мене язик не повернеться :) Я себе оцінюю адекватно.

Та я про Оксану.
Я й не кажу, що 6к — замало. Але й не багато. Як раз на норм сіньора. Для 5 років досвіду геть недурно.

Для 5 років досвіду геть недурно.

У меня при 3.5 годах 6 net :) при 5 годах можно 8 требовать имхо

Добре, що ми анонімуси, можна будь-яку суму сказати, ніхто ж не перевірить

Ты хочешь сказать , что это что-то нереальное? Ну ок, я не убеждаю никого

Я хочу сказати, що за період мого пошуку не було в кого вимагати 8к. Ну і ти ж розумієш, що ЗП не зростає в геометричній прогресії за принципом 1.5 * N, де N — роки досвіду?

Ну конечно на 8к нужно больше времени.
Ну зп может расти линейно как y=1000×N, до 15 лет свободно, если медленнее, то нужно уже что-то предпринимать, но мне больше логарифм нравится

Раньше было 500*years

Ну у меня чуть меньше чем 5, я вот исказл в ноябре новую работу, но вот в период моего поиска, твои 6 нигде и близко для меня не были, хоть я не лоу разработчик хз. Причём искал весьма долго (медленно, неохотно). Да, прилетело сотня предложений, из которых 90 сразу отказал, мб слишком многим отказал не открывая котакты, хз

Никому не надо отказывать.
Сходить на собеседование != успешно его пройти.
Успешно пройти != получить оффер
получить оффер != заинтересоваться им
заинтересоваться оффером != подписать его на эти деньги.

Из тех «предложений», что приходят в первые 2-3 дня — это процентов 70 — лидеры рынка. Я в Линкедине одной рекрутерше с Глобал озвучил пожелания и дал резюме. Она сходила с ним и пришла с ответом, что в Глобале таких компенсаций нет. У меня только в Джинни за 3 недели уже под сотню запросов, это порядка 30 потенциальных цепочек собесов. Но даже из тех 30 процентов примерно половина — это банальный сбор резюме и контактов, так как после этого рекрутер перестает писать через Джинни.
Думаю, за пару месяцев при фул-тайм работе реально пройти 8-10 стандартных цепочек, получив на выходе 1-2 офера.

Ну, серед плюс-мінус «лідерів ринку», скажімо, Intellias одразу кілька проектів з моєю вилкою мав. З трохи менших Akvelon і Avenga. Так що Глобал жметься просто) Або конкретно тобі не хотів давати. Або ти 8к просив)

Деякі з цих компаній до мене стукали з пропозицією однієї вакансії в linkedin, та коли я озвучував очікування, казали, що на цьому проекті вилка менша. Проте пропонували інші, з підходящою оплатою.

Вот, всё верно. Их слишком много, я проводил скрининг (10-30 минут) каждого предложения, которое было в мои скилы (некоторые и JS предлагали). На первые дни это стало моей фул тайм работой — разбирать предложения, а они не переставали приходить спамом. Только единицы давали фидбек и продолжение цепочки в ими же сказанные сроки. Это просто ад какой-то. И при этом всём, я не то чтобы загнул свою цену.

прилетело сотня предложений, из которых 90 сразу отказал

Це, по-моєму, ключовий момент 🙂 Ти ж, очевидно, і зарплатні очікування на рівень 5к поставив. Я поставив 6, тож мені прилетіло близько 30 пропозицій. Більшість тих, кому б тобі довелося відмовляти вручну, відсіялися автоматично. З решти я сходу відмовив, мабуть, половині, а всі інші були порівняно цікавими варіантами.

Ну і за 6к вже треба себе трошки вміти продавати. В резюме не просто перерахувати місця роботи, а якісь цікаві досягнення на кожній позиції згадати. Плюс якщо говорити про мене, то я в резюме додав пару своїх популярних публікацій на медіумі і маю open-source репо на гітхабі аж з 10 зірочками. «Аж» — це іронія, звісно, але саме такі речі всіляких лідів не в одній продуктовіх компанії зацікавлювали.

Вам треба зберігати 50 булеанів максимально ефективно, і не можна використовувати колекції. Як ви це зробите

двоичный код? Ну типа 8 байт хранить, +14 битов про запас будут, это по мотивам литкод задач :-).
А вообще «эффективность» это конечно еще тот вопрос, что они под этим подразумевают хз.

Автору бы это озвучить на собесе, да узнать что в итоге хотели услышать от него.

Ну, я це і озвучував. Типу якщо колекції зовсім-зовсім не можна, і хочеться зекономити по памʼяті, то беремо примітив підходящого розміру і юзаємо побітові здвиги. Але якось інтервʼюери зʼїхали з питання, далі ковиряти його не стали, а я і не наполягав.

Меня как-то спросили «как будешь писать запрос на сторонее апи, запрос простой» ну я давай там http методы какие можно низзя, авторизация нада не, ну и так штук 5-7 вопросов задал а они все «нет», «ничего не надо», «просто запрос», короч я так и не нащупал зацепку, а они сами потом скипнули вопрос. Удивляет, ну задал вопрос продолжай, дай наводку, хочешь тему обсудить спроси прямо...Кчему эти кошки мышки?

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

Може бути, до речі. Здається, саме цей чел був з Росії, цілком шовінізм міг грати в ньому :)

і не можна використовувати колекції
двоичный код?

Угу, условие сродни «как максимально эффективно забить гвоздь, не используя штангенциркуль». Вот только собрался юзать для хранения битовой инфы вместо битов int64 какие то там коллекции, а тут облом... хоть звони тут Khaby Lame :)

Небольшая историческая справка:
iOS 4 ... 7 (?) девы из огрызка использовали битовые маски и сдвиги для хранения флагов в том числе и в SQLite базах. Не помню с какой версии точно все начало меняться.

В дальнейших версиях для хранения флагов использовались просто отдельные поля в таблице.

Зови Кхаби.

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

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

В дальнейших версиях для хранения флагов использовались просто отдельные поля в таблице.

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

экономия на спичках

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

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

Вот в этом полностью согласен. Мой поинт был, что если это не просто проверка на знание человеком битовых операций (а судя по постам ТС хотели что-то другое) — то надо разобраться в дополнительных условиях, которые требуют такой оптимизации. Повторюсь, выигрыш по памяти в данном случае в контексте обычного мобильного приложения — ничтожен. Выигрыш по процессорным тактам... Опять же это пара тактов. Иногда это важно, но опять — не с точки зрения разработчика, который работает на джава/котлин или свифт/обжектив. В интервью, где всплывают железки, кодеки, асм или с — вопрос будет логичен. Но таких вакансий ровно полторы на андроид/айос на джинне/линкедин спаме

Собственно потому для меня самое логичное предположение — экономия траффика при общении с бле железкой

С другой стороны premature optimization — часто выстреливает потом в ногу при поддержке продукта

Собственно потому для меня самое логичное предположение — экономия траффика при общении с бле железкой

Проект, на який йшла співбесіда, був максимально далекий від BLE 🙂 звичайний фінтех

Я немного уточню. С точки зрения клиентских приложений

Тот, кто явно не может назвать как хранить 50 [битов], не имеет представления о стороне максимальной оптимизации и базовых вещах, и потому как он может выдавать наиболее удачные решения для определенной задачи, если ему известна только одна сторона медали?

не нужно и вредно, если это проект про «формочки».
А без сопутствующих знаний, услышать на конференции про битовые сдвиги для хранения и оптимизации памяти — вредно. В этой ситуации уже стоит проверять большое О, алгоритмы поиска, понимание алгоритмов сжатия или что там еще за специфика которая понадобится на проекте. Потому что в вакууме сакральное знание битшифта или ксора не несет в себе ничего полезного в объявленном контексте

Более логичным были бы вопросы тогда на работу с каким-нибудь RGBA (те же яйца только в профиль)

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

А шо по ios?
$7k у всех есть?

Не думаю. Темні часи, коли за iOS платили трошки більше, пройшли)

Сейчас спрос на том ниже чем на андроид
ТК подвалила цифровизация и как оказалось андроид для всякой работы куда лучше

Android трошки більше, але за кількістю вакансій йдуть близько iOS та Android
jobs.dou.ua/...​rends/?category=iOS/macOS
jobs.dou.ua/trends/?category=Android

В США у всіх ойфони, а американці платять більше ніж інші.

В США у всіх ойфони

Не у всіх, у овнера мого попереднього стартапу Samsung S21

Підписатись на коментарі