Ten Coffees in Nuketown
It was 7 a.m., I'd just lost two hackathons in two days at GMR Engineering College, and a WhatsApp message lit up my phone in the back of the cab home: last few days to register for Hack Overflow 2.0, Pillai HOC, Mumbai. I tapped register before I'd thought it through. I hadn't slept. I'd drunk one Monster Energy and written about forty lines of CSS in ten hours overnight. The first hackathon had been a Flutter app I was unprepared to build. The second had been a website I should have been able to build with my eyes closed, except I'd tried to learn Tailwind from scratch on the clock and fallen apart. The form for Mumbai asked for a project idea. I made one up. I messaged the GDSC lead at Pillai HOC directly — I was the GDSC lead at my college and we knew each other through the network — and told her we were in. She let us in.
That was January 2024. The hackathon was in March, six weeks out. I assembled the same friends who had lost the previous two with me and told them this one was going to be different. We were going to plan it like a war.
The plan
Hemanth was the Flutter guy. He understood Flutter at a level the rest of us didn't, and at the GMR hackathon I'd watched him hand the rest of us tasks just because we were on his team — not because he needed help. So Hemanth was going to do all the Flutter, alone, and own the problem-solving for whatever idea we ran.
Vidhan would build the website with React and Tailwind. I had refused to use Tailwind in the GMR overnight and that had cost me. I was happy to let Vidhan carry it.
Jitendra was the friend who had stuck with me through the second loss without contributing much — not because he didn't want to, because he didn't have the foothold yet. We gave him an assist role on Flutter and told him he'd own the AI chatbot. He needed something real. We needed someone on the chatbot.
I took the back end. I had never written a back end before. I had never deployed an API. I had never connected a server to a frontend over a network. I spent six weeks learning Node.js and Express, deploying servers to Render, and breaking and unbreaking CORS configs.
Thirty hours by train
We took the train from Vizag to Mumbai. Thirty hours. Some of us had never been outside the state before. We tried snacks I'd never seen, slept badly on the upper berth, and spent most of the train arguing about ideas without picking one. Our team name was SPD — every team I lead is named SPD. We carried more equipment than four people needed: cables, adapters, a multi-port USB hub, power banks. If a war had broken out we would have had the right cables for it.
We got to the railway station at 4 a.m. I booked a cab without checking how far the college was. We arrived at Pillai HOC at 5:30 a.m., two hours before anyone was awake. The guard let us leave our luggage inside the gate. We walked to the park across the road and watched Mumbai wake up. I am from the other side of the country. My side is the Bay of Bengal. The Arabian Sea side feels different in ways you cannot articulate until you are standing in a park at sunrise watching it.
By 7:30 the other teams started showing up at the same park. Pillai HOC had given us a fake meeting location, which I now think was the right call — the actual venue had no waiting space and no one was going to want a hundred kids loitering at the gate at sunrise. They bussed us to the real college and recorded our arrival as we got off the bus. Every hackathon should do that. They gave us a four-page bingo of rules and resources and showed us our lab.
Our lab was called Nuketown. Another nearby lab was Wikendi. The labs were named after maps from Call of Duty and PUBG. I play Call of Duty Mobile. Whatever happened next, I was going to remember the lab.
The build
The theme was Smart City. We picked a climate awareness app — pulling weather and air-quality data, displaying current conditions, and using Gemini to generate three personalized tips for what the user could do that day to protect themselves or improve their air. Gemini had just become broadly available, and I'd had API access for a while because I was a GDSC lead. Nobody else in the room had a Gemini key. That was our differentiator.
The picking-the-problem fight happened that afternoon. I wanted to spend more time on the problem statement. Hemanth wanted to commit and start building. We argued. I walked away from the table to drink water and cool off. When I came back, I told him we'd go with his idea. He had the design taste — when Hemanth's apps look beautiful, they look beautiful — and we couldn't afford to spend our build time relitigating the problem. That was the right call. I would not have made it three months earlier.
We started building. Hemanth on the app. Vidhan on the website. Jitendra on the chatbot, watching a YouTube tutorial that he then adapted. I was on the back end, abstracting the Gemini calls into endpoints because we needed Gemini in two places — the chatbot and the tip generator — and I didn't want the system prompt and the API key sitting in the mobile app where anyone could decompile them out.
Somewhere in the first half of the build, between API errors, I started worrying that what we were making was, technically, just an API wrapper. The weather data was someone else's. The chatbot was someone else's. The tip generator was Gemini behind a system prompt. If we won, it would not be on technical depth. So I started reading about ways to make the data layer ours — and I landed on LoRaWAN. Meshes of sensors talking to each other across a city, dustbins reporting fullness, weather sensors broadcasting atmosphere data, all without Wi-Fi. If a city had a mesh like that, our app wouldn't be reading some company's API; it would be the readable layer of a real distributed system. I had no way to build it during the hackathon. I kept reading anyway.
Mid-build, two judges came around. A woman and a man. The man was clearly a professor. They listened to our pitch and the man said, with the confidence of someone who had been waiting to say it: this is just an API wrapper.
He was right. He had named the same fear I'd been turning over for the last hour. But because I'd been turning it over for the last hour, I had something to say back. I told him about LoRaWAN. About the mesh of sensors I'd just been reading about. About how the data feeding into our app didn't have to come from someone else's commercial weather API — it could come from a city-scale sensor mesh, and the API serving it could be ours, and the application sitting on top would no longer be a wrapper. It would be the readable layer of a real distributed system.
The professor lit up. He started asking technical questions. I answered as many as I could without overcommitting. I promised I would try to digitally simulate the mesh during the hackathon. I had no idea if I could. I knew I wouldn't. But the conversation pivoted from this is just an API wrapper to where did that come from?, and that was the conversation I needed. storytelling-is-not-optional: storytelling is part of the work, and I had not learned that lesson yet, but I was learning it in real time.
When the judges left, my team looked at me. I told them what I'd just promised. Hemanth said something I won't repeat. We did not, in the end, simulate the mesh.
Ten coffees
The night was a back-end night. APIs would not connect. The Wi-Fi was unreliable, so I couldn't share localhost between my laptop and Hemanth's. I had to deploy to Render every time we needed to test the contract between the app and the server. The deploy cycle was four minutes. I was making a change every four minutes.
By midnight, all three of them were dead. Hemanth was leaning on the desk. Jitendra had stopped typing. Vidhan was staring at his screen. I told them all to go sleep. They argued. I forced them. The only thing standing between us and a working demo was the back end, and the back end was my job.
I sat down to finish it and started losing my head, physically — my head was bobbing, I couldn't hold it up. There was a coffee kiosk somewhere outside. I went, paid for a cup, drank it, came back, sat on the sofa outside Nuketown, waited. Nothing. I went back and paid for two more. Came back. Nothing. I went back and paid for two more. Then two more. By the time I'd had ten cups of coffee — bought, one cup at a time, like the tired idiot I was — the caffeine kicked in. I had not yet learned that coffee takes thirty minutes to do anything. Somewhere in the third cup I had started wishing I had a Red Bull. I wished a sponsor had set up a table. I wished a lot of things. But the coffee, eventually, did the job.
I finished the back end at maybe 3 a.m., deployed it, tested the endpoints from Hemanth's laptop with my hotspot, confirmed the chatbot worked, confirmed the tip generator worked. I lay down on the floor and slept for ninety minutes. When I woke up the coffee was wearing off, and Hemanth was already back at the desk wiring the working API into the app. We recorded the demo videos. I went back to sleep. They woke me up four hours later for breakfast, then for the final round.
The secret final round
A volunteer came in and quietly told us the judges had questions about our project, and could we follow him to a different building. We followed. We walked across two apartment buildings' worth of campus to a different lab, in a different building, on a different floor, where ten teams had been quietly summoned for the real final round. We were in the top ten.
I had fifteen minutes to make a presentation we hadn't built. I made it Apple-style — one color per slide, minimal text, a tiny block diagram, and the demo videos we'd recorded the night before. I told the story the way I tell stories. The team made jokes. The judges laughed. We were happy.
We did not place.
The other top ten
The other nine teams were a mix. One was an app aggregator that admitted, on stage, that most of it wasn't ready. One was a smart-dustbin project with hardware. The kind of hardware you don't build in thirty-six hours. The kind you have already built, in a lab, before you got on the bus to come to this college. Their slide transitions were beautiful — they had used some animation tool I hadn't seen before — and the concept was good. I do not believe the implementation was built at Hack Overflow 2.0.
Another team was a robot rover. Cyberpunk-styled, surveillance, livestream, multi-terrain. Hardware. Pre-built.
The one I am most sure about was an eye-disease detection app — a retinal-scan classifier. I spoke to one of the team members before the final round and he told me, without prompting, that this project had already won prizes at two other hackathons and that they had funding. They walked into the building with a project that had a track record and a budget. They walked out with a prize.
What could have been different
There's a structural fix that would have made the comparison fairer without changing anything else about the event. Hack Overflow 2.0 framed itself as a college hackathon and accepted teams with pre-existing hardware projects and previously-funded apps. The fix is not to ban those teams — open events that include funded teams are not bugs, they are a real category. The fix is to label. no-ringers-without-disclosure: ringer teams are fine, mislabeling is not. If Hack Overflow 2.0 had announced itself as a Class B open competition, or carved out a Class A novice track inside the larger event, the room would have known what game it was playing. Funded teams with hardware would have competed for one set of prizes; six-week-prep college teams like ours would have competed for another. Both legitimate. Both apples to apples within their bracket. The other thing that would have helped is a basic integrity pass — a check on commit history for software projects, a question about prior submissions for the hardware ones — not as a gotcha but as a signal that the organizers had thought about it.
Everything else about the event was excellent, and worth saying out loud because the framing critique above can sound louder than I mean it to. The volunteers ran rooms on walkie-talkies and escorted participants between buildings on demand. Security was tight without being annoying. The food was rationed well — enough to keep you going, never enough to make you sleep. There was a fire-pit night, live music, dance, the whole side-event circuit going on continuously through the thirty-six hours; we did not attend any of it because we were inside Nuketown debugging APIs, but we watched the recap videos on the bus back and they were genuinely fun. The production value across the event was higher than I had seen at any hackathon before, and most of what I have since learned about how to organize a hackathon well, I learned by watching Pillai HOC do it. The framing was the one thing that needed work.
What it was for
I left Mumbai disappointed about the result and satisfied about everything else. We had prepared like an army and we had performed like one. We had hit our first technical wall — the API wrapper critique — and I had survived it on something I'd been reading about an hour earlier. I had drunk ten cups of coffee in a single night and finished a back end I had not known how to write six weeks earlier. We had made the top ten in a hackathon halfway across the country, against teams that had been working on their projects for months.
This was the first step forward. The next hackathon was the first one we won — second prize, a small one, but ours. We kept going. Nine months later, in December 2024, we won the Smart India Hackathon.
Every hackathon I have lost since has ended the same way: I could have done better. I will figure out what better means. The next one is not going to be like the last one. The Mumbai trip is the one where I learned to think that way.
Also: I never drank coffee at a hackathon again. Red Bull, every time. I learned that one too.