Hi, my name is

Jason Gitau.

I build intelligent infrastructure.

I am a Mathematics & Computer Science undergraduate at JKUAT. I bridge the gap between mathematical logic and production code, building scalable AI agents, Fintech integrations, and distributed backend systems.

02.

Technical Arsenal

Languages

  • Python (Advanced)
  • Golang
  • JavaScript (ES6+)
  • SQL / MySQL

AI Engineering

  • RAG / LangChain
  • Gemini & OpenAI APIs
  • ChromaDB (Vector)
  • TensorFlow / Keras

Infrastructure

  • Next.js / FastAPI
  • Docker & Containers
  • Redis & WebSockets
  • Supabase / Postgres
03.

Featured Projects

Full Stack EdTech Platform

JKUAT Course Hub

A student-driven academic platform solving the issue of scattered course materials. Features an AI Tutor (RAG) that answers questions grounded in uploaded class notes. Built with a robust pipeline: Next.js 14 frontend, Supabase for vector storage, and Gemini 2.0 Flash for cost-effective high-speed inference.
  • Next.js 14
  • Supabase
  • Gemini 2.0
  • Tailwind
  • Redis
jkuat-hub.vercel.app
export async function POST(req) {
  const { query } = await req.json();

  // RAG: Find relevant notes
  const context = await supabase.rpc(
    'match_documents', { query_embedding }
  );

  // AI Tutor Response
  return gemini.generateContent({
    prompt: `Context: ${context} \n Q: ${query}`
  });
}

AI Infrastructure

Conversational RAG Assistant

A production-grade Conversational AI that enables users to "chat" with documents (PDF/DOCX). Engineered with WebSocket streaming for real-time tokens (ChatGPT style), containerized with Docker, and utilizes Redis for session persistence. Includes an automated web scraper using Playwright.
  • Python
  • FastAPI
  • LangChain
  • Docker
  • Redis
rag_engine.py
def chat_stream(query: str):
  # Retrieve context
  docs = vector_db.similarity_search(query)

  # Generate response
  prompt = f"Context: {docs}\nQ: {query}"
  stream = llm.generate_content(prompt)

  for chunk in stream:
    yield chunk.text

Fintech Engineering

Telegram Escrow Bot

A secure middleware solution solving the "trust issue" in P2P marketplaces. Acts as an automated escrow agent holding funds until goods are verified. Features direct integration with Safaricom's Daraja API for STK Push payments, transaction status callbacks, and secure database locking.
  • Python
  • Telegram API
  • Daraja API
  • MySQL
  • Webhooks
mpesa_handler.py
async def process_stk(payload):
  # Verify transaction
  tx_id = payload.get("CheckoutRequestID")
  status = await mpesa.query_status(tx_id)

  if status == "Completed":
    # Release funds
    await escrow.release(payload.amount)
    return JSONResponse({"ok": True})

Open Source Contribution & AI Agent

Social Media Agent (LangGraph)

Developed an autonomous agent for social media management using LangGraph. Designed complex state machines for content generation and scheduling. Additionally contributed comprehensive API documentation to the open-source project, improving accessibility for developers in the ecosystem.
  • LangGraph
  • Python
  • Open Source
  • State Machines
agent_workflow.py
# Define Agent State Workflow
workflow = StateGraph(AgentState)

# Add nodes & edges
workflow.add_node("generate", generate_post)
workflow.add_node("review", human_review)

# Conditional Logic
workflow.add_conditional_edges(
  "review",
  should_post,
  { "approved": END, "rewrite": "generate" }
)

Other Noteworthy Projects

Deep Research Agent

An autonomous agent built with Go (Golang) capable of performing recursive research tasks and summarizing findings.

Golang Concurrency

Penguin Species Classifier

A Neural Network model trained to classify penguin species based on physical characteristics with high accuracy.

Keras TensorFlow

M-Pesa Integration Lib

Reusable Python modules for handling STK push, C2B transactions, and B2C payouts seamlessly.

Python REST API

04. What's Next?

Get In Touch

I am currently open to internships and collaboration opportunities where I can apply my skills in AI and Backend Engineering. Whether you have a question or just want to say hi, my inbox is always open.

Say Hello