Pull to refresh
8
0
Станислав Гамаюнов @happyproff

Веб-разработчик

Send message

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

Reading time8 min
Views3.2K

Мы в Юле применяем подходы и паттерны, которые позволяют нам избегать проблем, связанных с интеграциями: создаем абстракции, где размещаем транспортный протокол и логирование, используем circuit breaker, обращаемся к асинхронным подходам, используя Kafka как шину данных. Предлагаем погрузиться на несколько слоев абстракции и вместе решить любые проблемы интеграций: от тайм-аута до кэширования.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments0

Sampler. Консольная утилита для визуализации результата любых shell команд

Reading time5 min
Views84K

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


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Total votes 298: ↑297 and ↓1+296
Comments54

Опросил больше 1000 айтишников: вранье в резюме и котируемость курсов по «вкатыванию в IT»

Reading time7 min
Views127K

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

Читать далее
Total votes 189: ↑168 and ↓21+147
Comments318

Применение DDD. От моделей до EDM — поиск новых форм и архитектурные излишества

Reading time14 min
Views5.9K

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



DDD не на коленке, а за дорого ;)

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6

Как содержать пароли. Мой сетап

Level of difficultyMedium
Reading time7 min
Views51K

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

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

Или, как обезопасить себя от забывания мастер пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из 4-ёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг - странная штука. 

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

Читать далее
Total votes 69: ↑69 and ↓0+69
Comments184

Любимая задачка на знание React

Level of difficultyEasy
Reading time3 min
Views20K

Всем привет! Меня зовут Олег и я fullstack-программист в компании Тензор. Опыт в разработке, без малого, 20 лет (как-то раз батя спаял на кухне ZX Spectrum и все заверте..., сам не понял как так вышло). В данный момент являюсь тимлидом собственной команды разработчиков, которая периодически нуждается в пополнении толковыми программистами.

Как и многие руководители, я активно принимаю участие в подборе сотрудников для себя и помогаю на собесах коллегам соседних отделов.

Наша команда занимается разработкой веб-приложения на React. Соответственно, мне важно найти программистов уверенно владеющих основами (!) этого фреймворка. Есть много способов проверки компетенций на собеседовании, один из любимых - задача по написанию hook для загрузки данных.

Если вы тоже в вечном поиске классных фронтендеров или сами часто проходите собесы - велком в эту статью :)

Итак, задачка...
Total votes 23: ↑23 and ↓0+23
Comments56

Как я с 0 поднял свой уровень английского до B2 и подтвердил этот уровень на экзамене IELTS Academic

Level of difficultyEasy
Reading time10 min
Views152K

Привет, Хабр!

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

Начнем с бекграунда и причин.

Я – инженер машиностроитель (мой профиль – торцевые уплотнения вращающихся валов). Я начал работать в своей отрасли сразу после бакалавра, параллельно заканчивая магистратуру, и как только я начал работать, я стал стараться впитать как можно больше теоретических знаний по моей специальности из академических источников. Достаточно бысто я понял, что последняя серьезная книга по моей специальности на русском языке была написана в 1978 году. И спустя больше чем 40 лет технологии сильно поменялись, а вот их описание на русском языке отсутствовает. Зато я нашел на reddit людей работающих в штатах в моей же отрасли. Они мне насоветовали кучу классной литературы. Разумееется, она вся на английском, и русского перевода не имеет.

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

Конечно, перед началом обучения я прочитал много статей на хабре о том как люди учат языки. Некоторые из них поражали скоростью овладения материалом (что-то вроде с нуля до fluent за 4 месяца). Но одна вещь была неизменна – у всех был какой-то план изучения языка.

Читать далее
Total votes 173: ↑169 and ↓4+165
Comments220

Message broker per service

Level of difficultyEasy
Reading time7 min
Views7.3K

Задумывались ли вы, почему мы используем отдельную базу данных для каждого сервиса, но при этом один общий брокер для нескольких сервисов? Ведь вполне возможно использовать базу данных в роли брокера сообщений. Однако, если мы попробуем заменить RabbitMQ на Redis, то натолкнемся на проблему общего использования базы данных. Это станет проблемой, потому что общее использование базы данных является антипаттерном.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments5

Коллеги, вы меня огорчаете

Reading time12 min
Views169K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Total votes 181: ↑137 and ↓44+93
Comments1152

Автоматический обход блокировок

Level of difficultyMedium
Reading time5 min
Views51K

Описание работы программы для автоматического обхода блокировок в интернете, код программы лежит на репозитории antiblock.

Читать далее
Total votes 51: ↑51 and ↓0+51
Comments64

Защита персональных данных. Часть 2

Reading time6 min
Views4.9K

В этой статье мы продолжим рассмотрение процесса построения системы защиты персональных данных. В предыдущей статье мы остановились на определении Уровня защищенности персональных данных.

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Прекратите звать (не) меня на работу

Level of difficultyEasy
Reading time3 min
Views53K

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

Начну очень издалека. Видите мой ник? Его опосредованный источник — давно забытый одноимённый криминальный фильм двадцатилетней давности; когда мне нужно было придумать позывной для регистрации в местной локалке, забавное сочетание букв само выпрыгнуло из извилин на клавиатуру. И с тех пор кочует вслед за мной, не считаясь с моими желаниями, в том числе — и в одном из созданных ещё на заре gmail почтовых ящиков, используемых для всяких регистраций, подписок, и прочего спама.

Несколько лет назад на этот почтовый ящик стали приходить письма от рекрутеров, зовущих Станислава поработать iOS-разработчиком. Здесь было две проблемы: я никогда не писал для iOS, и я не Станислав.

Читать чужие письма
Total votes 157: ↑153 and ↓4+149
Comments147

Поставил OKR, а что дальше? Или как провести мониторинг на 12 команд

Level of difficultyEasy
Reading time4 min
Views1.6K

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

Читать далее
Total votes 1: ↑0 and ↓1-1
Comments5

Что такое Lean Canvas?

Reading time5 min
Views48K
Продакт-менеджеры, планирующие запуск нового продукта, не всегда понимают его до конца и не могут грамотно презентовать другим. Тогда берутся за составление большой презентации с кучей графиков и текста в PowerPoint. Но нужно ли тратить на это время, если в первую очередь понять суть проекта надо самому?

Есть отличная альтернатива — сжатие большого плана на один лист, распределение основной информации на несколько блоков. Такой инструмент называется Lean Canvas.

image
Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments1

Выбираем протокол для умной дачи

Reading time9 min
Views18K

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

Читать далее
Total votes 14: ↑5 and ↓9-4
Comments44

Теория и практика unattended upgrades в Ubuntu

Reading time6 min
Views48K
Unattended upgrades — это родной для Debian/Ubuntu (и других основанных на них дистрибутивов GNU/Linux) механизм автоматических обновлений. По умолчанию он включён в системе благодаря наличию установленного пакета unattended-upgrades и конфигурационного файла /etc/apt/apt.conf.d/50unattended-upgrades, а настроен на обновления пакетов только из security-репозитория, куда попадают, например, критичные исправления для пакета libssl, которые выходят в результате очередного пополнения базы уязвимостей CVE.


Примечание: здесь и далее рассматриваются unattended upgrades в контексте серверных редакций Ubuntu, что скорее всего применимо «как есть» и к другим дистрибутивам, но могут встречаться свои особенности, оставшиеся вне рамок статьи.

Итак, какие дополнительные возможности предоставляют unattended upgrades (помимо включённых по умолчанию security updates) и к каким проблемам они могут привести?
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments9

Теория и практика бэкапов с Borg

Reading time11 min
Views58K


К нашему огромному удивлению на хабре не оказалось ни одного материала про замечательный Open Source-инструмент для резервного копирования данных ­— Borg (не путать с одноимённым прародителем Kubernetes!). Поскольку уже более года мы с удовольствием используем его в production, в этой статье я поделюсь накопленными у нас «впечатлениями» о Borg.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments46

Конечные автоматы на практике: Symfony Workflow

Reading time10 min
Views5.7K

В университетские времена я столкнулся с такой математической абстракцией, как конечный автомат (КА). Эта модель была полезна для понимания и создания комбинированной логики. Спустя 15 лет КА вернулся в мою жизнь в виде компонента Symfony Workflow. В этой статье я расскажу, как наша команда при помощи Symfony Workflow улучшила код продукта Links.Sape, переводя его с legacy.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments0

Как россиянину открыть банковский счет и карту в Турции?

Reading time11 min
Views59K

Турция наряду с Арменией стала одним из самых посещаемых стран в 2022 году. Многие фрилансеры, самозанятые IT-сферы, рантье выбрали Турцию в качестве места для удаленной работы. Среди главных преимуществ: близко к РФ, море, возможность прямых и бюджетных перелетов в любую точку мира, и самое главное, возможность перевода денежных средств в том числе рублей.

В Турции работает более 30 иностранных банков, а общее количество банков превышает полсотни. Многие из них открывают счета нерезидентам РФ, однако условия часто зависят от многих факторов, это не только банк, но и офис и даже конкретный сотрудник. Также банк заинтересован в состоятельных клиентах, поэтому многие выставляют требование размещения депозита при открытии счета.

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

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

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments23
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity