At the beginning of the hackathon, our biggest problem wasn’t coding — it was not knowing where to start.
We knew we were building something in the insurance domain, but that itself was overwhelming. Questions kept coming up: Who are we building for? What exact problem are we solving? How does insurance even fail in real-world scenarios? Instead of jumping into code blindly, we spent time researching — understanding the climate-related risks, insurance gaps, financial inefficiencies, and how technology could realistically solve them.
That research phase helped us define a direction: a system focused on secure access, structured logging, and reliability, something practical in insurance workflows.
But while we were figuring out the “why,” we became overconfident about the “how.”
We divided tasks and started building different modules — frontend input, backend authentication, and database logging. Individually, everything worked. But when we tried to integrate, things started breaking in subtle but critical ways.
The biggest issue came from null handling and inconsistent data validation.
Some inputs weren’t being validated properly, which meant null or unexpected values were slipping through layers. This caused unpredictable behavior — authentication failing randomly, logs not being recorded correctly, and in some cases, the system behaving in ways that directly contradicted its purpose. In an insurance-related system where reliability and correctness matter, this was a serious flaw.
What made it worse was that these weren’t obvious errors. The system didn’t crash — it just behaved incorrectly. That made debugging frustrating and time-consuming.
At one point, we realized we were stuck in a loop — fixing one issue, only to create another. The more we tried to patch things quickly, the more unstable the system became.
That was the breaking point.
We stopped adding features and went back to fundamentals. Instead of treating integration as a final step, we treated it as the core problem. We carefully traced how data moved across layers, enforced strict validation at every point, and handled null cases explicitly rather than assuming ideal inputs.
We simplified the logic, aligned our modules, and rebuilt the flow with clarity.
At the same time, our earlier research started guiding us better. Understanding the real-world financial and operational flaws in insurance systems helped us prioritize what actually mattered — reliability over complexity, correctness over features.
This failure taught us more than a smooth build ever could.
We learned that:
Not knowing where to start is normal, but skipping clarity leads to bigger problems later
Research is not a delay — it defines the direction
Small technical issues like null handling can break entire systems silently
Integration is the hardest and most important part of development
Simplicity and correctness matter more than adding features under pressure
In the end, our project wasn’t the most feature-heavy, but it was stable, structured, and grounded in real-world thinking. And that only happened because we failed early, understood why, and rebuilt with a clearer perspective.
Top comments (5)
Nice well done
Innovative idea, strong execution, great teamwork.
Woowwwww i love this idea....
This is excellent.
“Really loved this! The way you explained the shift from confusion to clarity feels so real. That lesson about integration and null handling is something every dev learns the hard way 👏”