Jitter-charts
An npm package for creating jitter charts.
Senior AI Engineer akhil9tiet
Tactile interactive systems, data visual essays, generative graphics, and software experiments.
An npm package for creating jitter charts.
Scroll-driven storytelling with Mapbox and layered geography.
A visual notebook for exploring systems.
Isometric area charts rendered with Three.js.
Explore song lyrics through an interactive heatmap.
Conversational loading experiences built with React.
Map emotional arcs across Christopher Nolan films.
Compare salary trends across H-1B occupations.
Matched volunteers with nonprofits through recommendations.
Classified stock movements with historical market data.
Embedding with customers to ship AI systems that hold up in the wild — instrumenting agents, triaging production failures, and turning ambiguous business problems into deployable AI features. Owned end-to-end, from pre-sales architecture to on-call and post-sales support.
Designing the agentic loops that actually run in production — prompt, action, observation, reflection — with disciplined context management, error recovery, and guardrails so agents stay correct run after run, not just on a demo.
Building the harness around the model — structured tool schemas, deterministic I/O contracts, evals, and scaffolding that turn raw LLM calls into dependable, measurable systems teams can build on and trust.
Shipping agents that drive real browsers — automating multi-step web tasks, data collection, form flows, and computer-use style actions with Playwright and agent frameworks for dependable end-to-end web automation.
Building MCP servers and tool integrations that give models secure, standardized access to external data and systems — the emerging connective tissue of the AI ecosystem.
Production patterns from forward-deployed AI engineering
# Expose a tool over MCP
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("portfolio-tools")
@mcp.tool()
def get_metrics(project: str) -> dict:
"""Live metrics for any project."""
return fetch_live_metrics(project)
if __name__ == "__main__":
mcp.run()
# Drive a real browser
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
page.fill("#search", "forward deployed AI")
page.click("button[type=submit]")
results = page.locator(".result").all_text_contents()
browser.close()
# A resilient agentic loop
while not task_complete(state):
action = model.invoke(build_prompt(state))
result = safe_execute(action) # harness
state = update_context(state, result)
if needs_recovery(result):
state = recover(state)
emit_trace(state) # evals & logs
Interactive project
A visual space for exploring systems, ideas, and the connections between them.
Career path
Organizations and teams that have shaped my work.

Contact / 01
Have a product idea, a tough engineering problem, or a team that could use an extra set of hands? I’d be glad to hear from you.