Software Engineer

DinaGanai

Building agentic AI systems and production infrastructure. Currently at Okta — RAG pipelines, evaluation frameworks, and autonomous AI tooling.

embed.py search.py
1# semantic job search engine
2
3async def search(query: str) -> list[Job]:
4  vector = await embed(query)
5  hits = await pinecone.query(
6    vector, top_k=20, filter="remote": True
7  )
8
9  return [Job.from_hit(h) for h in hits]
// experience
Okta
2024 — present
Software Engineer · AI Productivity
Agentic AI RAG Golang Python TypeScript AWS Claude Code
Berkeley Payment Solutions
2022 — 2024
Software Engineer · Fintech Infrastructure
Golang Elixir Phoenix React Kubernetes AWS PCI Compliance
// selected projects
Internal AI Assistant Okta work
Internal AI Assistantlive · okta
internal-ai-assistant
  webhook.py
  agent_client.py
  responder.py
# webhook.py · Jira webhook handler
 
from flask import Flask, request
import agent_client, jira
 
app = Flask(__name__)
 
@app.route("/webhook", methods=["POST"])
def handle_ticket():
payload = request.json
ticket_id = payload["issue"]["key"]
summary = payload["issue"]["fields"]["summary"]
body = payload["issue"]["fields"]["description"] or ""
 
response = agent_client.query(ticket_id, summary, body)
if response:
jira.post_comment(ticket_id, response)
return {"status": "ok"}, 200

A first-responder bot for internal support tickets. A Jira webhook fires on ticket creation, sends the details to an enterprise AI agent that queries connected internal documentation and past tickets, and posts its analysis back as a comment — surfacing relevant context before a human even looks at it. Built the Python integration layer: webhook handler, API client, response parser, and Slack alerts for failures. Meaningfully reduced triage time for the support team.

KYC Compliance Automation Berkeley Payment Solutions work
KYC Compliance Automationlive · berkeley payment
kyc-compliance-automation
  handler.go
  screener.go
  screening_queue.ex
// handler.go · Lambda entry point
 
func Handler(ctx context.Context, event events.SQSEvent) error {
db, err := connectDB()
if err != nil {
return fmt.Errorf("db connect: %w", err)
}
defer db.Close()
 
for _, msg := range event.Records {
var req ScreeningRequest
if err := json.Unmarshal([]byte(msg.Body), &req); err != nil {
return fmt.Errorf("parse message: %w", err)
}
result, err := screen(ctx, req)
if err != nil {
return err
}
if err := storeEncrypted(ctx, db, result); err != nil {
return err
}
}
return nil
}

Automated a manual KYC compliance process that previously required hours of work per month. Elixir frontend publishes screening requests into SQS; Go Lambda consumes them, checks customer data against sanctions lists, and stores encrypted results in Postgres. Replaced an error-prone manual workflow with a reliable, auditable pipeline — meaningfully reducing compliance team overhead.

mylevain personal product

A baking companion that tracks starter health, adapts recipes with baker's math, orchestrates bake day with dynamic replanning, and uses vision to analyze crumb structure — three cooperating agents and a custom tool loop I use every week.

Agentic AINext.jsAnthropic SDKComputer visionTool useFull stackSourdough

Repository is private.

// writing
featured
I built an AI agent to help me bake better sourdough
From a manual baking diary and camera-roll photos to a full-stack agentic app — baker's math, dynamic replanning, and computer vision on the finished loaf.
Building this site
Astro, Claude Code, and Cursor — how I built this site, and the PR bot that came out of it
View all →
// about
the work

I'm a Software Engineer on the AI Engineering Productivity team at Okta, where I build agentic systems, RAG pipelines, and AI tooling that makes engineers faster. AI isn't just the job — it's what I'm genuinely excited about.

I got here the non-linear way — a career change (more like lack of), a bootcamp that has since gone out of business (RIP), and a lot of figuring it out as I went. Shoutout to my dad and my brother for that one. Turns out it's a pretty common story in tech.

outside of it

My biggest passion is baking. I'm the designated family baker — all the desserts, all the holidays, no complaints. Recently I've gotten deep into sourdough and made my own starter from scratch with, yes, AI assistance. She's thriving.

I also spend a lot of time at the gym (lifting), in hot yoga and pilates, and getting my steps in. My dad recently signed me up for a 5k in April without asking. Wish me luck. And my nieces — they're the best, full stop.

// contact

Open to interesting conversations — reach out however works best.