---
title: "Software Development Engineer (SDE) at Tejas AI (YC W25)"
company: "Tejas AI (YC W25)"
period: "Mar 2026 – Aug 2026"
location: "SF, California, USA"
url: "https://himanshuat.com/experience/tejas-ai-yc-w25-software-development-engineer-sde"
---

# Software Development Engineer (SDE) — Tejas AI (YC W25)

*Mar 2026 – Aug 2026 · SF, California, USA*

## About the company

Tejas AI builds Elip, an AI career coach that lives where job seekers already are: WhatsApp, with a web app, a Chrome extension and a mobile app around it. The pitch is that looking for work is mostly unglamorous logistics, and most of that can be handled by an agent that remembers you between conversations.

## What I did

- Built Elip, an AI career coach on WhatsApp (with web, a Chrome extension, and a mobile app) that helps job seekers fix their resume, build a search profile, and get matched to jobs.
- The core was a FastAPI WhatsApp agent, a router model with specialist sub-agents, that parsed resumes and LinkedIn profiles, ran resume reviews, and returned ranked jobs, with cross-session memory across Redis, Postgres, and S3.
- Built the search layer over OpenSearch (hybrid keyword and vector search with Bedrock embeddings) and a fleet of Go services that index jobs from around 60 ATS and job boards.
- Built the Go backend behind the web and mobile apps, plus a Chrome extension that autofills multi-step job applications and tailors a resume to each posting.

## The longer version

The interesting constraint was the surface. WhatsApp is a text box. There is no sidebar to hide settings in, no place to show a form, and no way to make someone read documentation first. Everything the product did had to survive being asked for in one message, by someone who is tired and job hunting.

The core was a FastAPI agent shaped as a router with specialist sub-agents behind it. One read resumes and LinkedIn profiles, one ran the review, one returned ranked jobs. Routing sat in code rather than in the model's discretion, because a router that occasionally decides to freestyle is a router that occasionally loses someone's resume.

Memory was the part I underestimated. A career conversation is not one session. It is a person coming back three weeks later expecting you to know what they already told you, so state lived across Redis, Postgres and S3 rather than in a context window.

The other half was retrieval. I built the search layer on OpenSearch, hybrid keyword and vector with Bedrock embeddings, over a fleet of Go services indexing jobs from around sixty ATS platforms and job boards. Hybrid rather than pure vector for the reason I keep running into: a hard requirement is a filter, not a similarity score.

I left in August 2026. Five months, and the thing I took with me is that the hard problems were never the model ones — they were memory, routing determinism, and the difference between a query and a requirement.

## Stack

TypeScript, Go, Node.js, Nest.js, PostgreSQL, Redis, OpenSearch, Mem0, LLM, Docker, AWS

---

Source: https://himanshuat.com/experience/tejas-ai-yc-w25-software-development-engineer-sde
