IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

Поехать работать в Австралию или Таиланд, когда тебе 25 и нет семьи, не так и сложно. И таких историй большое количество. А вот переехать, когда тебе под 40, жена и трое детей (8 лет, 5 лет и 2 года) — задача другого уровня сложности. Поэтому хочу поделиться своим опытом переезда в Германию.

IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

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

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

  1. Едем на 2 года минимум.
  2. Переезжать будем все сразу.
  3. Съемную квартиру в Питере не будем оставлять за собой (30000 в месяц + коммуналка — вполне приличная сумма).
  4. Места в садиках и школе оставим пока за собой. На самый экстренный случай.
  5. С собой берем по одному большому чемодану и одной маленькой сумке на каждого члена семьи.

Более чем за десять лет совместной жизни было накоплено столько всего нужного и ненужного в квартире и на балконе, что не передать словами. Что смогли продать за месяц – продали, что-то забрали друзья. 3/4 всего остального пришлось просто выкинуть. Сейчас об этом ничуть не жалею, а тогда было безумно жаль все это выкидывать (а вдруг пригодится?).

Мы приехали сразу в трехкомнатную квартиру, которую нам подготовили. Из мебели там было только стол, 5 стульев, 5 раскладушек, холодильник, плита, набор посуды и столовых приборов на 5 человек. Жить можно.

Первые месяца 1,5 – 2 мы жили в таких спартанских условиях и занимались оформлением всевозможных бумаг, садиков, школ, договоров на газ, электричество, интернет и т.д.

Школа

Практически с первого дня пребывания в Германии ваш ребенок обязан посещать школу. Это прописано в законе. Но есть проблема: на момент переезда никто из наших детей не знал ни одного слова по-немецки. До переезда я читал, что ребенка без языка могут взять на один или даже 2 класса ниже. Или дополнительно к этому отправить на полгода в специальный интеграционный класс для изучения языка. На момент переезда сын учился во втором классе, и мы подумали, что в садик его в любом случае не отправят, а понижение на 1 класс не так страшно. Но нас без проблем приняли во второй класс без понижения. Более того, директор школы сказала, что т.к. ребенок не знает немецкого совсем, то с ним будет дополнительно заниматься бесплатно один из учителей!!! Внезапно, не правда ли? Ребенка забирал учитель либо с не самых важных уроков (музыка, физкультура и др.), либо на продленке. Еще дома по два часа занятий немецким в неделю с репетитором. Через год сын стал одним из лучших учеников в классе по немецкому среди немцев, в Германии!

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

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

Чем очень запомнилась русская школа – невероятным количеством домашних заданий в первом и втором классе. Жена по 2-3 часа каждый вечер делала их с сыном, т.к. ребенку самому было просто не осилить. И не потому, что он глупый, а просто очень много и сложно. Тут же есть специальная продленка, на которой в течении 50 минут учитель делает домашнее с детьми. Потом они идут на улицу гулять. На дом домашнего почти не остается. Бывает, что один раз в неделю по пол часа дети что-то делают дома, если не успели в школе. И, как правило, сами. Основной посыл: если ребенок не успел сделать все домашнее за час, значит его задали слишком много, и учитель был неправ, поэтому ему нужно обязательно сообщить, чтобы в следующий раз он задал меньше. С пятницы на понедельник домашку не задают вообще. На каникулы тоже. Дети тоже имеют право на отдых.

Садик

В разных местах ситуация с садиками разная, где-то люди ждут по 2-3 года в очереди, чтобы туда попасть, особенно в крупных городах (прямо как в Питере). Но немногие знают, что если твой ребенок не ходит в садик, а сидит дома с мамой, то мама может получать за это компенсацию в 150 евро в месяц (Betreuungsgeld). А вообще садики платные, примерно 100-300 евро в месяц (зависит от федеральной земли, города и самого садика), исключение составляет посещение садика детьми за год до школы – в этом случае садик бесплатный (дети должны социально адаптироваться к школе). С 2018 года детские сады стали бесплатными в некоторых землях Германии. Нам посоветовали обратиться в католический детский сад, т.к. он находился недалеко от нашего дома и был значительно лучше других детских садов в окрестностях. Но мы же православные!? Оказалось, что в католические сады и школы неохотно берут евангеликов, протестантов, мусульман, а православных берут охотно, считая нас братьями по вере. Нужно лишь свидетельство о крещении. Вообще католические детские сады считаются одними из лучших. Они получают хорошее финансирование, но и стоят они дороже. Мои младшие дети тоже не говорят по-немецки. Воспитатели на этот счет сказали нам следующее: даже не пытайтесь учить своего ребенка говорить по-немецки, вы научите его говорить неправильно. Мы это сделаем сами гораздо лучше вас, и это проще чем потом его переучивать, а вы учите дома русскому. Более того, они сами купили русско-немецкий разговорник чтобы в начале найти общий язык с ребенком. Представить себе такую ситуацию с иностранным ребенком, не говорящим по-русски, в садике Питера или Воронежа я не могу. Кстати в группе из 20 детей работают одновременно 2 воспитателя и один помощник воспитателя.

Основные отличия от наших детских садов:

  1. Завтрак дети приносят с собой сами. Обычно это бутерброды, фрукты и овощи. Сладкое давать с собой нельзя.
  2. Садик работает только до 16:00. До этого времени ребенка нужно забрать. Если не забрал – оплата сверхурочных для воспитателя и предупреждение. После трех предупреждений детский сад может расторгнуть с вами договор.
  3. Нет уроков. Детей не учат читать, писать, считать и т.д. С детьми играют, лепят, строят, рисуют – занимаются творчеством. Занятия появляются только у тех детей, которые в следующем году должны пойти в школу (но и там ребенка не будут учить читать и решать примеры, в основном это занятия на общее развитие).
  4. Группы специально сделаны разновозрастными. Вместе в группе находятся дети 3-6 лет. Старшие помогают младшим, а младшие тянутся за старшими. И это не от нехватки групп или воспитателей. У нас в садике 3 таких группы. Отдельно только ясельная группа, которая для детей от года до трех лет.
  5. Ребёнок сам выбирает, чем и когда ему заниматься. Привязаны ко времени только приемы пищи и совместные мероприятия.
  6. Дети могут гулять тогда, когда они хотят. Из каждой группы есть отдельный выход в огороженный двор детского сада, где постоянно находится кто-то из воспитателей. Ребенок может сам одеться и пойти гулять и гулять хоть все время. У нас в группе есть специальная доска, разделенная на сектора: туалет, творчество, строительный уголок, спортивный уголок, куклы, двор и т.д. Когда ребенок идет во двор, он берет магнитик со своей фотографией и перемещает его на сектор «Двор». Летом родители приносят средства от загара, и воспитатели им мажут детей, чтобы те не обгорели. Иногда надувают большие бассейны, где дети могут купаться (для этого во время летней жары мы приносим купальные принадлежности). Во дворе есть горки, качели, песочница, самокаты, велосипеды и др.Так выглядит наша группа.IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже тамIT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там
  7. Воспитатели периодически берут детей с собой на прогулку вне садика. Например, воспитатель может пойти с детьми в магазин, чтобы купить свежих булочек к обеду. Вы можете представить себе воспитателя с 15-ю детьми в пятерочке или магните? Вот и я не мог! Теперь это реальность.
  8. Для детей часто организуются поездки в разные места. Например, в кондитерскую где они месят тесто, лепят фигурки и пекут печенье вместе с кондитером. Каждый ребенок потом забирает с собой большую коробку такого печенья домой. Или на городскую ярмарку, где они катаются на каруселях и едят мороженое. Или в пожарную часть на экскурсию. Причем для этого не заказывается трансфер, дети едут на общественном транспорте. Оплачивает такие мероприятия детский сад сам.

Пособия

Это может показаться странным, но каждая семья, которая официально проживает на территории Германии имеет право получать пособие на детей. На каждого ребенка, до достижения им 18 летнего возраста государство выплачивает по 196 евро в месяц (даже иностранцам, которые приехали сюда на заработки). На троих мы получаем, как не сложно посчитать, 588 евро чистыми на свой счет ежемесячно. Более того, если ребенок в 18 лет пошел учиться в ВУЗ, то пособие выплачивается до достижения им 25 лет. Внезапно! До переезда я не знал об этом! А ведь это очень хорошая прибавка к ЗП.

Жена

Обычно при переезде за границу жены не работают. Тому много причин: незнание языка, неактуальное образование и специальность, нежелание работать за существенно меньшие деньги, чем муж и т.д. В Германии служба занятости может оплатить языковые курсы для супруга, который не работает по причине незнания языка. В итоге моя жена за эти три года выучила немецкий язык до уровня C1 и поступила в этом году в местный университет на специальность прикладное программирование. Благо обучение почти бесплатное. Ей, кстати, 35. До этого в Петербурге она получила высшее образование в сфере PR и работала по специальности.

Карьера

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

  • В сфере системного администрирования и поддержки (моя специализация на момент переезда) платят меньше, чем в сфере разработки. Вакансий гораздо меньше и перспектив карьерного и зарплатного роста также немного.
  • Немецкий язык. 99% всех вакансий требуют знания немецкого языка на хорошем уровне. Т.е. вакансий, где достаточно знать только английский раз в 50 меньше, чем тех, где требуют знания немецкого. В небольших городах вакансии только со знанием только английского почти отсутствуют.
  • Аренда. Стоимость аренды в больших городах гораздо выше. Например, 3-комнатная квартира 80 кв. м. в Мюнхене (население 1,4 млн. чел.) обойдется в 1400 – 2500 в месяц, а в Касселе (население 200 тыс. чел.) всего 500 – 800 евро в месяц. Но есть момент: за 1400 в Мюнхене квартиру снять очень сложно. Знаю семью, которая прожила 3 месяца в гостинице, прежде чем снять хоть какую-то квартиру. Чем меньше комнат – тем выше спрос.
  • Разброс зарплат между крупными и небольшими городами всего около 20%. Например, Портал gehalt.de на вакансию Java разработчик в Мюнхене дает вилку 4.052 € – 5.062 €, а Java разработчик в Касселе 3.265 € – 4.079 €.
  • Рынок работника. Как писал Дмитрий в статье «Особенности поиска работы в Европе», в больших городах царит «рынок работодателя». Но это в больших городах. В небольших городах царит «рынок работника». Я два года отслеживаю вакансии в своем городе. И могу сказать, что вакансии в сфере ИТ висят также годами, но вовсе не потому, что компании стараются снять сливки. Нет. Нужны просто нормальные люди, готовые учиться и работать. Фирмы готовы расти и развиваться, но для этого нужны квалифицированные сотрудники, а их мало. И компании готовы брать и учить сотрудников. И платить при этом хорошие деньги. В нашей компании из 20 разработчиков 10 были полностью, обучены с нуля самой фирмой по системе среднего специального образования (Ausbildung). Вакансия разработчика Java в нашей компании (да и во многих других) висит больше двух лет постоянно.

Тогда я понял, что переезжать в большой город нам смысла нет вообще, да и не хотел я уже к тому времени. Небольшой уютный город с развитой инфраструктурой. Очень чистый, зелёный и безопасный. Школы и садики отличные. Все рядом. Да, платят в Мюнхене больше, но эта разница зачастую полностью съедается более высокой арендной платой. Кроме того, с садиками проблема. Большие расстояния до садика, школы и работы, как и в любом крупном городе. Более высокая стоимость жизни.

Так мы решили остаться в том городе, куда приехали изначально. А, чтобы иметь больший доход – я решил сменить свою специальность, уже будучи здесь, в Германии. Выбор пал на Java разработку, поскольку она оказалась наиболее востребованной и высокооплачиваемой областью, даже для начинающих. Начал с онлайн-курсов по Java. Потом самостоятельная подготовка к сертификации Oracle Certified Professional, Java SE 8 Programmer. Сдача экзаменов, получение сертификата.

Параллельно 2 года я учил немецкий. Почти в 40 лет начинать учить новый язык сложно. Реально сложно, плюс я всегда был уверен, что у меня нет способностей к языкам. По русскому и литературе у меня всегда были в школе тройки. Но наличие мотивации и регулярные занятия дали свой результат. В итоге я сдал экзамен на знание немецкого на уровне С1. В августе этого года я нашел новую работу Java-разработчика на немецком языке.

Поиск работы в Германии

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

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

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

Вот список, наиболее актуальных мест для поиска работы

Отдельно хочу отметить сайт государственной службы занятости: www.arbeitsagentur.de. На удивление, там реально много хороших вакансий. Я даже считаю, что это наиболее полная подборка актуальных вакансий по всей Германии. Кроме того, на сайте содержится много полезной информации из первых рук. О признании дипломов, разрешении на работу, пособиях, оформлении документов и т.д.

Процесс приема на работу в Германии

Это действительно процесс. Если в Питере я мог прийти на собеседование, а через 2 дня уже выйти на работу, то тут это так не работает (особенно в небольших городах). Дальше я расскажу про свой случай.

В январе 2018 я определился с той компанией в которой хотел устроиться и стал целенаправленно изучать тот стек технологий, с которым они работали. В начале апреля я сходил в местный университет на ярмарку вакансий для начинающих специалистов, где была представлена большая часть работодателей из ИТ сферы. Не очень комфортно чувствуешь себя начинающим разработчиком в 40 лет, когда вокруг тебя одни двадцатилетние ребята. Там я познакомился с менеджером по персоналу той самой компании, в которую и хотел попасть. Я коротко рассказал о себе, о моем опыте и планах. Менеджер по персоналу похвалила мой немецкий и мы договорились, что я отправлю им свое резюме. Я отправил. Мне позвонили через одну неделю и сказали, что хотят как можно скорее пригласить меня на первое собеседование… через три недели! Три недели, Карл!?!?

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

Первое собеседование прошло достаточно хорошо, как я посчитал. Но работодатель взял неделю «на подумать». Через неделю мне действительно позвонили и обрадовали тем, что я прошел успешно первое собеседование, и они готовы пригласить меня на второе техническое собеседование еще через 2 недели. Еще 2 недели!!!

Второе, техническое собеседование, было просто проверкой соответствия меня тому, что написано у меня в резюме. После второго собеседования – еще неделя ожидания и бинго – я им понравился, и они готовы обсудить условия сотрудничества. Мне назначили встречу для обсуждения деталей работы еще через одну неделю. На третьей встрече меня уже спросили про желаемую зарплату и дату, когда я смогу выйти на работу. Я ответил, что смогу выйти через 45 дней – 1 августа. И это тоже нормально. Никто не ждет, что ты выйдешь завтра.

Итого с момента отправки резюме до официального оффера по инициативе работодателя прошло 9 недель!!! Не понимаю, на что рассчитывал человек, который написал статью «Мой ужасный опыт работы в Люксембурге», когда думал, что за 2 недели найдет работу на месте.

Еще один неочевидный момент. В Питере обычно, если ты сидишь без работы и готов выйти на новую работу хоть завтра – это большой плюс для работодателя, потому, что всем нужно было еще вчера. Во всяком случае я не сталкивался с тем, чтобы это воспринималось негативно. Когда я сам набирал себе персонал – тоже воспринимал это нормально. В Германии всё наоборот. Если ты сидишь без работы, то это реально очень негативный фактор, сильно влияющий на вероятность того, что тебя не возьмут. Немцев всегда интересуют пробелы в твоем резюме. Перерыв в работе больше одного месяца между предыдущими местами работы уже вызывает настороженность и вопросы. Опять же повторюсь, речь идет о небольших городах и об опыте реботы в самой Германии. Возможно, в Берлине все по-другому.

Зарплата

Если вы ищите работу, находясь в Германии, то практически нигде в вакансиях вы не увидите зарплат. После России это выглядит очень неудобно. Можно потратить 2 месяца на собеседования и переписку, чтобы понять, что уровень ЗП в компании вообще не соответствует твоим ожиданиям. Как же быть? Для этого можно обратить внимание на работу в государственных учреждениях. Работа там оплачивается в соответствии с тарифной сеткой «Tarifvertrag für den öffentlichen Dienst der Länder». Сокращенно TV-L. Я не говорю, что нужно идти работать в государственные структуры. Но эта тарифная сетка – хороший ориентир по зарплате. А вот и сама сетка на 2018 год:

Категория TV-L 11 TV-L 12 TV-L 13 TV-L 14 TV-L 15
1 (Начинающий) 3.202 € 3.309 € 3.672 € 3.982 € 4.398 €
2 (После 1 года работы) 3.522 € 3.653 € 4.075 € 4.417 € 4.877€
3 (После 3 лет работы) 3.777 € 4.162 € 4.293 € 4.672 € 5.057 €
4 (После 6 лет работы) 4.162 € 4.609 € 4.715 € 5.057 € 5.696 €
5 (После 10 лет работы) 4.721 € 5.187 € 5.299 € 5.647 € 6.181 €
6 (После 15 лет работы) 4.792 € 5.265 € 5.378 € 5.731 € 6.274 €

Причем опыт предыдущей работы также может учитываться. К тарифной категории TV-L 11 относятся обычные разработчики и системные администраторы. Ведущий системный администратор, старший разработчик (сеньор) — TV-L 12. Если у вас ученая степень, или вы руководитель отдела то можете смело претендовать на TV-L 13, а если под вашим руководством работают 5 человек с TV-L 13, то ваш тариф TV-L 15. Т.е. начинающий сисадмин или программист получает 3200 € на входе, даже в гос. структурах. Коммерческие структуры обычно платят на 10-20-30% больше в зависимости от требований к кандидатам, конкуренции и т.д.

UPD: как правильно заметил juwagn, столько получает не начинающий сисадмин, а сисадмин с опытом.

Тарифная сетка индексируется каждый год. Так, например, с 2010 г. зарплаты в этой сетке выросли на ~18,95%, а инфляция в этот же период составила ~10,5%. Кроме этого часто встречается рождественская премия в виде 80% от месячного оклада. Даже в государственных компаниях. Согласен, не так вкусно, как в США.

Условия работы

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

Рабочий день у меня не нормирован. Это значит, что я могу начинать работу как в 06:00, так и в 10:00. Никого ставить в известность об этом я не должен. Я должен отработать 40 часов в неделю. Можно отработать в один день 5 часов, а в другой – 11 10. Всё просто заносится в систему учета рабочего времени с указанием проекта, номера заявки и потраченного времени. Время на обед не входит в рабочее время. Но можно и не обедать. Мне очень удобно. Так три дня я приезжаю на работу к 07:00, а супруга отвозит детей в садик и в школу, я же их забираю (у нее занятия вечером). А еще 2 дня наоборот: я отвожу детей и приезжаю на работу в 08:30, а она забирает. Если работаешь в день меньше 4-х часов, то нужно уведомить своего руководителя.
Переработки компенсируются либо деньгами, либо отгулами, на выбор работодателя. Больше 80 часов переработок возможны только с письменного согласия руководителя, иначе они не будут оплачены. Т.е. переработки — это скорее инициатива сотрудника, чем руководителя. Во всяком случае у нас.

Больничный. Три дня можно болеть без справки от врача. Просто утром звонишь секретарю и всё. Удаленно при этом работать не нужно. Болей себе спокойно. Начиная с четвертого дня понадобится больничный. Оплачивается все в полном объеме.

Удаленная работа не практикуется, всё в только в офисе. Связано это, во-первых, с коммерческой тайной, а во-вторых, с GDPR, т.к. приходится работать с персональными и коммерческими данными разных компаний.

Отпуск 28 рабочих дней. Именно рабочих. Если отпуск попадает на праздники или выходные, то отпуск продлевается на их количество.

Испытательный срок – 6 месяцев. Если кандидат не подходит по каким-то причинам, его должны уведомить за 4 недели. Т.е. тебя не могут уволить одним днем без отработки. Точнее могут, но с оплатой за дополнительный месяц. Так же и кандидат не может уйти без месячной отработки.

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

Вот так выглядит холодильник нашего отдела

IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

Справа от холодильника стоит еще три ящика. Можно пить пиво в рабочее время. Все пиво алкогольное. Другого не держим. И нет, это не шутка. Т.е. если я в обед возьму бутылку пива и выпью ее — это нормально, но непривычно. Раз в месяц, после совещания отдела в 12:00, весь отдел полным составом идет на балкон для дегустации разных сортов пива.

Бонусы Дополнительное корпоративное пенсионное обеспечение. Спорт. Корпоративный врач (Что-то вроде семейного врача, но для сотрудников).

Получилось много. Но информации еще больше. Если материал интересен, то могу написать еще. Голосуйте за интересные темы.

UPD: Мой канал в телеграме о жизни и работе в Германии. Коротко и по делу.

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

Мне есть еще что рассказать

  • Налоги. Сколько платим и на что

  • Медицину. Для взрослых и детей

  • Пенсии. Да, иностранные граждане так же могут получать пенсию, заработанную в Германии

  • Гражданство. Получить гражданство IT-шнику в Германии проще чем во многих других странах Шенгена

  • Аренда квартиры

  • Коммунальные платежи и связь. На примере моей семьи

  • Уровень жизни. Так сколько остается на руках после уплаты налогов и всех обязательных платежей?

  • Домашние животные

  • Подработка

Проголосовали 635 пользователей. Воздержались 86 пользователей.

Источник: habr.com