A while back at work, we noticed a periodic issue where remote jobs just weren’t being run. That was being caused by the fact that the jobs weren’t actually being sent to the remote AWS instances that were meant to be running said jobs. Just why the jobs weren’t being sent out was a mystery, but a simple bouncing of either the remote servers or the main application itself seemed to get things moving again. In the meantime, we were off on a hunt for just why these jobs were no longer getting dispatched.

I don’t really have a lot for this post – between the limited uses I have for the Facebook and the somewhat surprisingly non-breaking release, there’s not a lot for me to note with this update. The only issues of note I saw had to do with graph API calls for custom audiences. Continue reading »

If you’ve worked long enough, you’ve hit on something that involves multiple people. At that point, the common line is to “get all the stakeholders” together so everyone’s on the same page and actually working together. It’s a good philosophy, that works when you’re getting just the people involved in something together – and nobody else. The problem is that that’s rarely how these situations play out. Continue reading »

About a month ago, Bronto released single-send API aggregation for deliveries. Full disclosure – I work for Bronto, but on the apps team, not the main product (by the way, buy Socialite), and I certainly don’t speak for them – everything here is my personal opinion and observations. This was a good change that improved the performance and efficiency of what was 1 of the more expensive API operations. That’s fantastic, but it also impacts the API in ways that Bronto developers are going to need to be aware of.Continue reading »

While working on an app with my current job, I wound up touching some code that didn’t have any unit tests associated with it. Since we’re a small team (butgrowing), any automation in testing really helps (not to mention just being a good thing to do). The issue was the code was all in a request handler for a Netty server, which meant I needed a way of either running a Netty server during the Maven build process, or I needed to simulate 1 via some type of mocking library. Ultimately, I settled on the latter. Here’s how I did, and the things I learned along the way.

TechCrunch had 2articles last month on “Secretly terrible engineers.” Reading the articles makes it sound like there’s a serious problem with how we interview software engineers. Personally, I just don’t see it. Software engineers are like every other profession, the people in it range from terrible to amazing, and the which engineer is which is hardly a secret. Likewise, having just gone through the interview process within the past year, I haven’t really encountered the issues Danny Crichton described. Granted, I wouldn’t interview anywhere near Silicon Valley, so my geography could be affecting what I observed, or I could just be absurdly lucky, but somehow I doubt it.Continue reading »

Facebook released version 2.3 of their Graph API 1 week ago, on March 25. Earlier this week, after encountering errors claiming I was using a deprecated version of the API (a bug in Facebook that I’m pretty sure is long since fixed), I tried switching to the latest API version to see if that solved the problem. It did, but exposed a couple of things missing from their changelog, because what’s Facebook development without incomplete documentation?

In 1 of my posts about social networks, I harped on the idea of the social network itself being an open platform, with apps running on that platform. What I should have pointed out is that email has been operating as apps on a platform, and they’re a perfect example of what I was talking about. Continue reading »

Pretty much everybody in the developed world (and most of the developing world) interacts with Facebook as an application. Not many people have to actually deal with Facebook from an API level. I’ve spent a few months writing some code that tries to perform a few simple tasks on Facebook, and it’s been rough. Here’s a random collection of things I’ve learned, gotchas, and other points worth noting in the process. As a brief point of reference, most of my interaction with Facebook comes from the server-side code, written in Java, although I’ve played around with Facebook’s JavaScript SDK as well.

This post was originally going to be something marveling at how StackExchange only has 25 servers, but could probably run on 5 as well as wondering why nobody else seems to be able to do that, but the more I thought about that, the less convinced I was in that premise. With all the advances in cloud-provided servers, I’m less and less convinced about the need for people to run their own servers exclusively in a physical datacenter.