Category: Uncategorized

Анализ исходного кода open source

В последнее время начало довольно много появляться исследований кода причём с какими-то очень странными результатами и почти всегда просто потрясающего идиотизма выводами. Мне стало интересно откуда они черпают информацию и как анализируют код потому что у самого давно уже было много идей занятся подобными исследованиями.
И сразу же нашёл сайт GitHubArchive который создал один из известных разработчиков протокола HTTP2 Илья Григорик.
На этом сайте лежит вся публичная информация которую можно получить через API гитхаба с 2012го года. И по этой всей информации можно делать SQL запросы за вменяемое время.
Очень прикольный доклад где чуваки проанализировали и построили много интересных графиков: какой язык вызывает больше всего ненависти а какой больше фана, как взаимосвязаны между собой языки и какие нации в мире больше всего комитящие в Гитхаб. Много неожиданного

gnu_stallman

Как коммунизм помогает либертарианству

Збавный пример дилемы для хакеров с пролибертарианским мировозрением.
Хакер из WhisperSystems, создателей защищённого месенджера Signal (AppStore, GooglePlay)  который Сноуден советовал, написал программу для защищённой от прослушки радиосвязи USRP.
Даже добавил в описание программы анархисткий призыв «Dismantle the state, fight the police».

Лицензию для программы он выбрал GPLv3. Лично я в шутку называю эту лицензию «коммунистической» поскольку она отребует делиться своими доработками. Это делает эту лицензию неудобной для бизнесе: ты взял программу, потратил силы и доработал её и теперь хочешь заработать денег но вместо этого вынужден бесплатно делится своими наработками с конкурентами.
Я даже иногда я прошу авторов программ поменять лицензию на дружественную к бизнесу Apache Commons  v2 которая позволяет делать изменения и не публиковать их. Обычно это работает классно — ты берёшь код, подпиливаешь его под свои нужды, если видишь что часть можно законтрибьютить в оригинальный проект — отправляешь.  А то что нужно чисто тебе оставляешь у себя.

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

 

Кстати  это  одна из причин почему большинство криптографических программ идут с лицензией GPL

 

[LinkSet] Compatibility

Theoretical part

 

Articles from Oracle

http://JEP 223: New Version-String Scheme

 

Six kinds of compatibility

Each Joda-Time relase has descriptions of incompatible changes categorized by six kinds:

Compatibility between 2.8 and 2.9
———————————
Build system — Yes
Binary compatible — Yes
Source compatible — Yes
Serialization compatible — Yes
Data compatible — Yes
— DateTimeZone data updated to version 2015g
Semantic compatible — Yes

When binary compatibilities are broken then Majour Version changed. For example v2.0 changelist

Explanation from  Stephen Colebourne, author of Joda-Time:

Build system

Not part of compatibility, just a fact about the build system in use

Example:  in v2.2

 - Ant build removed. Build only on Maven now.

Also, I think, it may be changing in artifact coordinates: groupId, artifactId or even changed repository. Maybe some changes in manifest, for example required dependencies. Or added OSGI manifest info. Maybe some classes was repackaged. Or old artifact was built with ANT and doesn’t contains a Maven’s pom.xml manifest like horrible Xerex library  and then was mavenized.

It also may be recompilation with optimizations or without debug information.

But I think that changing in packaging may be a separate kind of compatibility change.

Binary compatible and Source compatible

Whether the whole API is binary compatible or source compatible. See this document

Serialization compatible

Whether the serialization format is compatible with the previous version.

Data compatible

Whether the data, time-zone data in this case, has changed.

For example: some time zone was changed or even removed. If your database stores old timezone id and application trying to create a date object with this timezone id you’ll get an exception.

Semantic compatible

Whether there is some other semantic change. This is relevant when the classes and methods have not changed, but the meaning of a method has.

See section Serialization incompitables below

For example:  v2.0 has a lot of semantic changes

Previously, DateTimeZone.forID matched time zone names case-insensitively, now it is case-sensitive

I think it always hard to separate semantic changes when dealing with bugs. For example, JDK has bug when using null as key in Map

And that was a question is this a bug or feature.

Another one example, is Apache Commons Lang library. In version 3 the methods StringUtils.isAlpha(), isNumeric() and isAlphanumeric() now all return false when passed an empty String. Previously they returned true.

Semantic looks like correlated with behavior compatibility. When changed not signatures but they flow or contract.

Also it’s often situation when behavior was just undefined by contract. For example old class Vector doesn’t declare behavior about removing elements during iteration.  That’s why was created new class ArrayList and Vector was accepted as Superseded.
So, deprecation, as any changes in contract may be also some kind of semantic change.

 

Serialization incompitables

Compatible incopatibility

Also I think that it should be some kind of «reverse compatibility» that means a contract usage. For example, I saw an issue when subclass of HashMap doesn’t follow a contract. This change was compatible in all ways but all clients become incompatible. How to predict it, I don’t know.

Each of developer has experience when you can’t change something in your API because there is some clients that abuse it or implemented incorrectly. So it should have it’s own classification and developers should think about this kind of reverse incompatibility.

Complexity compatibility

I mean the complexity of program in wide sense: algorithm speed, it’s derivate and consumption of resources (memory, i/o, CPU, disk space), and even source code beautification and structural changes like refactoring. You know,  some algorithms may use more memory but use low processor.

For example, in some early versions of 64 bit JDK your application may fail with OutOfMemory error. This was change absolutely compatible in all categories mentioned before.

Another one sample is when new version of program is working more slowly than previous.

It may not change a contract and flow or anything else may it’s also may be changes that requires an attention.

 

Tool for checking API and BPI

Service provider interface (SPI)

https://stackoverflow.com/questions/2954372/difference-between-spi-and-api
https://en.wikipedia.org/wiki/Service_provider_interface

Also interesting

Как снять хату в Куёвке

Спросил недавно меня молодой программист как снять квартиру в Киеве, отрыл в заметках и сделаю для него постик.

Тема популярная так что гуглить \ спрашивать есть смысл. Ойтишнеги регулярно делятся опытом.

Ну и первое на чём вообще все зависают это в каком районе снять жильё.
Если ты из другого города переезжаешь — снимай хоть комнату, хоть что угодно лишь бы поближе к работе, подешевле и побыстрее.
Спустя месяц-два как закрепишься в городе уже будешь выбирать постоянное место.
Как и все другие сложные комплексные критерии тут всё очень и очень точно оцениваются деньгами. Поэтому смотри сразу на жёлто-зелёную зону (это спальные районы):
map_address

Карта с сайта http://rating.lun.ua/

Я считаю что стоит постараться снять на правом берегу и желательно на синей ветке метро. На синей ветке больше самых нужных станций: Контрактовая, Майдан, ПЛТ, Олимпийская. Самая паршивая это зелёная ветка. Она прям вся неудачная.
Если позволяют деньги и особо не хочется заморачиваться — снимайте на Оболоне.
Там есть где потусить (Дримтаун) есть где погулять (набережная), есть инфраструктура и в центр добираться недолго.
Короче там явно меньше шансов неудачно снять квартиру.

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

Далее, открываешь газету объявлений, например http://www.aviso.ua/kiev/ или OLX и обзваниваешь все все номера, не важно какой там написан район. Это всё агенства и у них много квартир в разных уголках города. Говоришь кто ты, что хочешь и пускай тебе ищут. Например: «Я программист, с девушкой, без детей и дивотных. Ищу однокомнатную на Оболоне. В ней должно быть: стиралка, шкаф, письменный стол, диван, микроволновка, кондиционер».

Агенства берут половину стоимости месячной аренды, т.е. если ты снял однушку за 2500 в месяц то агенство сдерёт с тебя 1250. Плюс ты должен заплатить ещё за последний месяц.
В итоге ты должен будешь выложить 2500 * 2 + 2500 / 2 = 6250 грн.

Ну и в соцсетях есть всякого рода группы где можно обойтись без риелторов:
http://vk.com/arenda_bez_posrednikov
https://www.facebook.com/groups/rieltory.zlo
https://www.facebook.com/groups/kyivrent
Но скорее всего ты там только время просрёшь.

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

жилое состояние — нежилое состояние;
хорошее состояние — нехорошее состояние;
косметический ремонт — отсутствие ремонта;
ремонту 4 года — нет ремонта;
ремонт 90-х годов — ремонта не было уже тогда когда ты поступал в универ;
евроремонт — хоть какой-то ремонт;
отличная гостинка — оксюморон;
требует ремонта — не было ни одного ракурса, чтобы сделать пристойные фотки;
квартира готова к воплощению ваших самых смелых дизайнерских фантазий — или голые стены или там 50 лет жила бабушка, которую похоронили неделю назад;
квартира достойна вашего внимания — риэлтору срочно нужны деньги;
квартира делалась для себя — безвкусная дорогая квартира;
шикарная квартира — очень дорогая и очень безвкусная квартира;
квартира еще не сдавалась — квартиру никак не могут сдать;
отличная планировка — пол-квартиры кухня и коридоры;
удачная планировка — обычная планировка;
функциональная планировка — все натыкано одно на одном;
уютная квартира — маленькая квартира;
светлая, солнечная квартира — летом солнце шпарит целый день, в квартире 40 градусов;
видовая квартира — квартира выше 5-го этажа;
можно использовать под офис — квартира на первом этаже;
царский дом — очень старый дом;
сталинка — старый кирпичный дом;
спецпроект — старый многоэтажный панельный дом;
ведомственный дом — старый дом со старухами;
дом клубного типа — любой дом построенный начиная с 2000 года;
элитный дом — новый дом;
кухня-студио — снесли стену кухни;
дом введен в эксплуатацию — дом будут доделывать еще полгода;
в историческом центре — в окружении старых домов;
возле метро — 2 остановки до метро;
5 мин до метро — рассчитывалось по времени Усейна Болта на 100 метровке;
удобная транспортная развязка — дом у дороги;
развитая инфраструктура — есть продуктовый магазин;
приятные, отзывчивые соседи — старые бабки;
элитные соседи — нувориши, быки, силиконовые телки и прочая нечисть;
облагороженная территория — двор закатан в асфальт, кустики и деревца;
вид на Покровский монастырь — из окна кухни, если стать вот тут и наклониться, видно пол левого купола;
рядом 2 озера — комары и вонь;
парковка во дворе — нет парковки;
автономное отопление — бойлер висит над унитазом;
во дворе детская площадка — во дворе когда-то была детская площадка;
квартира в классическом стиле — дубовые комоды и полосатые обои;
дизайнерский ремонт — оранжевые стены и синяя мебель.

в квартире есть:
мебель — ненужная мебель;
дорогая итальянская мебель — очень дорогая безвкусная мебель;
диван — поломанный диван;
холодильник — холодильник с дачи;
стиральная машинка — старая стиральная машинка;
шкаф — бабушкин шкаф;
новая сантехника — самый дешевый унитаз;
венецианская штукатурка — WTF???;
торг — скидываем 20%;
хороший торг — цена завышена в 2 раза;
цену снижено — стоимость завышено в 1,5 раза.

Как снять квартиру самостоятельно.
Сегодня ситуацию на рынке аренды жилой недвижимости можно назвать штормом. Бюджетные варианты выстреливают редко, а если и выстреливают. То не успевают «доходить» до риэлторских компаний. Да, и риэлторы стараются не брать бюджетные квартиры в работу, беготни много, расстояния большие ( уходит много времени на перемещения), а можно банально не успеть приехать на квартиру. Сегодня арендодатель устраивает что-то наподобие аукциона. Проводить просмотры начинает уже за месяц до предполагаемого освобождения квартиры ,а арендаторы жалуются, что арендаторы начинают поднимать цену, даже если живешь достаточно долго. При этом снять другую квартиру практически нереально за эту же цену. Несмотря на то, что я являюсь управляющим партнером риэлторской компании «КДУ-риэлти групп», и сегодня в нашей компании работает много переселенцев, которым тоже нужно зарабатывать на хлеб, я решила написать ПАМЯТКУ для вынужденных переселенцев, как самому снять квартиру в аренду и получить минимум седых волос.
1. Запаситесь терпением и интернетом, а также напишите объявление «Сниму для себя квартиру» и распечатайте его в ХХХХ эксземплярах.
2. Поклейте объявление (желательно, после 11 часов дня, когда уже пройдут дворники и оборвут все объявления) в интересующем Вас районе, а лучше во всей ветке метро. Если работа покажется Вам слишком трудоемкой, можно нанять расклейщиков за деньги. Они работают по районам, их работа стоит от 100 грн, и их контакты есть в интернете.
3. Пройдите по ссылке http://top.bigmir.net/show/realty/ и выберите город, в котором ищете квартиру. Вам придется разобраться в куче информационного мусора и откровенных фейков, которые в огромном количестве представлены на сайтах по аренде недвижимости. Справедливости ради надо сказать, что в любом городе, также и в Киеве, есть честные и порядочные посредники, но они работают, в основном, в ценовом сегменте выше среднего, в бюджетном же можно «нарваться» как на мошенников, так и на просто неадекватов или лгунов. Много общайтесь по телефону с целью понять, имеете ли дело с аккредитованным риэлтором, требуйте (просите) назвать компанию, от которой он работает.
4. Поставьте фильтры на сайтах, где ищете квартиру «частное» и «юез комиссии». И хотя, в большинстве случаев это не спасает, зерна от плевел при кропотливом отборе найти можно. Что ж, придется поработать Золушкой. Вопросы ставьте такие
-Сколько лет ремонту?
-Соответствуют ли фотогорафии на сайте сегодняшнему состоянию квартиры и когда были сделаны?
-Можно ли посмотреть квартиру прямо сейчас и сколько человек уже в очереди записано? С какого времени начинаются просмотры? И приезжайте на час-два раньше, если хотите успеть снять квартиру.
5. Разделитесь и езжайте на просмотры в разные места и на разные квартиры, чтобы успеть снять бюджетную квартиру. Имейте при себе сразу деньги в сумме хотя бы на одну месячную плату в качестве залога;
6. Погуглите телефон собственника, в 90% случаев, поисковик покажет, что еще продавал собственник, или собственник ли это.
7. Самое важное:
-не оплачивайте услуги риэлтора ДО просмотра квартиры. Все, кто просит оплатить 100-250-500 грн до просмотров — мошенники. Не ведитесь на низите цены, это «замануха»; Настоящий риэлтор получает комиссию только при подписании договора;
-проверяйте правоустанавливающие документы собственника на квартиру, прописку, поговорите с соседями, знают ли они хозяина;
-не платите деньги хозяину без договора, скачайте договор аренды (образцы есть в интернете) и подкорректируйте его в соответствии со своими требованиями;
-внимательно изучите и согласуйте договор, чтобы через месяц не пришлось выезжать, если хозяин вздумает поднять цену;
-подписывайте приложение к договору, в котором указано имущество владельца, а также сумма денег, которую Вы платите ему за аренду.
Повесьте ПАМЯТКУ себе на стену и следуйте ей, когда возникнет необходимость в аренде квартир.
И компания КДУ-риэлти групп и я, Маленкова Елена, желаем Вам удачи!

(с) отсюда

Похожих рекомендаций много например тоже полезная Как быстро и безболезненно снять квартиру в Москве во многом пригодна и к Киеву.

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

От себя добавлю несколько важных пунктов:

  1. Всем хатосдавателям ну очень как интересно что вы будете делать в хате. Они сразу представляют как ты их нежную квартирку всю засрёшь и как они будут отдраивать. Это неизбежно. Меня даже прямым текстом спрашивали не буду ли я устраивать оргий. Расслабь их, я например пошутил что оргии отличная идея! Твоя главная задача во время знакомства с ними определить готовы ли они с этим смириться. Это можно определить по фразам типа «ну в квартире не курите, на балконе можете»
  2. Меняй замки сразу по заезду, это обязательное условие. Когда договариваешься с хозяином говори что у тебя будут хранится документы и ноутбук а сам ты ездишь по командировкам. Во первых эти ключи были у бывших жильцов а то и вовсе квартира могла посуточно сдаваться, обнесут квартиру. Хозяин может согласится но попросить себе ключи на случай потопа. Скажи что дашь телефон своей подруги которая рядом живёт, а хозяина и его семью ты не знаешь, и прва рисковать документами не имеешь. Реальный случай когда сын хозяина, алкаш, украл ключи и обнёс квартирантов. Во вторых, ты не поверишь, но хозяйка квартиры, особенно если это бабка может тайком приходить и даже например подкладывать обратно скатерть которую ты убрал со стола.
  3. Остюда вывод: никогда, ни при каких обстоятельствах не снимай квартиру у пенсионеров. Какими-бы они адекватными не выглядели. Не знаю ни одного случая когда это бы не заканчивалось каким то угарным трешем.
  4. Также, если есть консьержка — с ней по любому будут конфликты. Это неизбежно, как неизбежны проблемы с ментами, учителями и прочим генным мусором который получил кусочек власти, такая у них профессиональная деформация.
  5. Помни: Соседи тебя ненавидят и на этой почве кстати подружатся с консьержкой.
  6. Я бы подитожил так: для молодого ойтшнега самое главное в квартире — адекватный хозяин, вид из окна и близость к метро.

Если не знаешь центра на вот тебе экскурсия от Сашечки-няшечки

Ну и если ты молод и только переехал в Киев ещё не зная города то мне в своё время очень понравились ночные туры по городу которые делали студенты КПИшники для своих первокурсников.
Киев, особенно Верхний старый город (от Большой Житомирской до Бульвара Шевченко ) ночью кайфовый. Можешь поискать что нибудь похожее.

По себе могу точно сказать — место очень и очень красит человека.

[Linkset] Несколько статей про карьеру в IT

Что спрашивают на собеседованиях Senior Java Developers?

За прошлые две недели я прошёл больше двадцати собеседований. Может больше, может меньше, сложно сказать, большинство из них проходил по скайпу «вот прям сейчас». Ещё пару таких неделек и я бы побил рекорд комбатса 🙂
Немного вестей с полей, очень субъективно:
* Мне сложно судить, но ощущение что вакансий по Java в Киеве заметно поубавилось. Судить сложно, потому что в прошлый раз когда искал работу я был мидл уровня и был не очень востребованным на рынке. Ну и проект в прошлый раз я нашёл за день, там искали именно специалиста по Grails как раз как я.
Но в любом случае, новые компании не могут аутсорсить в Украину. Многие делают массовый релокейт своих сотрудников. Массово и планомерно сгребают всех в Таллин и Краков.
* В этот раз по Grails не смог найти ничего. Очень хотел попасть в TransferWise, у меня релевантный опыт к ним и там толковый тимлид, но они в Черкассах. Я предложил на испытательный срок поработать у них в Черкассах а потом на удалёнку только подъезжая на бэклог грумниг, но сказали так им не пойдёт.
* Джинни реально рулит — очень много отзывов пришло на моё резюме. В LinkedIn кроме спрамерш тоже нашлось несколько настоящих рекрутёрш. Из сайтов вакансий тоже только по ДОУ Работа прошёлся, несколько отличных вакансий было.
* Крупные аутсорсы — походу отстой. Из крупных только Люксофт ещё шевелится и работает.
Например ЕПАМ свои вакансии на ДОУ вообще не публикует, но я зашёл на их сайт нашёл таки открытые позиции и зааплаился на несколько на которые подхожу, ии… всё. Никакого ответа. Вообще у меня такое впечатление что в Епаме уволили весь HR отдел, а чтобы нанять новых нет эйчаров.
UPD: епамовский рекрутёр прислал в личку:

Привет, Сергей Спасибо огромное за написание статью про собеседования. Мне как рекрутеру она показалась мегаполезной. Рекрутерский отдел в ЕРАМе не умер, а очень даже процветает, за два последних месяца мы наняли около 200 человек и стали самой большой компание Украины. В общем, теперь у тебя на одного рекрутера в сети больше! В общем пиши если что! Я стараюсь хорошо работать! P.S. Поскольку я обещал быть полезным рекрутером, поделюсь с вами информацией о самых удобных редакторах для CV 😉 https://epa.ms/5CvMakers

У Глобалоджика вакансий по джаве не было на сайте вообще, также у Инфопульс. У Сиклума было вакансий клёвых, но видать не заинтересовало моё резюме. Отписались только вчера, когда я уже офер принял. А ведь это всё лидеры в топах.
Люксофт не подкачал, две крутые позиции предложили, жаль моего уровня не хватило — там нужно было хорошо уметь многопоточность.
* Да, кстати к заголовку поста, синьёров спрашивают по сути тоже что и мидлов и джуниоров: Java Core, коллекции, мапинги в хибернейт, скоупы бинов в спринге, пару задачек на агрегацию SQL, но в добавок особенно уже начинают расспрашивать низкоуровневую жесть: про то как работает Garbage Collector, как исправлять проблемы на сервере через jconsole, и особенно жёстко Concurrency — что такое ThreadLocal, volatile. Проблема в том что конкаренси это такая жёсткая тема которую ну просто невозможно изучить не поработав на проекте с нею. Вопросы по алгоритмам почти всегда — на знания деревьев и их обход.
Ну и как всегда к реальной практике вопросы обычно отношения почти не имеют.
* Почти все взяли моду спрашивать логические задачки на собеседовании и давать тестовые задания. Причём если логические задачи ещё хоть как-то можно обосновать, то тестовые задания я вообще не понимаю зачем давать. Вот прошёл я отлично техническое интервью, ребятам явно понравился, да и я бы уже готов к ним идти, но нет — вот вам тестовое задание: напишите простую веб апликуху с импортом в БД из CSV файла.
А у меня через час после них следующее собеседование назначено, а на следующий день ещё три. Такую апликуху сделать — как два пальца, но блин это всё равно время часа на четыре минимум, за которые никто не заплатит. А когда ты почасово поработаешь на удалёнке то начинаешь особо ценить время. И особенно его начинаешь ценить когда вторую неделю не зарабатываешь а ходишь по собеседованиям.
И делать ну вот реально не хочется: задача не интересная, тебя по скайпу перебивают эйчары, и вообще лучше время потратить чтобы освежить знания про конкаренси чтобы завтра на собеседовании не краснеть. И даже примитивную программу писать всё таки долго: ты, например, можешь отлично шарить хибернейт, но тебе всё равно нужно будет потратить время чтобы его правильно подключить к проекту, потому что ты этого не делал никогда а работал на работе где уже готовое приложение было. Потом прописать мапниги, наколбасить тесты, побороть пару непонятных исключений из-за опечаток — вроде и фигня, а на каждом новом проекте съедает кучу времени.

И что этим тестовым заданием хотели посмотреть? Как я пишу код? Так для этого можно на гитхаб зайти посмотреть, я же его указал в резюме. Ну или прямо на собеседовнии можно простой код написать.
Узнать как я шарю техническую жесть и знания технологий? Ну так тут задача на один контролер с десятью строчками кода. Ну и опять таки — резюме, гитхаб, вопросы.
В другой компании дали обычную TDD кату пройти. Опять таки: ну и что по этой кате можно узнать? Шарю ли я ТДД? Ну шарю, это можно и вопросом выяснить. Может какую архитектуру я наваял в итоге? Так по ТДД архитектура всегда выходит не самая лучшая, зато рабочая. Это всегда так при разработке снизу вверх.
И да, тоже пять часов её втыкать не интересно.

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

А вот что мне реально понравилось и считаю хорошей практикой — это когда мне дали листинг кода и спросили какие ты тут проблемы видишь и как бы отрефакторил.
И тут да, сразу поехало: тут ненужный автобоксинг, тут дженерик бы дописать, вот это в метод заэкстрактить, тут в JDBC лучше сделать prepared statement и ещё забыли ресурс закрыть. 15 минут за которые интервьювер узнал про меня в разы больше чем за пятичасовое тестовое задание.
Когда в следующий раз буду сам собеседовать обязательно возьму эту практику.

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

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

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

Что спрашивать на собеседовании