kaliades
Joined 12 years ago
Joined 12 years ago
Stack: TypeScript, NestJS + Fastify, React, Valkey, PostgreSQL, Docker, Kubernetes, Terraform, AWS.
We ship OSS self-hosted and have a live cloud SaaS: https://betterdb.com/login In the last two months we've averaged more than one release per week across multiple products and channels. That's what "moves fast" looks like in practice. We recently started moving more and more into the LLM cache space via both observability and actual libraries.
We hired our first engineer in March and are looking to expand the team — no pressure on timeline, we'd rather find the right person.
Just email [email protected] with a bit about yourself and why this is interesting to you. I reply to everyone. It might take a day or two given volume, but you'll hear back.
If you want the 'basically the same question' behavior, that's our other package - @betterdb/semantic-cache. It embeds the prompt as a vector and does similarity search, so 'What is the capital of France?' and 'Capital city of France?' both hit. The trade-off is it needs valkey-search for the vector index, while agent-cache works on completely vanilla Valkey with no modules.
In practice, agent-cache hits its cache less often than semantic-cache would, but when it does hit, you know the result is correct - there's no chance of returning a response for a question that was similar but not actually the same.
Three tiers: if your agent calls gpt-4o with the same prompt twice, the second call returns from Valkey in under 1ms instead of hitting the API. Same for tool calls - if your agent calls get_weather("Sofia") twice with the same arguments, the cached result comes back instantly. And session state (what step the agent is on, user intent, LangGraph checkpoints) persists across requests with per-field TTL.
The main difference from existing options is that LangChain's cache only handles LLM responses, LangGraph's checkpoint-redis only handles state (and requires Redis 8 + modules), and none of them ship OpenTelemetry or Prometheus instrumentation at the cache layer. This puts all three tiers behind one Valkey connection with observability built in.
There are 2 points I can make to try and make it make sense (a lot of makes...)
1 - The moment a job post goes live, there are hundreds of applicants. It is an absolute spam. Several have been honest enough to admit they used an AI automation to apply everywhere. This aims to both filter some of the spammers, and also legitimately give people the option to see what they'd work on. Everyone running our product with an email as a license key is assumed a job applicant, and removed from all statistics.
2 - The last time we hired was in February. The moment the role was filled, I left a comment for transparency - https://news.ycombinator.com/item?id=47075520 We are now looking to expand a bit more, so I posted again. I know that the filtering might be frustrating, but try to be on the other side too.
And also, since I am the hiring, interviewing, and everything else person, I don't ghost. It's not much, but it is honest work as the old meme went