Nymo got me my first software engineering job.
I know that sounds dramatic. At the start of the year it was just our second-year group project at IIT: five of us, one deadline, and way more ambition than sense. A few months later I was sitting in my fourth interview and it was basically the only thing the CTO wanted to talk about.
So yeah. Let me tell you about it.
We were supposed to build something for the Software Development Group Project module. Most groups play it safe. We decided we wanted to do a marketplace for indie clothing brands in Sri Lanka. A lot of these brands live on Instagram. They post fits, take orders in DMs, then somehow manage everything through bank transfer screenshots, random spreadsheets, and size charts that change every other week. It works, but it’s chaotic for everyone involved.
Our idea was simple on paper: one place where people could actually browse and buy from these brands, and where the brands themselves could manage products and see their customers without living inside WhatsApp.
In practice it turned into several TypeScript apps talking to each other: Next.js on the front, an Elysia API running on Bun. Same language across the board meant we could jump between parts of the project without constantly context-switching languages. That helped more than I expected.
Was the scope ridiculous for a uni module? Absolutely. We did it anyway.
Some of what we built was genuinely useful. Some of it was just flexing. I have to say, a good friend of mine who was also on the team really went all in on this with me. Having someone take ownership of a significant part of the project; like the DevOps setup and the entire mobile app, was such a relief. With that, I could focus on the “presentation” of what we were building alongside the technical details. From the landing page to the actual branding and design: I was writing React in the morning, then opening Figma to finish up the logo in the evening.
The vendor side became my obsession: the flow from a brand applying, setting up their storefront, uploading a product, and having it show up for customers. We even threw a vision model at the clothing photos so sellers didn’t have to manually type every visible detail into the catalogue. That one actually earned its place. We didn’t just stick a chatbot in the corner and call it AI.
A lot of the cooler ideas never made it past the pitch slides. I’m glad about that, weirdly. When interviewers asked what we actually shipped versus what we dreamed about, I could answer honestly.
The real pain wasn’t writing individual screens. It was making five people’s work feel like one product. Auth looked different depending on which app you were in. Our git history has commits called things like add dashboard cors, fix: cors for new urls, more CORS fixes, even more cors fixes, and finally just maybe. That last one is still my favourite.
Leading the team mostly meant living in the cracks. Reviewing obviously AI-generated code, jumping on whatever was broken that day, catching collisions before the demo. I stopped thinking in terms of “my features.” If the product was on fire, it was my problem too.
There were stretches where the repo felt completely cooked. Fix one app, break auth in another. Schema change that only shows up three branches later. Someone merges while someone else is still coding against the old version. Then we’d untangle it, deploy again, and slowly watch it start making sense.
By the end it didn’t feel like five separate assignments stuck together. It felt like one product. We got 96%, one of the highest in the batch. I was happy about the mark, but prouder that the ridiculous thing actually held together in the demo. We kept working on it after grading, which is probably the clearest sign it had stopped feeling like coursework.
A couple of months later I was hunting for an internship. Watched friends walk out of the career fair with offers while I came home with nothing. Applied everywhere, bombed at least one assessment, felt the usual student panic of “everyone else already has something.”
Then one company put me through four rounds. By the final interview with the CTO, the conversation kept coming back to Nymo.
I didn’t have to speak in hypotheticals. I could talk about working with five people who all owned different pieces, about fixing integrations under a hard deadline, about why we went all-in on TypeScript so we could share more than just code. I could explain where computer vision actually helped, which AI ideas we shipped, and which ones we quietly abandoned. More than the tech, I could talk about what happened when the neat plan met reality.
I got the call in late May. Start date June 1.
Nymo never looked perfect on paper, and that might be why it worked so well in interviews. It carried every overreach, every late-night fix, every compromise right out in the open. What started as an assignment turned into the first project that made me feel like an actual software engineer, and apparently made someone else see me that way too.