Клиент и контекст
Клиенту требовалось запустить платформу агрегации и ранжирования новостей, которая:
- Собирала и ранжировала контент на основе активности в социальных сетях и других сигналов.
- Поддерживала эксперименты с алгоритмами ранжирования.
- Обеспечивала работу фронтенда рассылки на Next.js и автоматизированных процессов создания рассылок.
Я подключился, чтобы поддерживать и развивать существующее приложение на Rust, а также сопутствующие инструменты и интеграции.
Проблемы
- Кодовая база Rust для агрегации новостей была сложной для модификации и не имела удобной среды разработки.
- Существующие алгоритмы ранжирования требовали как улучшения производительности, так и повышения читаемости.
- Система должна была интегрироваться с:
- Несколькими поставщиками данных.
- Фронтендом на Next.js.
- Google Sheets и обработкой на базе LLM для рассылок.
- Бизнесу требовались более качественные мониторинг, логи и отчёты, чтобы доверять системе.
Что я сделал
1. Улучшения алгоритмов и кодовой базы на Rust
- Изучил существующие алгоритмы ранжирования, включая их математические основы.
- Исправил ошибки и повысил производительность ключевой логики.
- Провёл рефакторинг кодовой базы, чтобы структура стала более читаемой и поддерживаемой.
- Добавил среду разработки на базе Docker, чтобы систему было легко запускать и тестировать локально.
2. Эксперименты и источники данных
- Помог выстроить ветки кода для проверки гипотез и настройки алгоритмов.
- Реализовал сопоставление текстов с использованием embeddings, чтобы лучше связывать посты и статьи.
- Создал кастомный веб-скрейпер с использованием headless browser для источников, не покрываемых стандартными API.
- Реализовал получение данных от двух основных поставщиков данных, выбирая из тестовых интеграций с другими провайдерами по критериям покрытия и качества.
3. Фронтенд рассылки и процессы контента с поддержкой AI
- Выполнил интеграции, доработки и улучшения дизайна для приложения фронтенда рассылки на Next.js.
- Реализовал интеграцию между Google Spreadsheets и различными LLM, чтобы:
- Обрабатывать и суммировать тексты.
- Форматировать данные для рассылок.
- Экспортировать данные в параметризованные шаблоны Canva.
- Автоматизировал генерацию рассылок и отправку через Mailchimp, сократив объём ручной редакторской работы.
4. Наблюдаемость и контроль
- Добавил аутентификацию, получение логов, мониторинг, отчёты и статистику, чтобы команда могла:
- Анализировать поведение системы.
- Понимать потоки контента.
- Отслеживать результаты ранжирования и эффективность рассылок.
Результаты
- Движок агрегации на Rust стал быстрее, понятнее и проще для расширения.
- Команда получила надёжную локальную среду разработки и инструменты для экспериментов с алгоритмами.
- Создание рассылок стало значительно более автоматизированным: LLM и шаблоны взяли на себя большую часть повторяющейся работы.
- Улучшенные логи и мониторинг дали стейкхолдерам больше доверия и прозрачности в отношении системы.
Технологии и обязанности
- Роль: Senior engineer по агрегации новостей и инструментам для рассылок
- Технологии: Rust, Docker, headless browser scraping, embeddings, Next.js, Google Sheets API, LLM APIs, Canva templates, Mailchimp, authentication, monitoring
- Область работ: Улучшение алгоритмов и производительности, среда разработки, скрейпинг и поставщики данных, доработки фронтенда, процессы рассылок с поддержкой AI, наблюдаемость
Если вам нужно объединить высокопроизводительную агрегацию данных с редакционными процессами на базе LLM, я могу помочь спроектировать и реализовать бэкенд, интеграции и инструменты.
Назад ко всем кейс-стади