PromptID
0 to production in 6 weeks. Pilot-ready and investor-demo-ready.
PromptID is an AI-native EdTech platform for employers and universities. It examines learners by analysing the train of thought, not by rewarding memorisation. A proprietary algorithm drives the assessment engine.
“Shipped what would normally take a bigger team a lot longer. Report overhaul, security hardening, infrastructure tightening, they owned it end to end. They kept production stable through pilot prep …” — April Elias GoogleOverview
PromptID is an AI-native EdTech platform for employers and universities. It examines learners by analysing the train of thought, not by rewarding memorisation. A proprietary algorithm drives the assessment engine.
What's the challenge?
The market moved mid-build and the timeline shrank by a month. Pilot conversations and investor demos sat on the calendar. LLM agnosticism, intuitive UX, production-grade from day one, none negotiable. The month had to come from scope, not quality.
Original timeline shortened by a month. QA stayed sharp anyway.
The original Gantt had a final month of QA and testing. The market took that month, so we had to be production-ready earlier. The reflex move is to cut testing rigor. We cut feature scope instead. The production-quality bar held by squeezing the surface area, not the testing time. The investor demos and pilot conversations on the client's calendar got what they needed.
What We Did
Timeline shrank by a month mid-build. We cut feature scope, not QA, and held the production bar. NestJS API with a BullMQ eval queue, NextJS frontend, LangChain so model swaps are config, Kubernetes autoscaling. Shipped pilot-ready and investor-demo-ready in six weeks, when the market needed it, not when the Gantt did.
Outcomes





Production architecture
The diagram illustrates a simplified high-level architecture and omits confidential implementation and security details.
Async submission evaluation
sequenceDiagram
autonumber
participant L as Learner Browser
participant API as NestJS API
participant Q as BullMQ (Redis)
participant W as Eval Worker
participant AI as OpenAI Reasoning
participant DB as Postgres
L->>API: POST /submissions
API->>DB: persist submission
API->>Q: enqueue eval job
API-->>L: 202 Accepted
Q->>W: dispatch job
W->>AI: evaluate (LangChain)
AI-->>W: score + construct
W->>DB: persist evaluation
L->>API: poll /submissions/{id}
API->>DB: read evaluation
API-->>L: feedback payload
Client Voice
Shipped what would normally take a bigger team a lot longer. Report overhaul, security hardening, infrastructure tightening, they owned it end to end. They kept production stable through pilot prep and investor demos. They communicated clearly and never made us chase a status update. Awesome team!
Two separate projects, consistently positive both times. Professional, responsive, extremely competent, and very easy to work with. They take the time to listen carefully, ask thoughtful questions, and make sure everyone is aligned. Highly capable technically and consistently go above and beyond to keep momentum moving. Even when requirements evolve, they remain calm, collaborative, and solutions-oriented. Would absolutely recommend Kevin, Chris, and the Wavect team.
Built multiple venture-backed startups with Wavect over 4 years. World class team. They're great thought partners while in discovery, reliable and predictable engineers while in dev, and just generally great guys to work with. Highly highly recommend you work with this team for your next project.
Amazingly efficient, professional, and excellent work. I recently worked with Kevin and his team on a large project. I plan on using him again and highly recommend his services.
What We Learned
Model agnosticism pays off fast. The landscape keeps shifting and LangChain’s abstraction turned model swaps into a config change. Kubernetes autoscaling earned its keep too, no overprovisioning, but the system absorbed load spikes in seconds.
Want outcomes like this?
Tell us what you're building. We'll tell you whether we're the right team for it.
Book a call