Pull to refresh
4
0
Сергей Лебедев @BRAINKIT

Управление проектами, разработка веб проектов

Send message

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views229K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments342

Typescript: лучшие практики

Level of difficultyEasy
Reading time3 min
Views23K

Привет👋 В последние годы среди фронтенд разработчиков Typescript используется практически везде по умолчанию, начиная небольшими пет-проектами и заканчивая огромнейшими веб-приложениями. Однако, до сих пор на некоторых проектах можно встретить кучу any и Function. Давайте разберемся используете ли вы этот невероятно мощный инструмент правильно?

Читать далее
Total votes 22: ↑19 and ↓3+20
Comments27

Как я из телефона сделал сервер для своего бота в телеграме

Level of difficultyMedium
Reading time3 min
Views39K

Как я из телефона сделал сервер для своего бота в телеграме

Все началось с того что я написал своего бота и решил его выложить в открытый доступ, а точнее чтобы он работал круглосуточно, но платить деньги, за хостинг мне не хотелось. И тогда я вспомнил, что у меня как раз в ящиках залежались старые 2 телефона, можно сказать только один, потому что второй я превратил в кирпич (Неправильно перепрошил). Мой путь поиска программы для установки линукса начался с Termux, но к сожелению он работает только с Android 7+. А телефон на Android 5. Поэтому действенным решением я выбрал UserLAnd.

Читать далее
Total votes 28: ↑27 and ↓1+30
Comments59

Большой гайд по планированию. Как впихнуть в сутки 40 часов и оставить время на личную жизнь?

Level of difficultyEasy
Reading time8 min
Views78K

Всем привет, на связи команда Skill Vortex!

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

Перед ним стояла задача – каким-то чудом совместить стажировку на полную ставку, учебу в ВУЗе, изучение иностранного языка и личную жизнь.

История показалась нам довольно интересной, поэтому на ее основе мы решили написать подобие руководства по планированию и оптимизации времени.

В этой статье:

Чуть подробнее про историю

Начинаем первичную обработку: утечки, приоритезация и пожелания

Составляем нормальное расписание: 7 основных принципов

Ищем недостатки в получившемся

Еще пара универсальных советов

Заключение и полезные ссылки

Читать далее
Total votes 27: ↑19 and ↓8+22
Comments114

Попытка получения исходников ядра от производителей, и последующее хамство от них

Level of difficultyEasy
Reading time4 min
Views66K

Нарушение лицензии и отказ технической поддержки предоставить исходники — одни из множества неприятностей. Особенно если речь идёт о довольно крупных компаниях, в моём случае — Digma. В этой статье рассказываю, как я пытался получить исходный код ядра Linux, который используется в планшете Digma Plane 4G 1538E.

Читать далее
Total votes 402: ↑388 and ↓14+459
Comments422

Доводим разработчика до выгорания: три простых шага

Reading time7 min
Views46K
Если вы менеджер и хотите, чтобы ваши лучшие разработчики выгорели и разуверились в вашей способности руководить – могу помочь. Мне довелось работать в двух командах, подверженных выгоранию, и молча смотреть, как окружающие меня талантливые программисты один за другим покидали команду или компанию.

В первом случае я был ведущим специалистом в стартапе на посевной стадии с финансированием, работал непосредственно под и совместно с руководителем. Во втором я был одним из рядовых разработчиков, работал в команде из одиннадцати человек в составе крупной технологической компании (уровня Meta, Google, Apple и т.д.). Вот пошаговое руководство из методички выгорания, по которой работали эти команды.
Читать дальше →
Total votes 26: ↑23 and ↓3+27
Comments23

Введение в Чистую архитектуру через 6 кругов рефакторинга

Level of difficultyMedium
Reading time15 min
Views43K

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Total votes 16: ↑12 and ↓4+11
Comments4

Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде

Level of difficultyMedium
Reading time9 min
Views14K

Привет, Хабр! Меня зовут Данил, я Frontend-разработчик в Samokat.tech. Недавно мы с командой распилили монолит на Angular и перешли к микрофронтендам на Vue. 

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

Читать далее
Total votes 19: ↑18 and ↓1+20
Comments18

Как написать понятные требования к ПО

Level of difficultyEasy
Reading time3 min
Views5.3K

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

Когда я пришла на проект, в качестве единственного аналитика, а четких требований что же должно быть в постановке не было, возник вопрос: как мне их оформлять? Этот вопрос я декомпозировала на следующие пункты:

где должны храниться требования к задачам: есть Confluence и есть Jira, надо ли дублировать требования в обеих системах?

какие обязательные разделы включать в техническое задание, какую сделать структуру требований?

Читать далее
Total votes 7: ↑4 and ↓3+2
Comments2

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Level of difficultyEasy
Reading time12 min
Views101K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Total votes 131: ↑130 and ↓1+158
Comments162

Джира для джунов, или как планировать и “не сгореть”

Level of difficultyEasy
Reading time8 min
Views17K

Любая работа начинается с планирования. И чем детализированнее вы составляете план, тем удобнее этому плану следовать. Мы собрали собственный опыт ошибок и составили крепкую базу для начинающих аналитиков, разработчиков, тестировщиков и прочих котиков, которые уже вошли в айти, но скромно топчутся на пороге. Вот им мы хотим объяснить, почему планирование - это важно.

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

Кто такой архитектор ПО и как им стать

Reading time11 min
Views27K

Всем привет! Меня зовут Виктор Василенко, я техлид и Solution-архитектор. Я работал в Яндексе и X5 Group и уже не первый год сотрудничаю с Практикумом. Я делюсь опытом на курсах «Алгоритмы и структуры данных» и «Асинхронное программирование на Python».

Архитектор ПО — это специалист, ответственный за проектирование структуры и организацию системы или продукта. Роль архитектора в IT-компании включает в себя не только технические задачи, но часто и коммуникационные и организационные обязанности. Также архитектор является промежуточным звеном между бизнес-процессами и технологическими решениями.

Пока что индустрия не может чётко определить эту деятельность как профессию. В общероссийском классификаторе профессий ОКПДТР архитектор встречается скорее ландшафтный, чем программного обеспечения. В вузах вы не сможете найти специальность «Архитектура программного обеспечения». 

Границы профессии достаточно размытые, и часто это не профессия и должность, а скорее роль. Задачи разнятся: архитектор должен уметь писать код и документировать его для коллег, в то же время он может коммуницировать с бизнесом и заказчиками, выстраивать стратегию развития компании на годы вперед. 

В этой статье я хочу поделиться своим видением роли архитектора ПО и рассказать:

Кто такой архитектор ПО и какие они бывают;

Чем занимается архитектор решений в компаниях разного масштаба;

Чем отличаются инженеры от архитекторов ПО;

Какие обычно задачи стоят перед архитектором ПО;

Конкретно: какие нужны навыки и компетенции;

Как перейти из инженера на позицию архитектора.

Читать далее
Total votes 23: ↑17 and ↓6+15
Comments9

Веб-компоненты в 2023: нужно поговорить

Level of difficultyEasy
Reading time5 min
Views11K

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

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

И с этим я хочу бороться
Total votes 13: ↑13 and ↓0+13
Comments47

Не так уж и страшен этот FAANG: 8 мифов о собеседованиях в BigTech

Level of difficultyEasy
Reading time9 min
Views29K

Привет, на связи таинственный Software Engineer из FAANG компании, пишущий только о собеседованиях. Ранее мы уже сравнивали Тинькофф с FAANG’oм и отказывались от миллионов RSU в Озон, а теперь поговорим о собеседованиях в BigTech: в знаковые для индустрии зарубежные компании, оффер которых — это билет в будущее.

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

Читать далее
Total votes 33: ↑25 and ↓8+26
Comments14

Начало работы в Kubernetes с помощью Minikube

Reading time7 min
Views88K


Предисловие переводчика: Minikube — удобный инструмент, который мы применяем в компании для локальных экспериментов с Kubernetes (в частности, для выполнения лабораторных работ по этой системе при обучении сотрудников). Эта статья показалась мне полезной во время моего знакомства с Kubernetes. Она написана год назад автором, использующим Mac OS X, а я проделывал все операции в Ubuntu 16.04 совсем недавно и с актуальными версиями основного софта: Minikube 0.20, Docker 17.06.0-ce, kubectl 1.7.0. Поэтому все выводы команд были переделаны под новые версии и незначительно отличаются от приведённых в оригинальной статье.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments4

Ультимативный гайд по созданию CI/CD в GitLab с автодеплоем в Kubernetes на голом железе всего за 514$ в год ( ͡° ͜ʖ ͡°)

Reading time23 min
Views52K

Шел 2021 год, русские хакеры продолжают переигрывать и уничтожать загнивающий Запад, вмешиваясь в выборы, ломая фейсбуки и пентагоны. Тем временем на Хабре выходят статьи о создании неубиваемых Kubernetes-кластеров, которые, по видимому, всех нас переживут. А кто-нибудь подумал о простых пацанах (пацанессах)??? Как быть обычному программисту, который хочет свой небольшой кластер и ламповый CI/CD с автодеплоем приложения, чтобы кенты с района не засмеяли?

Всем привет, меня зовут Алексей и я алкоголик разработчик на Python/Go в Домклик. Сегодня мы будем понижать порог входа в self-hosted Kubernetes и GitLab AutoDevops.

Читать далее
Total votes 40: ↑39 and ↓1+40
Comments32

Как повысить эффективность коммуникаций в команде: учимся решать конфликты

Reading time7 min
Views7.8K

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

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

Читать далее
Total votes 27: ↑22 and ↓5+19
Comments2

А далее наша планета попробует в IT без генералистов

Level of difficultyEasy
Reading time4 min
Views20K

Простите, я тут повангую и поностальгирую немного. Когда-то, лет в 22-25, я "почти все знал про IT". Конечно, не в полной мере, но имел представление обо всем, какой-то хотя бы небольшой опыт во многом. Да, отчасти это можно списать на юношескую самоуверенность и Даннинга-Крюгера (где-то я возможно не видел границы своей некомпетентности), но только отчасти.

Я считаю себя генералистом. То есть, такой "универсальный солдат", могу кун-фу, могу самбо, могу стрелять из гаубицы и из лука, управлять гироскутером, камазом и звездолетом, и все это делаю одинаково плохо (но, тем не менее, гравицапу установить и координаты в тентуре расчитать смогу). Думаю, что я достаточно важный и ценный сотрудник там, где я работаю, и очень неплохо зарабатываю, в пересчете на час работы. Однако, если бы я пошел на собеседование на более скромную позицию какого-нибудь программиста или админа - наверняка завалил бы продвинутые тесты по множеству тем, кроме нескольких. Любой узкий специалист который 10 лет делает одно дело, знает это дело лучше и глубже.

Сфера IT в мои 20+ самом деле была гораздо меньше, чем сейчас. Через пару десятков лет после первого сеанса братьев Люмьер было несложно стать киноведом, который видел все фильмы.

К примеру, MySQL и PostgreSQL вышли в середине 90-ых. Тогда было несложно знать эти новые крошечные и простые проекты. Отработал JOIN слева, JOIN справа - и вот у тебя уже черный пояс по SQL, а значит и по базам данных в целом (потому что больше пока что ничего просто и нет). До появления Redis (key-value) было еще 10+ лет, до CockroachDB и Prometheus - 20 лет - можно было ничего о них не знать, и быть полноценным гуру в СУБД с полными знаниями о теме! Сейчас я не уверен, что смогу назвать даже все типы СУБД которые есть (реляционные, key-value, документные, графовые, time-series, ....), не говоря уже о названиях проектов. Что мы сейчас (в суровой реальности) можем ожидать от программиста в сфере баз данных? Мы ему объясняем проект, он нам распишет схему, как ее по табличкам разбить, какие индексы создать и что подкрутить с настройками СУБД под нашу специфику. Но это очень плохой уровень . А что я хочу от эксперта? Чтобы он сказал, к примеру: тут вам лучше вообще не реляционную использовать, а NOSQL, вот либо СУБД А, либо B, либо C (она только в прошлом году появилась, но очень итересная!). Но у A плохая лицензия, подходят только B и С. По скорости, для ваших задач лучше подойдет B, она на таком типе нагрузок по бенчмаркам быстрее работает, но у вас Debian на серверах? А у нее на Debian есть утечки памяти - возможно это блокирующая проблема. Еще, вы хотите из Java с ней работать? Для Java у нее нет клиента, только для C и Python, так что, придется доработать или дождаться.

Читать далее
Total votes 44: ↑38 and ↓6+41
Comments69

Как стать руководителем и не помереть

Level of difficultyEasy
Reading time10 min
Views18K

Всегда мечтал управлять процессами, работать с людьми. Казалось, что я «знаю как правильно», как изменять процессы или учить ребят, чтобы они работали лучше. Хотелось помогать ребятам жить в лучшем мире. Мечта сбылась. Но, как говорится, есть нюанс. 

Поговорим о том, что вас ждёт, когда вы станете руководителем.

Чтож начнем!
Total votes 46: ↑44 and ↓2+50
Comments16

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity