All streams
Search
Write a publication
Pull to refresh
101
0
Ростислав Дугин @RostislavDugin

Golang Developer | Co-founder & CTO at tgtaps.com

Send message

Как я встроил процесс тренировок в свою жизнь (и собрал спортзал дома, вложив $400 в течение 2-х лет)

Level of difficultyEasy
Reading time7 min
Views22K

Для меня спорт - это базовая вещь, которая должна присутствовать в жизни по умолчанию. Особенно у разработчика, который по 10-14 часов в сутки сидит за компьютером и пару недель может не выходить из дома.

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

Читать далее

Резервные копии PostgreSQL: сравнение скорости pg_dump в разных форматах и с разными уровнями сжатия

Level of difficultyMedium
Reading time33 min
Views6K

Я сделал резервную копию через pg_dump и восстановился из неё 22 раза. Резервные копии делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для моего сценария использования.

Детали и замеры — ниже.

Читать далее

Как я пришёл в open source в 2025-м (с утилитой для бекапа PostgreSQL), чуть не потеряв проект на ~$1500\мес в 2023-м

Level of difficultyMedium
Reading time5 min
Views20K

Однажды я столкнулся с проблемой, когда почти потерял коммерчески успешный пет-проект из-за устаревших резервных копий БД (ещё до того, как он стал коммерчески неуспешным). При этом, даже после частичного восстановления, все-таки потерял ~30% прибыли от проекта, много нервов и времени.

Это подтолкнуло меня на разработку своего открытого инструмента для бекапа PostgreSQL. С разными хранилищами, уведомлениями при сбоях и health check'ом. Собственно, о том, как я потерял деньги и затем разработал проект — хочу рассказать в статье ниже.

Читать далее

10 непривычных моментов в Go для Java разработчика

Level of difficultyMedium
Reading time13 min
Views19K

Несколько лет назад я начал добавлять Go в свой арсенал языков (будучи на тот момент Java разработчиком). Мне было очень непривычно. Более того, я принял язык не с первой попытки. Причём пришлось принять его больше из-за сложившихся обстоятельств, чем по собственному желанию.

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

Уточню: статья ориентирована больше на тех, кто планирует перейти в Go, чем для опытных разработчиков.

Читать далее

Мои 7 правил при собеседовании разработчиков

Level of difficultyMedium
Reading time14 min
Views41K

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

Пару недель назад меня попросили помочь на техническом собеседовании для Senior/Lead backend-разработчика и поделиться опытом. В процессе я формализовал несколько правил, которых придерживаюсь при проверке кандидатов. Чем я и хочу поделиться.

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

Читать далее

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

Level of difficultyMedium
Reading time12 min
Views4.7K

Эта статья изначально родилась как ответ на эту статью. В ней автор рассказал, как его отправили в "кармический бан". В комментариях началось обсуждение, почему саморегуляция на Хабре не работает, хабр уже не торт, а модерация несправедливая. За одно обозначили, что корпоративные блоги и ссылки на Telegram каналы — зло.

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

- почему кармический бан — не самое плохое решение;
- как корпоративные блоги помогают авторам и читателям;
- из-за чего Telegram каналы — это выгодный для Хабра компромисс между контентом и рекламой (*с оговорками).

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

Читать далее

Постмортем: 4 мои ошибки во время отражения DDOS атаки (спойлер — выкуп в $250 мы все-таки не заплатили)

Level of difficultyMedium
Reading time7 min
Views22K

Мой обеденный кофе прервался. Начали приходить уведомления от мониторинга, что сайт и API не отвечают, а CloudFlare отдаёт 521-ю ошибку на все запросы. Спустя пять минут ко мне в личку пришли пользователи с жалобами на неработающие приложения. А ещё спустя пять позвонил сооснователь проекта и сказал, что от нас требуют $250 за остановку DDOS'a.

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

Читать далее

3 способа продвижения пет-проектов (почти) без бюджета на конкретных примерах

Level of difficultyMedium
Reading time8 min
Views15K

За последние 8 лет я запустил больше 5 своих пет-проектов. Для меня не было проблемой разработать что-то, а вот продавать — тяжело. Тем более денег на продвижение всегда было мало или не было совсем.

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

Предположим, вы разработали первую версию вашего IT сервиса. Аудитория Хабра с этим справляется без особых проблем. При этом плюс-минус корректно определили свою целевую аудиторию и продукт действительно нужен. Даже есть первые продажи. Итак, как выйти на стабильный прирост аудитории?

Читать далее

Vim vs. Emacs: древняя битва, наполненная безумными фактами

Level of difficultyEasy
Reading time5 min
Views7K

Vim и Emacs — это, пожалуй, самый древний и легендарный «братский» конфликт в мире текстовых редакторов. Одни говорят: «Люди делятся на тех, кто знает Vim, и тех, кто знаком с болью и страданием». Другие возражают: «Emacs на самом деле полноценная операционная система, где просто не хватает хорошего текстового редактора».

Давайте попробуем окунуться в историю этого противостояния и собрать любопытные (а местами и безумные) факты о Vim и Emacs.

Читать далее

Кейс применения useMemo и useCallback в React для оптимизации рендеринга при изменении глобального состояния

Level of difficultyMedium
Reading time9 min
Views9.2K

Я занимаюсь фронтенд разработкой на React последние 6 лет (в роли full-stack разработчика). Я знал и слышал, что существуют хуки useCallback и useMemo, которые нужны для оптимизации рендеринга. При этом про их использование я слышал только в теории или на собеседованиях.

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

Читать далее

Локализуем React (NextJS, TypeScript) сайт на несколько языков с помощью i18next

Level of difficultyMedium
Reading time6 min
Views6.9K

У меня появилась задача в проекте: перевести личный кабинет пользователя на русский и английский языки (в перспективе и на другие языки). При этом, определять язык пользователя при первом заходе в ЛК и запоминать язык при перезагрузке страницы. Разумеется, всё это с типизацией файлов с переводами (чтобы нельзя было забыть добавить любое из полей).

Как я это делал — расскажу в статье.

Читать далее

Как и зачем проводить кастдевы при разработке SaaS-продукта (с примерами из опыта)?

Level of difficultyMedium
Reading time15 min
Views1.3K

Предположим, у нас есть проект или идея SaaS продукта. Возможно мы уже разработали первую версию, у нас есть пользователи и в целом мы куда-то движемся. Как понять, что именно разрабатывать дальше, чтобы продукт рос, а пользователи платили? Как понять, какую именно обратную связь принимать от пользователей?

Читать далее

Многопоточность в NextJS: как запустить и нужно ли?

Level of difficultyMedium
Reading time6 min
Views4K

На определённом этапе своей карьеры я задался вопросом: может ли Next.js работать в многопоточном режиме? Оказалось, что нет. Это побудило меня разобраться, как можно организовать многопоточную работу Next.js и насколько это оправдано для сайтов с высокой нагрузкой.

Читать далее

А это точно твой сайт? Как проверить, что пользователь владелец сайта

Level of difficultyMedium
Reading time10 min
Views4.3K

Всем привет! Меня зовут Ростислав и я занимаюсь разработкой мониторинга для сайтов. Это мой пет-проект, если можно его так назвать. Иногда мониторинг сталкивается с проблемой, когда нужно проверить принадлежность сайта конкретному пользователю. Как это делается, я расскажу в статье.

Примеры кода будут на Python (FastAPI, SQLAlchemy, mypy) и Java (Spring, Hibernate). Изначально проект был написан на Python, но по мере роста был переписан на Java для упрощения поддержки и развития. 

Читать далее

Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker

Level of difficultyMedium
Reading time5 min
Views59K

Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.

Читать далее

Nginx: шпаргалка

Level of difficultyEasy
Reading time2 min
Views33K

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее

Как я заработал 500 000 рублей, сделав доступ к ChatGPT. Мои 6 выводов по итогу проекта

Level of difficultyEasy
Reading time5 min
Views25K

Пишу в продолжение прошлой статьи "Как я заработал 500 000 рублей, сделав доступ к ChatGPT. А потом Яндекс убил SEO и всё (почти) закончилось". В прошлый раз я рассказывал о запуске проекта на базе ChatGPT, а сейчас будут выводы и мысли, к которым я пришёл по ходу разработки проекта.

Читать далее

Как я заработал 500 000 рублей, сделав доступ к ChatGPT. А потом Яндекс убил SEO и всё (почти) закончилось

Level of difficultyEasy
Reading time7 min
Views92K

Статья о том, как я почти проспал "бум" ChatGPT, но сделал к нему доступ и заработал на этом (и продолжаю зарабатывать). Сам проект сейчас идёт на спад, но об этом в конце.

Читать далее

5 советов разработчику перед стартом своего стартапа. Опыт после 750 000 рублей

Level of difficultyEasy
Reading time6 min
Views25K

Всем привет! Меня зовут Ростислав, я full-stack разработчик. Последние 3 года у меня есть хобби - доведение пет-проектов до стадии финансово рентабельных IT продуктов. Сейчас я хочу поделиться своими советами о запуске проекта, исходя из своего опыта.

Читать далее

Стартап в Соло. Часть 5: сколько приносит проект сейчас?

Level of difficultyEasy
Reading time6 min
Views8.7K

Последний пост про развитие моего Telegram чата для сайта (Telegram Feedback) был в марте, чуть больше полугода назад. С тех пор проект подрос, пользователей стало больше, а деньги пусть и не полились рекой, но хотя бы тоненьким ручейком.

Читать далее
1

Information

Rating
Does not participate
Registered
Activity