Открытое собеседование junior backend разработчик. Задача на чанки. Тимур Хамзин. Лайфкодинг.

Подготовка к собеседованию на Python Developer

Транскрипция видео:

  • так запись пошла всем привет и добро пожаловать на наш канал это очередное собеседование в компанию паучье чутьё и сегодня у нас два человека вам слово николай давать случилось а тимур здравствуйте еще раз точно свидетелями здравствуйте давайте давайте немножко расскажите нам о себе потому что андрей не присутствовала наш первый добудет здоровье strong робкой самаре [музыка] ну уж программирование пришел 2018 году до этого я работал инженером вот походы свои работы автоматизировал многие процессы в питоне

    00:00:00 - 00:01:36

  • вот это мне понравилось вот решил найти себя здесь началась доступного программирования делал пару проектов связанных с машинным обучением с подготовкой данных тело pipeline и сейчас иду вот сторону веб-программирование закончил радость практику backend получается начале этого года вот и сейчас делаю проекты связанные с уже мобильной разработкой нас ласки то есть стек этот пласт django есть опыт контейнерные разработки докер да только уполз москве основном сейчас база данных postgres работы а сейчас куда хотите двигать ну очень

    00:00:56 - 00:03:04

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

    00:02:04 - 00:03:38

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

    00:02:53 - 00:04:34

  • система тестирования сотрудник вот там тоже практически backend я делаю один с дизайном базы данных помогли вот пока он еще в помощь разработана запущен уже тестируется начиная новый проект где я уже и дизайн базы самом деле здорово тогда наверное у меня ещё будет таких пар наводящих вопросов далее перейдем сразу к технической части мы как компания работаем сфере гемблинга вообще насколько вам дайте подходе и и правда не будете смущать вас различные аспекты там например у нас большинство проектов

    00:03:48 - 00:05:33

  • подойди и drive соответственно перед тем как вы начнете с вами работать придется подписать некоторые элементы связанная с конфедициальность случает окей и по поводу оформления что для себя рассматривать трудовой договор самозанятости по ну я пока работал только по трудовому договору там нюанс знаю то есть вас это не смущает мой понятно дело что все расскажем ну и обеспечит вам сопровождение и объясним случае просто на понимание я думаю что не будет проблем хорошо и меня будет последний вопрос к

    00:04:42 - 00:05:58

  • просто гибридом с молодой вообще какие приоритетов компании для вас важны что мы как компания 8 предложить чтобы вы чувствовали себя комфортно и могли развивать ну я думаю это современные технологии использования современных технологий в работе и соответствующей компетенции сотрудников чтобы хорошо тогда андрей вам слова отлично мои слова будет очень простое расширила экран начнем чего-нибудь чего-нибудь пописать как бы я не буду спрашивать как устроены в переменной в питоне 100 позволения это скучно и не интересно уже

    00:05:26 - 00:07:06

  • у нас если этих целей открывать свою любимую даешь к чтобы тебе было удобно и комфортно 1 задачка сделай пожалуйста список из четных чисел от там скажем от 2 до 98 список из четных чисел и нечетных чисел до 2 до 98 как бы ты вообще начал создавать чтобы ты похоже на генератор лучше на в этом в коде писать потому что этот список нам потом понадобится мы его будем использовать будем писать еще всякие на его обработку функции этом лучше так и сразу сохранила в какую-то переменную дам а ты можешь немножко побольше сделать

    00:06:15 - 00:08:11

  • эту размер шрифта потому что боюсь что не все будут не не все видят окно вот выдержки она назад собаки я попробовал запрет запустить он мог ну ладно не критично если что пишите если кому-то не видно будет вроде так нормально так но в целом да нормально хорошо а как можно это сделать без генератора повернись безликим приходи ну можно завести постро листы в цикле добавлять сделать другим способом без циклов и без list comprehension например долги так тогда работает можно как-то еще по-другому можно сделать так

    00:07:38 - 00:09:45

  • все хорошо давай добавим туда в этот список еще число 99 нет дополнительными действиями то есть как бы вот список который у нас сформирован он же так не добавит 99 правильно он же только четное здесь делает а нам нужно добавить еще 99 но просто вот как-то нет выпустит список такой же будет не создаем новый на название совсем правильно ничего страшного как бы тоже не стал что вот так вот окей хорошо почему не конкатенации в чем разница между консультации open там нет можно же плюс можно просто сделать там

    00:08:58 - 00:10:35

  • ведь создаст новый список получаться к копиру окей ладно хорошо нормально теперь смотрим наша задача взять вот этот список который мы сделали и разбить и написать на него такую вот функцию называемые чан киры ли это как то вот так вот она на вход должна принимать наш список вторым аргументом она должна принимать размер чанка и идея в том что он должен разбить быть по итогам действие этой функции он должен быть разбит на на вложенные листы то есть например у тебя если мы передаем размер чанка например 50 то 1 50 чисел у

    00:09:56 - 00:11:40

  • нас должны в одном списке быть а вторые во втором я понятно рассказал да и так далее так первый аргумент получается минус а вот этот блин да to know устал организациями снимай просто пройдем по элементам списка и будем добавлять их соответствующий чанг и удалять из списка пока список будет пуст попробуем но наверное мы же какой то тогда список формируем наверно его тоже надо завести их правильно где-то внутри функцию [музыка] зачем удобно будет создать вас чанг создан еще копия исходного списка чтобы

    00:10:48 - 00:13:19

  • его не вытирать ну честно говоря выглядит немножко перри усложненном но давай пока сделаем так а потом если что можно будет то-то отчего-то и студентов избавиться [музыка] ок ягодицы от что ты скажешь насчет того чтобы использовать срезом ведь мы можем брать ее тренироваться по оценкам используют срезы в основном списки можем ноги давай пока дрищем тогда вот это просто я не совсем уверен честно в этом решении вот окей давай посмотрим что из этого выйдет так не а эластан мир ну так ну давай попробуем наверно принципе

    00:13:47 - 00:16:15

  • сделать а он сам создал распечатан шаблон 1055 ради сезон 22 хорошо потому что да скобочки наверное другим студентам не у тебя там такие вот здесь делал я не помню по моему квадратные скобки а нет делаем столько понятно я нажму делать делать начал сначала мне здесь не надо есть получается наращивать наше время надо быть наливали так чё там все внутрь уже bridal за я не убрал жатва лишь правильно человек систем блоке у нас есть традиция чатик может подсказывать помогать напоминаю странного так должно было бы работать а

    00:16:40 - 00:19:11

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

    00:19:15 - 00:21:54

  • вами список или или выше давай выбросим ошибку какой-нибудь вы лютер да наверное будет здесь самое время со самое место что ну там дам рис и на конце ok вот так давай попробуем что-нибудь передать туда отрицательное посмотрим все работает или нет отличном прекрасно нужно скучно так теперь вопрос да вот мы вроде как это протестировали сами пальцами рук а как будто написал тесто на эту функцию ну проверял бабу 5 случае можно писать какой то есть быстренько так все нет астана нет зачем просто через assert unit-тест

    00:20:43 - 00:23:13

  • мне кажется здесь overkill для этого дела просто assert проверить что-нибудь [музыка] а assert да сейчас так таец андрей я не слышал микрофон можно да да вроде работает ну как булки следующий вопрос если вот ну как мою вот эту вот штуку можем использовать ты можешь пробежаться по этим самым бочонком и скажем пока сделать по ним print каждой каждой группы отдельно хорошо но и давай скажем моим тоже напишем какую-то функцию которая брала первые два чанка и возводила скажем все что у них там есть вторую степень получится такая

    00:22:30 - 00:24:37

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

    00:25:53 - 00:28:04

  • а это в квадрате на отлично ну хорошо давай тогда мы закончим работу с этой штукой можешь обратно смерть жить вот и все в исходный в исходный список чтоб чтобы создался список которые уже не разбитые начинки а общий по итогам вот всех вот этих вот наших функций то есть сначала мы разбили потом сделали возвели в квадрат первые два чанка и потом обратно сделали вернули какой-то список который вот так вот изменён так еще раз мутировал части ну не знаю наверное чувствую что теперь [музыка] нормально годится хорошо там а здесь

    00:28:52 - 00:31:10

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

    00:31:05 - 00:33:17

  • добавил но она же вон есть она же в этом самом есть у тебя а а вот и да но я честно говоря думал что там есть я удивлен что и там нет потому что скорее когда обычно hubsan создает ежедневно та самая он как раз вот эти вот он он не создает хорошо давай добавим и попробуем ее избавиться как бы ты решил от проблем ну явно жанна там не должно быть на она загубил ладно хорошо давай тогда дальше смотрите если она более детально рта на ее почистить надо будет еще да ну в принципе это можно задобрить давай

    00:32:23 - 00:34:45

  • откроем что нибудь в этом проекте и посмотрим ну например на модельке так посмотрим или не модельки да но вот рецепт это кстати вот у тебя я вижу шаблоны у тебя на уровне приложения лежат почему так как же вам омане и внутри тоже есть я почему так обычно же как-то выбирает или на уровне приложения или на уровне проекта почему-то обусловлен выбор так что там лежит базовый шаблон базовый шаблон да то есть это шаблонная просто везде использовал не помню точно возможно даже было два приложения и нужно было общий шаблон

    00:33:35 - 00:35:21

  • дома не ну это так то логично то есть как бы из ты используешь базовый шаблон то даже если у тебя все лежит на уровне приложений то как бы база то она все равно где-то должна быть вот каким образом почему ты выбрал именно такой heat.ru то есть почему у тебя не все ты выложил template давай откроем кстати рецепты и приложения только да и посмотрим как там чтобы вынуть острыми [музыка] сша вопрос тогда такой а почему у тебя структуру шаблонов не такая как принято у тенге что значит смотрим а если ты

    00:34:30 - 00:36:11

  • хранишь вот так шаблон это у тебя должно быть название папки вот такое food грамм project receipt template потом еще папка recipe и вот уже там вот это вот все у тебя должно лежать если честно это не совсем так ну ладно хорошо давай посмотрим модельки шаблона кстати по моему вот таким крисом то же название и не самый хороший вариант [музыка] модельки давай посмотрим здесь так рога суши по каким принципам работает код стоял джангл если мы нам нужно перенести сделать сделать перенос длинной строки которая

    00:35:25 - 00:37:09

  • одна не который нил не умещается в code style те кстати сколько здесь 87 но я делаю обычно так как здесь custard колдун . но я как очень пользовать хорошо могу сказать что пока стоял у джонга это неправильный перенос это 8 в django рекомендуется немножко иначе делать ну ладно хорошо . так настроена мне удобно так я понял хорошо давай пониже посмотрим что у тебя тут есть такого интересного так можешь немножко рассказать что у тебя делают и марш урал имидж так вот это вот все и зачем она нужна ведь мы и так можем

    00:36:29 - 00:38:23

  • наверное в шаблоне получить адрес image url зачем дополнительная дополнительный метод просто as the morins подрал чтобы одно и тоже нельзя часто всех йогах был you have она с кем-то это палач надо ну шаблонах конечно наверно просто к тому что в общем-то дернуть image url можно и так там шаблоне с проблем отработает зачем вот это вот лишняя проверка или excel имидж то тут все ну наверное забыл но я не знаю может быть чтобы ты предлагаешь как дня совершенно не знаю я всю свою сознательную всю сознательную жизнь

    00:37:33 - 00:40:02

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

    00:39:06 - 00:40:45

  • у тебя есть вопросы к нашей компании так [музыка] какой испытательный срок прослушать стандартный то есть вообще три месяца но в целом если андре добро со хорошо да мы все равно не мухаммада часто человека то он заканчивается но по сути дела на зарплаты то никак повлиять не уменьшаем поэтому без это так интересует как бы планы на будущее чем я начну заниматься и чем я чем я буду заниматься там держащий перспективу 2 2 3 лет вот андрей лучше но смотри если говорить что прям про прямо сейчас я планирую тебя у нас есть

    00:39:55 - 00:42:03

  • внутренние приложение оно django и нам как раз нужен человек который боевой развивал поддерживал и соответственно им занимался это внутренний корпоративный портал в принципе там работы больше чем на 2 года но просто штука в том что дать прям что-то сложная и важная помощь новичку достаточно будет сложно но в обмен я еще могу сказать что мне в целом понравилось как ты копишь тебя можно попробовать не на джун позицию 1 ножка такой знаешь джон плюс чтобы дать тебе больше свободы чтобы ты мог показать тебя на нашем

    00:41:01 - 00:42:20

  • внутреннем проекте ему не так страшно если что то сломаешь или что-то пойдет не так вот это всегда можно быть починить у нас поскольку не мы на этом деньги не зарабатываем что-то на это скажешь было бы тебе интересно вот такое в принципе да этому дальше там вот когда развиваться да конечно у нас очень много проектов у нас в общем-то людей людей нам надо и в общем то вот так еще вопрос интересует какая-какая вас корпоративная культура если какие-то [музыка] мероприятия погнул об этом как как как

    00:41:41 - 00:43:22

  • часто люди общаются очень за корпоративная культура и мероприятия по обмену потом это все таки наверное два вопроса даже получается но наверное давай передается 2 вопроса и очень хорошо отвечает николай андрей очень хорошо прикидывала меня всю эту историю да смотри у нас несколько офисов и между ними периодически проходят и к которому и не то при чем мы оплачиваем за посещение конференции интересного с размещена фото да помимо того у нас есть который messenger где мы начать следить или показ различные вещи

    00:42:41 - 00:43:59

  • кроме того есть внутренняя система развития и условно чем там определенный процент от курса если андрей условно понимаешь что тебе это нужно и 3 пальчика конкурс до правитель долго конечно его облачка никаких и достаточно у нас много различных практик и мероприятий андрей у нас очень любит историю с кухней у нас есть мастер шеф поваром вообще достаточно интерактива много понятно дело что есть различные плюшки типа плойки печенье как прочих радостей на понятно дело что ребят которые ходят в офис и каркинг без проблем и вопросов

    00:43:21 - 00:44:40

  • нет но сейчас большинство из условий в мире сидят в долинке принцип оценках ну ещё интересуется будет проводиться по древней у и еще как вообще динамично развиваются компании code review проводиться будет а про динамичная развивающих компания ответят да смотри по поводу развития компании мы достаточно часто растет так как ты видел возможно в описании вакансии у нас есть классные проекты крестьянские и пронина таране сейчас особенными drive обороты на рынке до пользователи сейчас увеличиваются и наверное за последний

    00:43:59 - 00:45:32

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

    00:44:55 - 00:46:14

  • [музыка] хорошо хотелось бы в этом направлении тоже двигаться ну слушает django не выглядит у нас как микро сервис но я могу учесть если у тебя вот прям будет такая потребность желания том будем будем в процессе работы будем уже чтобы работать в рабочем порядке хотите мы решили проблему ну да это скорее на будущее пожелание спасибо на этом создаем ну раз уж он не хочет денег the sky да давай развивать и сработает бесплатно это за развитие это прекрасно а деньги я уже упоминал да да в общем смотрим решение которое ты

    00:45:35 - 00:47:19

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

    00:46:30 - 00:47:50

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

    00:47:10 - 00:48:43

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

    00:47:56 - 00:49:12

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

    00:48:34 - 00:49:57

  • вещи если ты их постоянно не делаешь я например не помню как это делать я бы тоже люблю потому что я сразу настраиваю гид игнор как надо и внутренних права вообще не возникает если ты не сталкивался с ним или сталкивался с этим давно mtu естественно не помнишь как это решать эти турки приятное ощущение на версия понятно из моих ответов по поводу работа что offers я думаю ошибка было взять этот проект на ноге потому что я когда открыл я сейчас а пешка роснано занимались ну значит наверное имеет смысл тогда показывать типичный проект

    00:49:15 - 00:51:05

  • который которые у тебя свежие который ты помнишь которых ты знаешь как и что и куда зачем как как витрину тогда имеет смысл выбрать его ответ нормальная практика когда просит открыть свой проект не что-то там скажем ну слушай если если человек посмотрел твои guide to у него наверно возникли какие то ну и что-то стало непонятно то возникли какие-то вопросы или он просто молча посмотрит скажет так сошлись как это фигня какая-то фигня я прохожу фигня зачем на учебе показывает как пишет очень странно человек вот ну или он

    00:50:12 - 00:51:40

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

    00:50:56 - 00:52:32

  • концами сначала но то есть на собеседование с вечером когда вы двое с вами разговаривать это окей да ты рассказываешь в проекции хронологии свой карьерный когда это происходит на техническом собеседование по 1 очереди андрея должна интересовать актуальные твое знание концептуально что ты можешь сделать прямо сейчас да поэтому лучше все таки начинать с конца с последней проектов последним чем ты занимался что делал таких задач немножко обтекаемо мне показалось история с приоритетом в компании bec понятно что ты там хотел

    00:51:47 - 00:52:53

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

    00:52:20 - 00:53:43

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

    00:53:02 - 00:54:10

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

    00:53:36 - 00:54:54

  • после почитать в целом очень зелено именно по технической части я понравится прической я бы наверное так с тебя бы доставку все что мне было не симон

    00:54:13 - 00:54:37

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru