Project Winterberry: Software Development [2021-2024]


1. Project Overview

A 3-year solo project to build a smarter Twitch chat moderating system, discontinued in 2024 during final MVP preparation. Key achievements:

  • Functional pipeline for scraping, parsing, and serving IRC messages via REST API.
  • Kubernetes-native deployment system with GitLab CI/CD and ArgoCD.
  • Customizable streamer portal for historical chat analysis.

Technologies: Rust, Kubernetes/ArgoCD, Redis, Elasticsearch, GitLab CI, Docker (multi-arch), Python, Bash, Next.js, Tyk.

Source: winterberry

2. Technical Architecture

Implemented System

  1. Data Pipeline
    • WeeChat IRC Client Controller (Rust): Extended the open-source WeeChat IRC client to synchronize Twitch channels with Redis via Pub/Sub.
    • Rust Microservices: API layer for structured message access, integrated with Tyk API Gateway.
    • Generic DB Observer Library (Rust): Reusable component to trigger actions on Redis changes.
  2. Infrastructure
    • Kubernetes/ArgoCD Manifests: Declarative deployment for Redis, Elasticsearch, and message processors.
    • GitLab CI/CD: Multi-architecture Docker builds, Testkube integration tests, and staged rollouts.
  3. Frontend
    • Next.js Customization: Adapted OSS template for Supabase auth, Stripe subscriptions, and Backend API integration.

Data Flow

Twitch Chat → IRC Client → Redis (raw) → Elasticsearch (parsed) → REST API (Tyk + Rust)


3. Software Engeneering Practices

  1. Test-Driven Development
    • Integration tests covering Redis/Elasticsearch interactions and API endpoints.
    • Kubernetes failure recovery simulations (pod restarts, network partitions).
  2. Prototyping & Iteration
    • Python/Bash scripts for initial PoC, later replaced by optimized Rust services.
    • Reused OSS components (WeeChat, Tyk) to accelerate development.
  3. Project Management
    • UML diagrams for system design and user stories.
    • Version-controlled Kubernetes manifests and CI/CD pipelines.

4. Skill Demonstration

Backend/DevOps

  • Rust microservices • Redis/Elasticsearch • Kubernetes/ArgoCD
  • Multi-arch Docker builds • GitLab CI/CD pipelines • Testkube integration

Frontend

  • Next.js customization • Stripe/Supabase integration • API design

Process

  • OSS component integration • Infrastructure-as-Code • Prototype-to-production iteration

5. Conclusion

This project demonstrates:

  1. System Integration: Combined OSS tools (WeeChat, Tyk) with custom Rust services.
  2. DevOps Rigor: Production-grade Kubernetes deployment with automated testing.
  3. Practical Full-Stack Skills: From IRC protocol handling to subscription UX design.