Category: Technology

  • Side-Track Is Live on the App Store

    I’ve been working on this app, part of a larger product, on and off for a few months. It wasn’t a straight sprint. Progress came in bursts between other responsibilities, moments of motivation followed by stretches where life simply got in the way. Still, slowly, it started to resemble something real.

    Right before Christmas, I finally felt it was ready enough to submit for App Store review. Hitting that submit button felt like crossing a small but meaningful threshold. Whatever happened next, at least the app had reached someone else’s hands.

    By the new year, I had a response.

    Rejected.

    The reason itself was frustrating in a very particular way. The app had been reviewed on a platform it wasn’t designed to support. Side-Track was built for iPhone. I had explicitly removed support for iPad and macOS. Yet the review feedback indicated it had been tested on iPad, where it understandably did not work.

    I replied, explained the situation, and asked for the app to be reviewed on the intended platform. And then I waited.

    Waiting is where things tend to unravel a bit. With no response, doubt started creeping in. Maybe I had missed something. Maybe there really was a bug I hadn’t caught. This was my first iOS app, after all, and it didn’t feel unreasonable to assume the mistake was mine.

    I was tired, juggling other work, and slowly made peace with the idea that this wasn’t shipping anytime soon. I braced myself for another rejection email and mentally pushed the app down my list of immediate priorities.

    Then today, I got an email I honestly did not see coming.

    “Congratulations! We’re pleased to let you know that your app, Side-Track, has been approved for distribution.”

    It took a moment to register.

    Relief came first. That quiet exhale you don’t realize you’re holding. I went back to what I was doing, trying not to make a big deal out of it. People ship apps every day. This wasn’t some monumental achievement.

    But a few minutes later, I stood up and realized I felt lightheaded.

    That’s when it clicked. I was genuinely happy. Elated, even. That slow, delayed payoff after weeks of uncertainty hit harder than I expected. Delayed gratification, it turns out, is pretty powerful.

    This isn’t a finish line. If anything, it feels like the very first marker on a long road. Maybe one percent in. There’s still a lot of work left to do, and many things I want to improve, rethink, or build from scratch. But this small moment of progress made something clear.

    If making progress feels this good, then maybe it’s worth sticking with it.

    Side-Track is now live on the App Store everywhere.

    If you give it a try, I’d really appreciate your thoughts and constructive feedback. There’s still plenty to build, and your input will help shape what comes next.

  • Hackathons might be Dying

    Hackathons might be Dying

    I’ve attended few hackathons, often through ASU, and they’ve painted a disappointing picture of what hackathons are or have become.

    Online, especially in memes, hackathons are often portrayed as high-energy events full of incredibly skilled, competitive developers building impressive prototypes in record time. In reality, many of the ones I’ve attended were filled with students still very early in their learning journeys, several struggling with basic remote deployment or project setup.

    Most recently, I attended Sunhacks, one of ASU’s larger hackathons. While I appreciate the effort that went into organizing it, I left unsure of what the event was really trying to achieve.

    The strong presence of sponsoring companies, Google, Amazon, Base44, and others, seemed to steer the event toward lame AI-related projects. I don’t think this was intentional; it’s just what happens when the showcased tools and challenges revolve around LLM APIs. As a result, many teams, including mine, ended up producing AI-driven web apps that all felt somewhat similar. Very few projects stood out as novel or experimental, and even the more creative ones didn’t seem to receive much recognition.

    The judging process also suffered from scaling issues. There were too few judges for the number of teams, which likely led to uneven evaluations. Early teams had a better chance of being seen thoroughly, while others may have been skipped or reviewed hastily. This kind of fatigue bias is well known, and should be easy to plan around, but somehow, the organizers missed it completely.

    That said, there were positives. The event offered great opportunities to socialize and meet new people, and I got to see several neat ideas and clever implementations from other teams, even if none of them ended up winning.

    Still, it’s hard not to notice the broader trend. With the economy tightening and companies hiring fewer students, there’s a growing sense of disengagement at these events. Many company representatives seemed to be there merely to maintain a presence, devoid of any real enthusiasm.

    It maybe suggests a larger trend, a waning trust in the economy at large, where both companies and students are becoming more cautious, more restrained, and less optimistic about the near-term and possibly long-term as well.

    If you’ve had a different experience, I’d love to hear your thoughts.

  • Feed My Starving Children: How Good Design and Engineering makes Goodwill Scalable

    Feed My Starving Children: How Good Design and Engineering makes Goodwill Scalable

    I had an opportunity to volunteer at Feed My Starving Children (FMSC), and I came away amazed not just by their achievements, but by how well they’ve built everything around their mission.

    Most nonprofits struggle to balance compassion with coordination, but FMSC has somehow mastered both. They’ve built a machine that blends technology, logistics, marketing, branding, capital, man-power, the spirit of competition and goodwill into something that feels more like a community celebration than charity work.

    Turning Labor Into Leverage

    Running any operation, even nonprofits, costs money. Labor, especially in developed countries, is expensive. But FMSC has flipped that challenge on its head. They use volunteers, and the volunteers are also part of their marketing.

    Almost everyone in their packing facilities is a volunteer, from the people sealing bags to those stacking boxes on pallets. And yet, it doesn’t feel like “work.” They’ve made volunteering fun by gamifying the whole process.

    The Joy of Packing Meals

    When I joined, our group had six packing stations competing to see who could pack the most meals. Every few minutes, someone would shout out, announcing that one more box had been packed, everyone would cheer, and we’d push to beat the other tables. In just two hours, our group packed over 44,000 meals, enough to feed thousands of children. This would not be possible without FMSC’s fantastic planning and execution.

    There’s music, energy, laughter, and a sense of friendly rivalry that makes time fly. It’s smart design: people want to help, but they also want to feel like they’re part of something exciting and effective. FMSC gives them exactly that.

    The Tech Behind the Impact

    What impressed me most, though, was the technology behind the experience. Everything runs smoothly because of their website and digital systems.

    You sign up online, pick a location and time slot, get email reminders leading up to your shift, and even receive a confirmation after you check in at the facility. The website isn’t just functional, it’s strategically built to eliminate friction at every step.

    It also handles:

    • Volunteer scheduling and time slot management
    • Group coordination (for schools, churches, or companies)
    • Donations and meal sponsorships
    • E-commerce for artisan goods made by communities in places like Haiti
    • Impact tracking and progress updates

    The entire volunteer experience — from sign-up to packing — feels like it’s been engineered for engagement. And that’s where FMSC really stands out. They’ve invested in systems that scale generosity.

    Trust and Transparency

    People give their time and money when they can trust it’ll make a difference. FMSC reinforces that trust beautifully. Every session begins and ends with real numbers, how many meals you packed, how many kids that feeds, and where it’s going.

    They also partner with schools, churches, and local organizations in Africa, Haiti, and other countries to ensure the food gets where it’s needed most. You can see the results right there on their website, stories of children who are healthier, growing, and even able to go to school because of these meals.

    Engineering Hope

    Their signature product, MannaPack Rice, is another brilliant example of practical engineering. It’s a carefully formulated blend that provides all the basic nutrition a child needs, easy to store, easy to ship, and hard to spoil.

    It’s so efficient that I found myself wondering if I could buy some for myself. It’s like a “universal meal,” designed purely for function.

    A Place for Everyone

    What struck me most during my visit was the mix of people. Seniors, kids, entire families, all working together. Some came with churches or schools, others with coworkers. For a few hours, everyone is focused on a shared mission.

    And because the process is so streamlined, both in person and online, the barrier to entry is almost nonexistent. You just sign up, show up, and make a real impact. That’s what good technology should do.

    Why FMSC Works

    Feed My Starving Children doesn’t just rely on compassion. It designs for it. From the way they automate volunteer scheduling to how they communicate results, every part of the experience is intentional.

    It’s not just a nonprofit, it’s a tech-enabled movement built around human connection. And it works.

    Volunteering at FMSC has been quite a learning experience for me. And I hope other firms can also replicate how FMSC is running the operation.

    I’ll definitely be going back. And I’ll be telling everyone I know to try it, not just because it feels good to help, but because it’s inspiring to see how smart design and engineering can turn goodwill into global change.

  • Why WordPress Still Dominates: Lessons from Building an E-commerce Site

    I recently built an e-commerce site for a clothing business using WordPress, and the experience left me genuinely impressed by what this platform offers out of the box. As developers, we sometimes get caught up in the latest frameworks and technologies, but this project reminded me why WordPress still powers 43% of all websites on the internet.

    A Feature List That Just Keeps Going

    What struck me most was the sheer breadth of production ready functionality available without writing a single line of custom code:

    • Drag-and-drop WYSIWYG editor
    • Prebuilt, customizable themes
    • User dashboard for managing products, posts, and accounts
    • Flexible user roles and permissions
    • REST and GraphQL APIs for developers
    • Integrations with Facebook, Instagram, and almost any other platform
    • SEO stuff, static pages and analytics
    • Support for customer reviews
    • Full e-commerce setup in just a few clicks
    • Compatibility with nearly all payment gateways
    • Mobile apps for managing stock, taxes, shipping, coupons, and sales
    • Low cost hosting

    Building even half of these features from scratch would have taken months. WordPress delivered them instantly.

    The Reality Gap: Developers vs. Business Owners

    Working on this project highlighted something crucial that we developers often overlook: the enormous technical knowledge gap between us developers, business owners, and end customers.

    I could have built a React or Next.js application with all the latest bells and whistles. But imagine asking a clothing business owner to update their product catalog by editing markdown files and pushing to a Git repository. It’s not happening. And I can’t imagine spending months building a dashboard to solve this problem, when an open-source production ready one already exists in WordPress.

    And I did do exactly this once before, using Next.js to build an e-commerce site, for another business. It was alright, I spent a month on it, but I’d pick this over Next.js, and I’ve built this in what feels like 4 hours.

    The technology has to work for the actual users, not just impress other developers. WordPress gets this right by prioritizing usability over technical sophistication.

    A Humbling Experience

    Here’s what really got to me: I later created a blog using WordPress as a headless CMS, feeding content to my custom-built site. The WordPress admin interface – which I was only using as a backend – had a better-looking UI than my own frontend. That annoyed me a bit, but it was also enlightening.

    The Bottom Line

    WordPress succeeds because it solves real problems for real people. While we chase the latest JavaScript frameworks and architectural patterns, WordPress focuses on making website management accessible to everyone. There’s wisdom in that approach.

    For many use cases, especially content-heavy sites and e-commerce stores, WordPress remains the pragmatic choice. It’s not always the most exciting option, but it’s often the right one.


    Want to experiment with WordPress hosting? I have excess server capacity available. Feel free to reach out if you’d like to try it out for free.

  • Building a Fitness app myself, since AI couldn’t handle it

    In my last article on coding with AI, I was very impressed by the output produced by AI code gen tools and the speed at which these tools allowed us to prototype. Here is that article for reference: https://www.explosion.fun/blog/post/rebuilding-my-website-with-ai/

    This time I was much more bullish on the capabilities of AI tools, and I employed them during the making of my React-Native Fitness application. Though these tools were markedly less effective in this category. React-Native I suppose forms a significantly smaller pie of ‘all the code in the world’ than web development or NextJs does.

    I can see this being a real problem for any subset of programming that doesn’t get as much attention as NextJs. Perhaps programmers would still have a job in the AI driven utopia future.

    I should delineate how I used AI for this experiment and the tools I utilized. I started off with Augment Code, an AI coding helper said to be as good as Cursor AI. When I used it though, I didn’t think it was, so I switched to Windsurf – a strong Cursor competitor.

    Windsurf though has apparently lost it’s place after OpenAI acquired Windsurf, since Anthropic had stopped supplying Claude to Windsurf. Windsurf was so much worse at programming without Claude. Later Anthropic agreed to be present on Windsurf again, though as users we would have to BYOK (bring your own key) to use Claude on the Windsurf editor. So I found myself deleting Windsurf a few hours after the experiment started.

    I decided I would stick to Cursor’s free tier or just do it myself. The free tier was doing much better than Windsurf was performing.

    I used Stytch, Google’s AI UI design platform to design a few panels and they came out really good. They provide an option to copy paste the design onto Figma, though that feature didn’t work as smoothly as I would have wanted.

    Right around this time, Google released their Gemini CLI to the public and made it Open-Source. So I figured I would try it out since it managed to design UI panels really well. Maybe it could do the app quite well too. Gemini CLI did not manage to contribute meaningfully to the application.

    The poor performance of AI code gen tools in making mobile applications was giving me confidence about the future software job market. I pray my confidence lasts.

    Is AI Net Negative?

    I’ve programmed some more.. the code base grew.. I let the AI run rampant on the code base and now the AI tools have no idea what’s going on.

    Here is a panel and some other artifacts the AI created. At the top you can see a white bar with (tabs) written in within it. That shouldn’t be there.. So I asked Cursor/Claude why it was there. After some analyzing it agreed that it shouldn’t be there.. AI added that and now didn’t know how that got there.

    It was something similar with every component AI had built, everything needed re-writes, large scale re-writes. I believe it did contribute significantly at the very start, but it can only do the absolute basics.

    I just have trouble seeing this as the reason for the current decline in hiring.

  • Rebuilding my website – With AI!

    I’ve been trying to replace myself with AI since chat-based AI tools first started coming out. When ChatGpt came onto the scene, I was so excited! Sam Altman and every LLM model company CEO told us that AI would replace all jobs and that our productivity would skyrocket.

    I loved it. Finally I could replace myself with AI and sit around collecting money, I thought. Spoiler alert! It couldn’t do it (yet). So you can understand my disappointment.

    LLMs have come a loong way since they first hit the market, so I decided to test their capabilities by attempting to rebuild my portfolio/blog with AI. Cause if it can help millions of students complete their complex assignments, it should be able to do my Website too.

    I decided to use a CMS since I wanted the ability to edit articles from my phone as well. This choice I made would later cause many problems and extra work. The CMS I chose was Headless WordPress with GraphQL.

    I started with Microsoft Copilot integrated into VS Code. I can pick and choose the model that I want Copilot to use. Having seen LM Arena Benchmarks and the latest Google I/O event, I knew Google’s Gemini 2.5 Pro Preview was the model for me. .. 3 prompts later, I erased all the code made by Gemini and switched over to Claude. Claude is considered status quo for a reason, I suppose. Claude Sonnet 4 was doing so well; it did almost exactly what it had been told to do and was a great aid in coding my blog. It even does kinda alright at CSS styling now.

    I was able to get so much more done and so much more quickly that I found myself giving more and more control over to Copilot. Eventually, when a new bug surfaced, I didn’t even bother using my brain, it went straight to Copilot. Three days of copilot use later, I felt markedly stupider. I could feel my competence dwindling with every task I attempted to outsource to Copilot. Soon, I predict I will be able to swap out my brain for an API/MCP layer to Claude or Gemini or something. Yay!

    However, it kept making much more code than was necessary and kept adding CSS rules in all the wrong places. The more I used AI code gen, the more messy my code base seemed to get. But the work was getting done, though the pace seemed to be slowing down bit by bit.

    Copilot now would add CSS everywhere and make quite a mess. It was creating new style tags within the HTML file and adding some rules there, sometimes it would do inline styling, sometimes it would add within the right CSS styles file, and sometimes it would create a brand new .css file and add some rules there (and it would often fail to import that new file). Eventually, Copilot reached a point where it could no longer figure out the mess it had created. Copilot faired a decent bit better with Javascript code, though it still needed significant oversight from the developer.
    All of this was making quite a mess, but since the priority was speed and not quality, I continued to ignore these issues. I thought I could just clean up once the project functionality was completed.

    Eventually though.. copilot became a net negative in my project, where not using Copilot and just doing the task myself would have saved me hours, and would have left me feeling a teenie bit smarter. I found myself having to utilize my brain again, what a buzzkill.

    Then I found a problem, that I should have found at the very start of the project. Since my data was coming from a CMS and not simply hard coded into the repository, routing and generation of static pages would be annoying and difficult to code. I could either do all that work or switch over to NextJs and save me a lot of time in the future.. . I made the difficult decision to switch over to NextJs.

    For the conversion of my code base to NextJs code I decided to try out the famous/ infamous Cursor AI, an AI coding platform that has been all the rage recently. Code the “Agentic” way! Okaay!
    I was only trying it out because ThePrimeagen, prominent youtube influencer personality and coding “Guru” was also trying it out and he did not hate it, interesting.
    So I load up Cursor AI Pro and ask it to convert my repository to NextJs, it suggests a couple of huuge changes, I reject all of its suggestions and start a fresh repository, and now AI works great. Incredible even!

    Right off the bat, Cursor was doing waay better than Copilot. I would ask it to do something and it would go way beyond that and fill in parts that I had forgot to mention as well. Over and over again Cursor surprised me by building fully functioning feature, and doing them better than I had envisioned. I loved how Cursor would make code completions and display them like a PR; this gave me exceptional control over what was going to get committed and what was going to get rejected.
    Y Combinator execs were saying that these days, people prompt to get whole modules written, and then if it didn’t work for some reason, instead of fixing the minor bug or two, they delete all that code and prompt again. I could now understand what they meant, it was possibly faster to do so in many cases.
    With NextJs and AI governing my every move, the project now had decent small components and okaay structure. And I managed to complete the bulk of the work in mere hours instead of the multiple days it would usually have taken me.

    As happy as I was with the speed with which AI was enabling me to push forward in my project, there was also a fear growing in me of being replaced by this AI. Only days ago had I regained confidence in not being replaced, after Copilot had shown me how much of a let down it was and a waste of time it could be. And now a much more competent competitor had arrived, Cursor AI. It had done better and faster in so many scenarios that it scared me a bit.

    But..

    As the codebase grew, Cursor started to struggle, even with simple tasks. For example, I needed to add category filters before rendering the review scores. It was a straightforward feature, the kind of thing any competent dev tool should handle easily. But this is where Cursor began to fall short. Each attempt it made got me about 90% of the way there, but always with small bugs or logical missteps. I’d fix those bugs, test the code, and then run into a different issue. This cycle repeated for over a day. Eventually, I gave up on the AI and did it myself. It took me maybe 30 minutes.

    That was quite a let down.

    I began to resent Cursor a little. It had started off so strong, shockingly strong, and now it felt like it was wasting my time. Still, I had to remind myself: it was incredibly useful for the boilerplate, repetitive stuff. I just hadn’t found the right balance yet.

    So no, AI isn’t replacing web developers just yet. Especially not the ones building non-trivial applications. But it is changing how we work, and fast.

    Pros of AI Coding tools:

    You’re stuck on bugs for much shorter spans of time. This makes AI tools a great tool for acquiring new skills.

    Starting a new project in an unfamiliar programming language or framework is now easier than ever.

    “Agentic” isn’t simply a buzzword, it does make a significant difference.

    Cons of AI Coding tools:

    These tools work best with small context windows, though this should get much better over time.

    These tools are still bad at generating novel code, the likes of which it hasn’t seen before.

    The job market is gonna get even worse.

    Introducing a small deviation from the norm, a WordPress CMS made many things much harder to work with

    Summary

    For those wanting to build something cool of their own, it is now easier than ever and it will likely get easier still. For those attempting to break into the development job market, perhaps the ladder has been pulled up away from under your feet. With learning programming having become so much easier, there would be a lot more people trying their hand at it now. And there is a whole generation of programmers coming, who are still in the pipeline, since they are too young to enter the work force. The market for programming jobs is brutal right now, and it could get a lot worse soon.