$ cat post/when-the-iphone-was-still-a-hot-new-thing.md

When the iPhone Was Still a Hot New Thing


On September 29, 2008, I was knee-deep in a project that felt as mundane as it was important. Back then, my team and I were building a web app for a client who wanted to manage their content across multiple sites. It wasn’t glamorous, but it was practical. We were working with Django, which had just hit version 1.0, and we were excited about the new possibilities. The iPhone SDK had been out for less than two months, and I remember being intrigued by its potential without fully grasping how big of a deal it would be.

One day, as I was debugging some issues in our Django app, my boss walked into my office. “Hey, Brandon,” he said with a hint of urgency, “we’ve got an issue on the production site.” I rolled my eyes, knowing this was going to be another late night—again. The client had reported that their content wasn’t updating correctly, and we needed to figure out why.

I started by reviewing the code changes we’d made recently, but nothing seemed obvious. Then I remembered something from back in 2007: we were using Celery for asynchronous tasks, which was still pretty new at the time. It might be worth looking into whether that was causing a problem. I fired up my debugger and walked through the task execution, tracing every step.

It turned out to be a classic case of a race condition in our Celery workers. We had inadvertently introduced a delay in updating content, which led to some stale data being pushed out. Once we fixed it, everything worked smoothly. It was a relief, but also frustrating because this kind of issue could have been avoided with better testing practices.

After the fix went live, I couldn’t help but think about how different things would be if we were using modern tools like Docker or Kubernetes. At that point, they were still in their infancy and not widely adopted outside of specific use cases. But even without them, our app was running on AWS EC2 and S3, which had become the go-to cloud services for many teams.

As I logged off for the night, I couldn’t shake the feeling that we were at an interesting crossroads. GitHub was only a few months old, but it was already starting to change how developers approached version control. And now with Google Chrome launching, we were about to see a major shift in web browser technology. It made me wonder what other changes were around the corner.

The economic crash that was starting to hit tech hiring had a different effect on our team. While some of us started looking for new opportunities, others stuck it out and focused on improving our skills and processes. We debated whether we should switch from Scrum to Kanban, but ultimately decided to stick with Scrum because the transition seemed too disruptive at that point.

Looking back, 2008 was a year full of changes and challenges. The tech landscape was evolving rapidly, and it felt like every day brought something new. But amidst all the excitement, there were still mundane tasks that needed attention, like fixing a race condition in Celery. It’s those small details that often make or break a project, and they’re what keep us grounded.

That night as I turned off my computer, I couldn’t help but think about how far we had come and how much further we would go. The iPhone was just the beginning of a revolution in mobile computing, and who knew where it would take us?