The Unseen Grind: How Failure Forged My Grit in Software Development
Mark Benson MatanguihanThe Weight of a Failed Portfolio
There’s a graveyard of half-finished projects on my hard drive, each a monument to ambition that outstripped discipline. One, in particular, stands out: an ambitious personal portfolio site I started years ago. I envisioned it as a showcase, a testament to my burgeoning skills in UI/UX design and software development. Instead, it became a masterclass in over-engineering, scope creep, and ultimately, a painful lesson in failure. I poured countless hours into it, jumping between frameworks, constantly redesigning, and never quite launching anything substantial. It was a cycle of starting strong and fizzling out, leaving me with a profound sense of inadequacy.
This wasn't just a technical setback; it was a blow to my confidence as a developer and a designer. I questioned my ability to deliver, to see a project through from conception to deployment. The initial excitement of building something unique, perhaps with React or even an early attempt with Flutter for a companion mobile app, slowly eroded into frustration. Every new feature I thought of added to the complexity, pushing the finish line further away. It felt like I was constantly chasing perfection without ever truly understanding what 'done' looked like.
Anatomy of a Setback: Beyond the Code
Looking back, the failure wasn't just about my coding skills, though they were certainly raw at the time. It was a multifaceted breakdown rooted in a lack of clear design principles, poor project management, and, most critically, a deficit of personal discipline. I’d start with a grand vision in Figma, sketching out intricate UI/UX designs, only to get lost in the implementation details. I’d pick up a new technology, say Next.js for server-side rendering, without fully grasping its implications, leading to unnecessary complexity.
I was building without a solid foundation. There was no consistent daily effort, no structured approach to problem-solving. I’d spend days perfecting a single component with Tailwind CSS, only to realize it didn't fit the overall aesthetic or functional requirement. My backend choices were equally sporadic, dabbling with Firebase without a clear data model, leading to convoluted logic. This chaotic approach meant that every new feature introduced more bugs than it solved, and the project became an unmanageable beast. The lesson was stark: technical prowess alone isn't enough; it must be coupled with strategic thinking and unwavering commitment.
Forging Grit: The Discipline of Daily Building
That portfolio failure, painful as it was, became a crucible. It forced me to confront my weaknesses and rebuild my approach from the ground up. This wasn't about finding motivation; it was about cultivating grit and discipline. Motivation is fleeting; discipline is the engine that keeps you moving when inspiration wanes. I committed to a new philosophy: 'underpromise and overdeliver.' This meant setting realistic goals, breaking down complex tasks into manageable chunks, and consistently showing up, every single day.
I started by focusing on fundamentals. For UI/UX design, I dedicated time to understanding core principles, not just aesthetics. For software development, I embraced a more structured workflow, whether I was working on a freelance project or contributing to something like the AGOS hackathon. I learned to leverage tools effectively: Figma for meticulous design planning, Next.js and React for robust web applications, Flutter for efficient mobile development, and Firebase for scalable backend solutions. Deploying to Vercel became a ritual, a tangible sign of progress, no matter how small. This daily grind, this consistent effort, transformed my failures into stepping stones.
Clarity Born from the Crucible
The clarity that emerged from that period of intense self-reflection and disciplined practice was invaluable. It wasn't just about learning new frameworks or mastering Tailwind CSS for rapid UI development; it was about understanding the 'why' behind every decision. Why this architecture? Why this design choice? Why this particular tool? This philosophical shift brought purpose to my craft, whether I was building a complex web application or a simple mobile utility.
This newfound clarity now informs every aspect of my work, from initial UI/UX design concepts to the final deployment. It’s about building robust, user-centric solutions that genuinely solve problems, rather than just chasing the latest trend. My journey through failure taught me that true progress isn't measured by the absence of mistakes, but by the persistence to learn from them, the grit to keep pushing forward, and the discipline to consistently refine your craft. Don't fear the fall; embrace the lessons it brings, and let them fuel your next build.
Tags

About Mark Benson Matanguihan
Developer & Content Creator