![Main image](https://andlukyane.com/images/foldername/) blogpost about career ### job at job cover your ass write down everything you do at work change job every 1-3 years at first. or change projects at job. for money and experience tech- vs nontech-companies startup-small-large failed/not-done projects deploy remote: good and bad. at mid level - ok. at low and high - bad don't trust collegues. They can push cumbersome tasks on you plan big projects at the start interviews are broken from the both sides diverse teams are good time estimation is hard leave bad jobs if you can the more you earn, the more you are valued in the company Ну а вообще, если философски относиться, то у меня в настоящий момент такой взгляд на происходящее: - есть мелкие и трешовые компании. Туда можно идти разве что на 1-2 место работы, если ничего другого не получается (как я и делал) А в остальном всё делится наверное на 3 группы: - ds только начинается - ds идёт пару лет (исправил) - ds стабилен и развит. Ща, дальше напишу (edited) Если только начинается, то есть 2 варианта: есть шансы построить всё красиво (с небольшой вероятностью), но скорее всего в ближайшие пару лет надо будет просто делать много всего и самые разные задачи.Если есть хоть пара сильных людей - может быть вполне интересно А два последние пункта по факту не особо и разнятся.Ибо всё зависит от конкретной комании - где-то всё устроено хорошо, где-то плохо В общем выбираешь по уровню комфорта, по задачам и по личности руководителя. И какой-нибудь баланс, который тебя устраивает... На прошлой неделе делал задачу, обратился к коллеге за кодом для расчета показателей Код он мне скинул по телеграму, ибо в гитлабе его не лежало) И там 2 скрипта. 1 с комментами, второй запускает первый и в нём нет комментов.В первый раз запустил - сработало, а потом пошли ошибки. Пришлось фиксить На этой неделе надо было сделать code review стажеру. Спрашиваю тим-лида - на что мне обращать внимание? Ответил, что за стилем кода следить не надо) Потом ещё надо было на этой неделе использовать код коллеги. Он в гит был закоммичен. Но пути к файлам жестко заданы, без возможности изменить или передать в скрипт Это я не к тому, что мои коллеги такие плохие и код убогий, а я лапочкаА к тому, что далеко не везде следят за кодом Ибо часто времени нет писать его правильно Правда рано или поздно technical debt настигнет и начнёт жестко наказывать --- Хм, на этот счёт есть несколько мыслей.Про деньги - это скорее в FAANG. Там платят больше, чем почти везде.Дальше: вариантов руководства много:Техлид, или как это называют на западе - staff/principal - требует в основном технических навыков.Тимлид - больше про управление.Продакт/проджект менеджмент - техническими вопросами заниматься не будешь.head of ds - это ты техническими вопросами заниматься вообще не будешь, скорее всего не будешь даже отдельными проектами заниматься. Будешь организовывать отдел в целом и ходить на встречи.Если про переход на техлида/тимлида, то есть два очевидных варианта: при смене работы и внутри текущей компании.Внутри компании: - если компания/отдел развивается - вполне реалистично. Если не развивается - то почти невозможно - если отдел развивается, то лучший способ перейти в лида - брать на себя ответственность, показывать, что имеешь качества/навыки лида. Как вариант - можно это обсудить с вышестоящим боссом При смене работы: - сложно доказать, что ты можешь быть лидом, если не было такого опыта - при этом есть компании, которые готовы брать опытного сеньора на лида нового направления Поэтому я бы сказал, что твой вариант хороший, особенно если сможешь договариваться на дальнейшие повышения зарплаты. Если не считать этого варианта, то я бы посоветовал идти в средних размеров компании, которые активно развивают DS, и там стараться стать лидом. Отдельно скажу, что надо понимать, что руководство подходит не всем и не на всех этапах развития - когда я был в теле2, мне предложили поруководить небольшой командой, но я отказался, ибо было не интересно - на текущей работе я предложил себя на позицию лида, когда старый ушёл - потом я ушёл в другую команду в той же компании. Мне, благодаря моему опыту, сами предложили руководить командой R&D - весной прошёл собес на тимлида команды из 15 человек, но отказался - ибо осознал, что мне не будет интересно заниматься на 80% менеджерством ----- Ну... я бы сказал, что это зависит от твоих предпочтений и желаний.На основе моего опыта, опыта моих знакомых и просто того, что я читал: - в стартапах больше нагрузка (==переработки), чаще меняются приоритеты, хуже инфраструктура - чем моложе стартап, тем больше шансов, что будешь делать либо что-то совсем state of the art, либо наоборот - базовую аналитику - больше шансов сделать что-то значимое. Но полностью зависит от стартапа - может они делают какую-то хипстерскую шутку для фана - с большей вероятностью прийдётся заниматься "всем". Это даст много ценного опыта, но при этом прийдётся постоянно распыляться и в целом заниматься тем, что может быть вообще не интересно. При этом скорее всего тебя будут меньше учить. - скорее всего будет больше драйва, будет интересно - большинство стартапов проваливаются, поэтому надо быть готовой к тому, что либо стоки превратятся в пустышку, либо финансирование закончится и стартап вообще загнётся - с одной стороны меньше бюрократии, с другой стороны, если что-то пойдёт не так, могут быть грязные разборки между основателями Так что в целом в стартапах стоит поработать в начале карьеры, а дальше - дело вкуса.Я поработал в паре стартапов, больше не хочу) --- Я вижу, что у тебя есть два отдельных вопроса: о прохождении собесов и о росте как специалист.Про собесы. Увы, но во многих компаниях собесы имеют мало общего с реальной работой. Чем больше компания, тем сложнее собесы. Я бы сказал, что основных причины две: фильтрация потока кандидатов и сложность поиска качественных специалистов. Про первое понятно - если на позицию присылают, например, 50-100 вакансий, надо как-то делать выбор. Многие кандидаты отвалятся после базового анализа резюме, а дальше надо как-то выбирать - вот и собеседования. А второе... дело в том, что весьма непросто найти хорошего человека. Если просто задавать вопросы по списку, то рано или поздно кандидаты станут их тупо зазубривать. Поэтому собесы в целом нужны для поиска "сигналов" от кандидата - когда он "показывает", что имеет релевантные навыки, что развивается, что имеет потенциал и так далее. Ну и в целом для компании обычно эффективнее не нанять хорошего кандидата, чем нанять плохого - ибо потом тяжело от плохого сотрудника избавиться.Про рост как специалист. Если у тебя внутри компании есть возможность делать разные проекты - это отлично, можешь помимо этого ничего не делать. Но если, условно говоря, ты 3 года решаешь одну и ту же задачу - у тебя нет роста и развития. Чем выше уровень позиции, тем больше ценится широта и глубина опыта - поэтому люди и меняют работы, чтобы набраться разного опыта. Ещё один аргумент: допустим, ты работаешь с задачами рекомендаций или NLP, а хочешь перейти в anti-fraud или CV. Это делать значительно проще, когда у тебя есть опыт в этом - а значит нужны дополнительные активности, увы. ### general career work isn't only about coding. it is about networking, downtime etc big data / dl higher levels mean more freedom. and responsibility cool merch BRAND maintain good reputation and networking work in short-term, plan for long-term mlops tools+statistics - rarely use Different expectations and requirements at different levels example, what is expected answer about doing a project manager vs ic mlops - special DS isn't software engineering power of communities, big and small have a self-pitch Совет на будущее: погугли вопросы к собеседованиям типа cultural fit или behavioral. И продумай что ты можешь на них ответить Даже если отдельного раунда под это не будет, вполне могут и просто так спросить - как в твоём случае Andrey Lukyanenko, [28.03.2022 19:27] Это часто не только HR спрашивают, но и на обычных собесах) Ибо это реально важно. Условно говоря, ты хочешь делать продукт, а отдел просто отдельные модельки тренирует Хочешь катить в прод - а в отделе все модельки отдают mlops на внедрение Не хочешь катить в прод - а в отделе все продом занимаются И так далее. Andrey Lukyanenko, [28.03.2022 19:27] Если будет подобное жесткое расхождение ожиданий, кандидат либо быстро уволится, либо будет демотивирован. don't overengineer ### self-improvement kaggle Там есть разные мнения, но общая мысль в том, что каггл остался площадкой для развлечений. То есть 2-3 года назад он активно приобретал популярность и были идеи о том, что он будет все важнее и важнее. Но если посмотреть в требования вакансий - очень мало где он реально учитывается. То есть понятно, что есть H2O, NVIDIA и ещё несколько компаний, которые это требуют - но их мало. Для большинства компаний это просто плюс наравне с другими плюсами - типа делаешь пет-проекты, кагглишь, выступаешь, контрибьютить - все хорошо, молодец. Плюс раньше область была совсем не зрелой, и успехи на каггле показывали, что ты что-то можешь сделать. А сейчас постепенно компании лучше понимают, что работает, что нет - и поэтому понятнее какие навыки у людей искать.Плюс те, кто участвует в каггле, осознают, что для победы надо часто применять "грязные трюки", которые часто не применимы в жизни В качестве позитива скажу, что каггл может приносить пользу, конечно.Но для этого надо: - грамотно пиарить свои успехи - выстраивать конкретный бренд - обязательно разбавлять успехи на каггле другими успехами https://www.reddit.com/r/datascience/comments/s4p93s/comment/hsurqle/?utm_source=share&utm_medium=web2x&context=3 I'd say, that those who didn't take part in any competition seriously tend to underestimate Kaggle, but those who invest thousands of hours in it tend to overestimate it. I think that Kaggle gives useful skills and data scientists should try it, but it has a limited usefulness. If you take part in a competition seriously, you'll learn the following things: robust validation of the models. I have met a lot of people in industry, who lack this skill, but I think it is a very important one; feature engineering for tabular data. There are a lot of good ideas for FE on Kaggle; training strong single neural nets. While people say that it is necessary to train hundreds of models to win (and this is true), the winners also train strong single models - and this can be easily replicated in the industry; iterating over new ideas and learning new things fast; working in a team. Some teammates could be slacking, some could be trying "wrong" things, some could be demotivated - like in real life; cleaning and transforming the data. While some datasets are clean, a lot of them aren't. In the datasets for the competitions, I have encountered wrong labels, missing values, dropped columns, duplicated rows, messed values, etc; debug the problems with the platform itself; make your solution reproducible, tracking experiments, etc.; Now, there are other useful things besides taking part in the competitions for their own sake: reading the solutions to the old competitions; taking a ready code for a new task you need to solve; taking part in competitions for DS conference workshops; downloading the data. By the way, several days/weeks ago Kaggle showed the official statistics: https://twitter.com/antgoldbloom/status/1479951845304983552 most people don't take part in the competitions - they download the data, write notebooks and study courses; they have good small practical courses, yes; Having said that, I admit that if we talk about the real world, there are more things to do: manage the data, push the models to production, manage business expectations, optimizing model inference, etc. More than this: there is too much gamification. For example, there were dozens of threads where people posted memes to get upvotes (for discussion ranking); too many useless notebooks are published; often the code written on Kaggle isn't good; yes, training dozens/hundreds of models often (though, now always) is necessary to win; there are companies that hire people to compete on Kaggle. They have a lot of experience, time and hardware - so very difficult to compete with them; often you need to overfit to the test data; often you need to use questionable tricks in real-world: multiplying the predictions to match the test data, abuse the leaks, reverse engineer; sometimes the rules of the competitions could be vague and the winners could be banned for vague reasons; -- data isn't as clean as some think sota models are useful, especially neural nets NVIDIA and H2O dominate имхо отрасль стала более взрослой и скилл делать модели отошел на второй план для MLE, поэтому у чела без кагл шашечек, но с хорошим бэкэнд бэкграундом больше востребованность, чем у мастера с невыдающимся прод опытом (лучше и то, и то, конечно, и ещё много чего, но такой кейс для упрощения) Но вот каггл как ачивка полезна мало где. И количество мест, где такие ачивки учитываются, не особо растёт. я думаю основная проблема в том, что бОльшая часть людей в индустрии (и технических, и не-технических) слабо вообще понимает что означает наличие :master: и как это может коррелировать с пользой для бизнеса презентаций/блогпостов которые бы объясняли бы, как навыки на :kaggle: могут быть сконвертированы в :moneys: для компании - либо нет, либо их очень мало это кстати вполне коррелирует с тем что написал ТС - банально очень мало людей которые хоть раз работали с :master: /:grandmaster: и соответственно у этих лычек нет возможности стать повсеместно признанными (как например обстоит дело с PhD), потому что просто очень мало кто этих людей видел и знает как это можно интерпретировать Добавлю к тексту выше, что для многих людей каггл ассоциируется с тренировкой миллиона моделей. Участвующие знают, что соль не в этом, но уже фиг докажешь, ибо мнение сложилось. Поэтому часто неуважение. (edited) но вообще да - большинство :grandmaster: обычно не обладают чем-то таким, что нет у большого количества других DS, у них просто другой баланс скиллов, ну и уровень естественно средний довольно высокий типичный :grandmaster: из опыта - довольно senior ds, но ничего такого, чего нельзя было бы найти у других senior ds я тут еще подумал, и кажется, что важный фактор, который может влиять на обесценивание - область стала более зрелой 5 лет назад никто не понимал кто такой DS и что он должен делать, и результаты на :kaggle: хотя бы говорили людям что “это чувак, который возможно сможет сделать что-то полезное с нашими данными” теперь data scientist - вообще часто не одна специальность, а целый спектр, люди намного лучше понимают ограничения и требования, и поэтому начали ориентироваться на реальный опыт, а не на непонятно что означающие успехи в соревках Но их система kernel соревнований - залупа конская. Загрузи инференс в кернел, поставь все либы, прогони все предсказания, запиши в саб. Попробуй заслать саб на соревнование. Ой, ошибка. А какая ошибка и из-за чего? Ну, это тебя волновать не должно, дебажь вслепую и иди нахуй, кстати А по теме медалек, так уже давно ценятся не знания/умения, а "умение продать себя". Ну и не забываем, что большенство устроившихся на норм места попали по референсу, а вот их какраз и можна получить в комьюнити типа кагл/одс... Если ты джун и у тебя есть :master:, то это прям круто. Если ты Sr и выше, а если ещё и опыта больше 8 лет, то эта ачивка уже как-то бледновато смотрится на фоне реального опыта. pet-projects learn to search on google enlarge expertise by watching talks no standards for education, deployment, etc it is okay to do nothing if you are content when you write a big text or prepare a presentation, reread it next day The shorter the talk, the more time you have to spend on preparing ### mental be open to new opportunities impostor syndrome and overcoming it work-life-study balance burnout overworking can cause burnouts. underworking can cause them too discipline and motivation know when to say NO Attitude at work and interviews better not to give a talk than to give bad talk Don't be afraid to ask, but try to do yourself at first. though this is cultural You should feel "afraid" at the beginning of the new job. it is ok and good see forest before trees too easy to get used to not concentrating make boundaries of acceptable things - working time, tasks etc. If broken, require repayment The first thing that should be mentioned is your “brand” is built with or without your input (whether you recognize it or not). You may have thought about this topic in the past (formally or informally) or you may not have. Either way, as you develop your career as a scientist you make choices (e.g. what areas to work in, what conferences to attend, how open is your science, whether to have a blog or not, etc) that other people perceive and interpret as your “brand”. It is worth taking a bit of time to think about what your brand is (or what you want your brand to be). It can not only help you in terms of becoming more well-known in your field, but it can also help influence your actual science (e.g. what you choose or not choose to work on). randomcoffee brand should be consistent, but can be evolving