Yesterday, I attended a really cool hackathon
The challenge was to solve a real pain point using partner tools: @convex , @getcontextdev , and Devin(@cognition)
Initially, the idea was to build a personal networking CRM that could aggregate all communication sources like LinkedIn, WhatsApp, Email, Telegram, etc
All of this would filling our vector database, allowing us to ask any question whenever we needed a new job, an investor, and so on. The neural network would then pick out the most relevant people we had ever talked to
To help maintain those relationships, we also wanted to add follow-up reminders and call recordings
BUT we had to pivot
We adjusted the idea to fit the main audience at the hackathon and built a job search assistant instead keeping all the previous logic and adding job search via @getcontextdev (YC S26)
As a result, you get the warmest contact from your graph for specific job openings, or someone who could theoretically help out
However, we were a tiny bit late submitting our solution, so we didn’t make the winners list
Special thanks to my team it was awesome! Silvia Mogas and Ivan Doronin
Thanks to the organizers and speakers
@TheBlockGlobal@cognition@collabute@getcontextdev@Convex
The best CLI harness for Chinese devices
Oh my pi it gives a ton of perks to basic models. I’ve been running GLM 5.2 for the past month; for the price, it performs just like an Opus, but it’s still affordable😬
Thanks to Devin for the unlimited tokens
A little tech talk: omp has built-in memory; you can connect any device, LSP is right under the hood, it generates skills on its own and adapts to your tasks
If you’re tired of Claude and Codex, feel free to give it a try
Dubai AI Hub Builder Lab Hackathon we built a voice agent for construction sites in 6 hours and made it to the semifinal
I owned the code
The product deserves its own post, this one is about something else: by the end of the day the codebase looked better than many projects do after six months
Here are six practices that made it happen, and that I'm taking into my day-to-day work
1. Project constitution as the first commit
With hard numeric limits:
file ≤500 lines
function ≤80 lines
cyclomatic complexity ≤15
nesting ≤4
KISS/YAGNI formalized too: a new abstraction only when there are two real consumers, dedupe on the third repetition
When an agent writes the code, these limits are the only thing stopping it from generating a factory of factories. The linter now enforces what used to be an opinion in code review
2. The spec is a standing prompt
Acceptance scenarios and user flows written in prose before any code, failure paths included
Every brief to the agent is a delta against these documents, no retelling the context from scratch
Bonus: the flow document translated almost one-to-one into test names (test_b3_15_weather_unavailable_never_assumes_fine)
3. A "forbidden actions" block in every brief
• don't invent numbers
• don't hardcode thresholds
• don't edit the eval set to make tests pass
• don't refactor files outside your task
The last two shut down classic agent pathologies. Cheap, works.
4. Deterministic evals with zero network calls, from hour one
37 pytest cases hit the tool layer directly:
• everything external is mocked at the adapter boundary
• time and state get injected, a stale snapshot is planted by hand
• the suite is green on a clean machine with no API keys
That's what let us swap out an external data source entirely mid-day and know within 10 seconds that nothing broke
5. An invariant lives where it can actually hold
We first put the concurrent-session limit on the client and stepped on the classic rake: a client can't coordinate tabs and devices
Rebuilt it as a backend lease broker:
Redis, atomic acquire in a single Lua script (prune expired + capacity check + insert)
heartbeat extends only a live lease
a crashed tab frees its slot on its own, via TTL
if Redis is down, an in-memory broker with identical semantics kicks in so the demo doesn't die
6. A review pass as a separate agent task
Not a PR review
The brief was: "walk the entire codebase and find problems"
One such pass found a dead end in stale-data handling and missing retriever keywords
Two defects nobody had asked about
Best ROI per token of the day, I'll be asking earlier and more than once
The takeaway is simple: discipline is what gave us the speed
Limits in the linter, spec before code, mocks at the boundaries, invariants on the server. An agent writes fast exactly when "correct" is defined in a machine-checkable way
GitHub link in first comment
What have you carried over from hackathons into your everyday work?
We made it to the semifinals Dubai AI Hub Builder Lab hackathon
We created voice AI assistant by solving a real frontline problem: workers need fast access to the right safety procedures, company rules and live site conditions without stopping work to search through documents
The strongest initial market is UAE construction, where extreme weather, strict HSE requirements and large frontline workforces create a strong need for verified, voice-first operational guidance at the point of work
If you wanna try it let me know and I sending the link
Thank you guys Ankita Biswas, Lucy Scott Brown, Silvia Mogas, Sahand Sorouri
And appreciate for organizing @ElevenLabs@cognition@getcontextdev