Обновить
4K+
68
Евгений Игумнов@igumnov

Senior Rust Developer

4
Рейтинг
79
Подписчики
Отправить сообщение

Манифест программиста, использующего AI-кодинг-агента

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели21K

Последнее время я все чаще вижу одну и ту же картину.

Появился тикет. Программист копирует ссылку, передает ее AI-кодинг-агенту и через какое-то время получает готовый Pull Request.

Вроде бы красота.

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

Только потом начинается самое интересное.

В Pull Request приезжает куча лишнего кода. Тесты зеленые, но сама функция не работает. Тикет уходит тестировщику и возвращается обратно. После исправления снова возвращается. А иногда оказывается, что агент вообще понял задачу не так, но программист этого даже не заметил, потому что сам тикет толком не прочитал.

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

Но инструмент, который быстро пишет код, не отменяет необходимость думать.

Читать далее

С чем я сталкивался при найме на работу

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели14K

Кейс первый, на собеседовании феерит и крутая. Вышла на работу и сидит как серая мышь, будто её нет. А потом в какой-то день тупо не выходит на работу. Звоню, а вы где? На что мне объясняют, мол, я ждала одобрение от крутой компании, его получила и туда вышла работать. А где деловая этика? Как такую наняли на работу, если она даже предыдущие соглашения и договорённости чисто по-человечески и по деловому этикету не закрыла? Просто испарилась и забила.

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

Третий кейс, человек работает 1–2 месяца, классный. Начинаю платить выше рынка ЗП. А потом раз, и исчез. Пытаюсь дозвониться и т.д. В итоге он через неделю мне говорит, что у тебя работа такая, что я боялся проспать, и начал принимать спиды, и через неделю так устал, что уснул на несколько дней. В итоге его брат приехал и сказал, что ему ЗП давать нельзя, всё через него, иначе он сторчится.

Кейс четвёртый, потом был случай: нахожу нормального программиста, работает качественно и т.д. Уговор, что 1–2 месяца, до получения инвестиций, я не смогу ему платить. В итоге он хорошо работал, я его лично встретил в Астане в аэропорту, прокатил на ЛРТ, потом заказал такси. Он хоть и отбивался, мол, у него заказ такси не работает, он забыл карты в Бишкеке, но мне было всё равно, он гость, и я его встретил. Отдельное спасибо ему за пахлаву и другие сладости, что он моей жене привёз и мне. А потом, на следующий день, сказал, что не может дальше работать на таких условиях.

Читать далее

Трансформация интерфейса приложений: сначала консоль, потом GUI, потом скажи, что нужно, и ИИ сделает?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Всем привет.

Программировать я очень давно начал. Помню, как мне папа, прочитав журнал, вытравил плату и купил микросхемы, и, используя два больших калькулятора для бухгалтеров, разрезав их и склеив, собрал мне ZX Spectrum. У меня отец работал в Толмачёво инженером, который обслуживал большие ЭВМ и тренажёры для лётчиков "Аэрофлота".

В общем, я был, наверное, первый счастливчик в Новосибирске, у кого был персональный компьютер дома. Тогда ещё бизнесмены не успели продавать ZX Spectrum и кассеты к нему с играми, а у меня уже всё было. Я помню, как первые программы я не на кассетный магнитофон записывал, а на большой катушечный, сорри, не помню, как называется, но явно не магнитола и явно не магнитофон.

Я помню, первую программу продал кабельному телевидению. Она была написана на Бейсике, и там был простой интерфейс: вводишь номер объявления и текст, и так можно 10 объявлений задать. Потом запускаешь, мол, делай бегущую строку, и на кабельном телевидении моя программа внизу под фильмами бегущей строкой показывала рекламные сообщения.

Когда моего отца спросили, мол, как отблагодарить ребёнка, или можно бесплатно, отец сказал: "Ни в коем случае. Его спросите, что он хочет за проделанную работу". И я тогда, помню, запросил 10 рублей! И мне их оплатили! Вот было счастье при зарплате обычного работяги 100- 200 или инженера 200-300 рублей в месяц.

В общем, технологии шли вперёд, и у меня появился дисковод. Это было бомба! Не надо ждать 5 минут, когда с кассеты или с катушек загрузится программа. Программа грузилась за секунды!

Читать далее

А вас вайб-кодеры уже достали?

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели25K

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

Начнём с самого простого. Кандидаты часто вообще не читают вакансию. Просто шлют сопроводительное письмо в стиле "Я готов работать", "." или "Я соответствую вакансии". Точка. Просто точка, Карл. Даже не три точки, чтобы была хоть какая-то интрига.

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

Например: "Классный у вас ИИ-агент. Я работал с LLM, посмотрел ваш продукт, идея огонь. Хочу поучаствовать, получить опыт и принести пользу - готов работать бесплатно за строчку в резюме". Всё. Такого кандидата уже хочется пригласить на интервью. Про "работать бесплатно за строчку в резюме" я, конечно, шучу. Но если человек хотя бы посмотрел продукт, это уже событие уровня "нашли воду на Марсе".

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

Читать далее

Ищу ранних тестировщиков для Android-версии agent harnesses

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Всем привет.

По состоянию продукта это бета версия. Поэтому я не ищу пользователей, которые ждут готовый polished-сервис. Мне нужны люди, которым интересно покопаться в сыром продукте, найти баги, сломанные сценарии и непонятные места.

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

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

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

Например: "Вот чек из магазина, добавь его в расходы". Или: "Вот ссылка на товар, отслеживай, когда цена упадет ниже 100 тысяч рублей". То есть один и тот же сценарий можно выполнить либо руками через интерфейс, либо через чат с агентом.

Читать далее

Как я за последний год стал программировать по-новому. А как вы?

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели20K

Довольно интересное наблюдение: я перестал пользоваться автокомплитом в IDE, который предлагает LLM.

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

Читать далее

Как я использую несколько AI coding agents вместо одного дорогого тарифа

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.4K

Я давно заметил одну и ту же схему у крупных игроков на рынке AI coding agents. Codex, Claude Code, Gemini и похожие инструменты сначала затягивают тебя дешевыми подписками за 20$ в месяц. Ты пробуешь, быстро привыкаешь, начинаешь использовать это каждый день, а потом внезапно упираешься в лимиты. После этого тебе предлагают например перейти на тариф за 200$ (ChatGPT Pro).

Читать далее

Ищу ранних тестировщиков для веб-версии AI-сервиса для бытовых задач

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.1K

Всем привет.

По состоянию продукта это скорее ранняя бета, местами почти альфа. Поэтому я не ищу пользователей, которые ждут готовый polished-сервис. Мне нужны люди, которым интересно покопаться в сыром продукте, найти баги, сломанные сценарии и непонятные места.

Читать далее

Как оценить свою компанию перед разговором с инвесторами

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели12K

В данный период своей жизни я пытаюсь создать свой стартап. Но никакой стартап не будет существовать без инвестиций. Возможно, если бы за душой было несколько лишних миллионов долларов, то, возможно обошелся бы и своими силами. Но имеем что имеем. Сразу хочу рассказать немного о себе. У меня за мою жизнь уже было несколько стартапов, один из которых дошел до третьего раунда инвестиций в миллион долларов. Приятные ощущения, работающая компания, но кризис.com‑ов решил все иначе, к сожалению. Были еще небольшие разные стартапы, на которых получалось тоже немного заработать. Это я к тому, что опыт какой никакой все‑таки есть. И каждый раз, в каждом своем проекте всегда я слышал одни и те же вопросы от программистов в своей команде: «Зачем нам вообще пилить MVP?», «А сколько денег нам дадут?», «И что, а зарплаты не будет что ли?» Когда я им отвечал честно, что первые инвестиции не про заработок, то ответ мой их все время расстраивал, ведь денег хочется прямо здесь и прямо сейчас. Прежде чем продолжить, то думаю, что стоит рассказать вам о том, кто же такой бизнес ангел для стартапа. Зачастую, если вы небольшая молодая и зеленая компания, у которой в лучшем случае есть какой‑то прототип или минимально рабочий продукт, то всяким большим дядям из больших и богатых фондов вы не интересны, они не видят в вас реальную выгоду, не видят реальных клиентов (которых обычно даже и нет на начальных этапах), не видят то, куда все ваши фантазии могут их привести. Но вы можете найти бизнес ангела, который поверит вам и поверит в вашу идею. Он дает вам начальный капитал, с которого вы уже сможете стартовать и начинать развивать свой проект.

Читать далее

Операционная система Анна версия 0.0.60

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K

Решил написать продолжение к предыдущей моей статье Операционная система Анна. Назвал "операционной системой" скорее как отсылку к фильму "Она" (Her) - понимаю, что это, конечно, не ОС в классическом смысле, так что прошу воспринимать это как художественное название, а не технический термин. Ну и вот недавно моя жена затеяла вести расходы в Google Sheets. Увидел её мучения о том, как создать формулы, листы и т. д. В итоге ей посоветовал поставить Анну на её домашний компьютер. При установке она настроила интеграцию с Google Sheets. Потом я ей посоветовал попросить Анну сделать следующее:

Читать далее

Операционная система Анна

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

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

Первое случилось в самолёте. Мне было нечем заняться, и я решил посмотреть фантастический фильм «Она» (Her, 2013). Я человек впечатлительный, и если в истории есть драма, то легко начинаю сопереживать героям. Фильм рассказывает об одиноком мужчине, который устанавливает ИИ‑операционную систему, начинает с ней общаться и постепенно влюбляется в неё. Спойлерить не буду - фильм действительно стоит посмотреть.

Второе событие - это хайп вокруг OpenClaw. Я как раз вернулся домой, занялся своей обычной работой и в свободное время решил изучить, что это такое. К тому моменту вокруг проекта уже было много шума, и он успел набрать около 300 тысяч звёзд на GitHub.

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

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

Вторая - всё настраивается через пошаговый текстовый визард в терминале. Такой подход скорее рассчитан на технически подготовленного пользователя или ИИ‑специалиста, а не на обычного человека.

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

Читать далее

CLI-инструмент для фундаментального анализа акций с поддержкой LLM

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели10K

Всем привет!

Я сделал CLI-инструмент для быстрой "фундаменталки" по акциям с добавочной аналитикой из 10-K через LLM. Он тянет данные из Yahoo Finance, дочитывает 10-K (edgartools + LLM), корректирует EV по fair-value, только страховщиков оценивает по "флоуту", делает SOTP по операционным сегментам и на базе квартилей выдаёт сигналы "КУПИ/ПРОДАЙ/НЕОПРЕДЕЛЁННО" - по метрикам, по группе и общий. Использует метрики: Forward P/E, P/FCF, EV/EBITDA.

Пример запуска:

Читать далее

Учим LM Studio ходить в интернет при ответах на вопросы

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели27K

Мне очень нравится LM Studio, так как она позволяет локально запускать ИИ модели. Что позволяет сохранить приватность того о чем ты беседуешь с ИИ. Но по сравнению с коммерческими онлайн моделями, LM Studio не умеет ходить в интернет "из коробки". Те модели не могут использовать актуальную информацию из Интернета для ответов на вопросы.

Не так давно в LM Studio было добавлено возможность подключать MCP-сервера к моделям. Самое первое, что я сделал это, написал небольшой MCP-сервер, который позволяет извлекать текст из URL-адреса. Также может извлекать ссылки, которые есть на странице. Это дает возможность в запросе к ИИ указать адрес и попросить извлечь текст оттуда или ссылки, что бы использовать при ответе.

Что бы это все работало, для начала создаем pyproject.toml в папке mcp-server.

Читать далее

Небольшая библиотека утилит на Rust для Python (FastPy-RS, Alpha)

Время на прочтение2 мин
Охват и читатели5.9K

Всем привет! Я пришёл из экосистемы Rust и недавно начал работать в Python. Я люблю Rust за безопасность и скорость, но влюбился в Python за простоту и быструю разработку. Это вдохновило меня создать что-то полезное для сообщества Python: FastPy-RS — библиотеку часто используемых функций, которую можно вызывать из Python, а реализация внутри написана на Rust. Цель — обеспечить высокую производительность и надёжность. Хотя многие Python-библиотеки используют C для ускорения, такой подход может нести риски безопасности.

Читать далее

Генерация карт Таро при помощи OpenAI модели GPT-Image-1

Время на прочтение3 мин
Охват и читатели6.4K

Я решил сделать уникальную колоду карт Таро. Заказывать их у фриланс-художников дорого: каждая карта стоит от 5 USD, так что для полной колоды из 78 карт это выходит 390 USD. Перебрав разные генераторы изображений, я остановился на модели GPT-Image-1 от OpenAI, поскольку она выдаёт максимальное качество и минимальный процент ошибок. В среднем генерация одной карты занимает около минуты. Создание одной колоды обошлось мне в $25. В итоге я сгенерировал три колоды с уникальными стилями и потратил на это в общей сложности 75 USD.

Читать далее

Как запустить языковую модель без цензуры, не имея видеокарты и мощного компьютера

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели27K

Думаю, все сталкивались с тем, что языковая модель отказывается отвечать на какие-то вопросы. К счастью, в интернете есть опубликованные так называемые abliterated модели, которые не имеют цензуры и отвечают на любые вопросы. Хоть такую модель можно скачать (16 ГБ файл), запустить её у себя на компьютере достаточно сложно. Проблема в том, что у многих нет видеокарты за 1000 $ или дорогого Apple Mac компьютера последнего поколения с чипом M1 и выше. И многие знакомые, узнав о возможности получить ИИ без цензуры, хотят это попробовать и просят помочь им инструкциями, как это сделать, не покупая видеокарту или Apple Mac компьютер. В итоге я решил выложить инструкцию, как это сделать за сущие копейки через почасовую аренду видеокарты.

Читать далее

Как создать ИИ Телеграм-бот с векторной памятью на Qdrant

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4.6K

Идея создания этого пет-проекта возникла из желания написать собственного ИИ-агента. Я сформулировал для себя минимальные технические требования: агент должен иметь несколько состояний, уметь запускать тулзы и использовать RAG для поиска ответов на вопросы.

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

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

Но, покопавшись немного глубже, мне показалось, что затраты на изучение этого фреймворка не оправдывают себя. Проще напрямую вызывать LLM, эмбеддинги и Qdrant через REST API. А логику работы агента описать в коде через enum, описывающий состояния, и делать match по этим состояниям.

К тому же LangChain изначально написан на Python. Я хотел бы писать на Rust, а использовать Rust-версию LangChain — сомнительное удовольствие, которое обычно упирается в самый неподходящий момент: что-то ещё не было переписано на Rust.

Читать далее

CBLT — безопасный, быстрый и минималистичный веб-сервер на языке программирования Rust

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели14K

Для изучения нового языка программирования я использую следующий подход. Сначала я читаю учебник по этому языку программирования, в котором объясняются синтаксис, идиомы, философия и принципы работы языка. После этого я пишу небольшой пет-проект на этом языке программирования. На пет-проекте я немного практикуюсь с новым языком, с его стандартными библиотеками и популярными фреймворками.

Чтобы погрузиться сильнее в язык, вместо пет-проекта я начинаю писать свои библиотеки для работы с базами данных (ORM), JSON, акторами, MVC веб-фреймворком, логированием и т.д. Библиотеки, которые вряд ли будут кому-то нужны, но они помогут мне лучше понять язык программирования. На удивление, с языком Rust я добрался до написания своего веб-сервера. Раньше такого не было. Думаю, это из-за того, что Rust — это язык системного программирования и грех на нём не попробовать заняться оптимизацией перформанса.

В итоге я столкнулся с тем, что Rust не имеет аналогов Nginx, Lighttpd, Caddy, HAProxy, Apache, Tomcat, Jetty и т.д. Все эти веб-сервера написаны на C, Go, Java и т.д. Имеются только веб-фреймворки: Actix, Axum, Rocket, Hyper и т.д.

В целом я прикинул, что обычно я использую Nginx для следующих целей:

1. TLS для доменов

2. Проксирование запросов на бэкэнд

3. Раздача статических файлов

В итоге решил написать свою реализацию веб-сервера на Rust.

Читать далее

Проект Shiva: Альтернатива Apache Tika и Pandoc

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели2.4K

Я начал работать над проектом Shiva с первого коммита в марте 2024 года, стремясь создать универсальный инструмент на Rust для парсинга и конвертации документов. За несколько месяцев проект значительно расширился, добавив поддержку множества форматов файлов, включая HTML, Markdown, простой текст, PDF, JSON, CSV, RTF, DOCX, XML, XLS, XLSX, ODS и Typst. Shiva — это проект с открытым исходным кодом, и его репозиторий доступен на github.com/igumnoff/shiva.

Цель проекта — предложить альтернативу таким известным инструментам, как Apache Tika, написанный на Java, и Pandoc, разработанный на Haskell. Эти инструменты уже давно стали стандартом для разработчиков, работающих с документами. Однако я надеюсь, что Shiva сможет предложить более простое и эффективное решение, которое сможет справляться с растущим разнообразием и сложностью цифровых документов. Проект развивается быстро, хотя впереди еще много работы, но мне радостно наблюдать за прогрессом.

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

Буду рад, если кто-то заглянет в репозиторий, оставит отзыв или внесет свой вклад. Сообщество открыто для идей и совместной работы, чтобы продолжать развивать возможности Shiva.

Читать далее

rustsn — Open Source проект генерации кода и взаимодействия с уже существующим через LLM

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.8K

Я работал над созданием инструмента под названием rustsn, который позволяет генерировать, компилировать и тестировать код с использованием LLM (Large Language Models). Изначально идея заключалась в том, чтобы автоматизировать процесс написания небольших фрагментов кода — так называемых сниппетов — для разных языков программирования на основе объяснений, предоставленных пользователем. Этот инструмент стал развиваться и обрастать новыми возможностями, такими как генерация полного кода для приложений и объяснение существующего кода на основе векторных представлений (эмбеддингов).

Когда я только начинал работу над rustsn, основной задачей было добиться того, чтобы пользователь мог, например, просто описать словами, какую функцию ему нужно написать, а система автоматически генерировала бы рабочий код. Я начал с Rust, поскольку этот язык обладает мощными возможностями для работы с типами и тестированием, что делает его идеальным для написания безопасного и производительного кода. Позже я добавил поддержку других языков, таких как JavaScript, Python, и TypeScript.

Этот инструмент стал гораздо больше, чем просто генератор кода. Например, я добавил команду ask, которая позволяет получать объяснение к существующему коду вашего проекта. Для этого используется специальная модель, которая анализирует исходники и находит наиболее релевантные файлы на основе вашего вопроса.

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

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

Информация

В рейтинге
1 379-й
Откуда
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Дата рождения
Зарегистрирован
Активность