Jul 292017
 

I’ve noticed several new blog posts on journalism and its future over the last couple of months. Couple this with listening to This Week In Google regularly along with following Jeff Jarvis’s blog, and the question of what journalism is going to evolve into (and the journalism that makes it to several years from now will have changed dramatically from how they operate today) has been on my mind of late. The more I consider it, the less I think journalism’s ultimate destination will be recognizable as what we have available today.

Continue reading »

 Posted by at 1:15 PM
Jun 262017
 

Java 8 introduced a lot of cool features, 1 of the most useful of which was the stream() method. This nifty little method lets you treat an Iterable as a stream, enabling cool things like lambdas operating over a list. Related to stream() is parallelStream(). This lets you group your stream into smaller streams that are run in, you guessed it, parallel. Specifically, your data is processed in a thread pool the size of the number of cores on your machine, minus the one running your app. That’s a handy piece of information you’re going to want to keep in mind before you start throwing this nifty little call around in your code.  Continue reading »

 Posted by at 2:44 PM
May 242017
 

Not too long ago, my friend Warren wrote an article proposing some campaign finance reforms. This got me thinking about whether or not there’s a reliable to way of dealing with monetary donations to political candidates that both encourages integrity once a candidate reaches office, and can stand up to legal challenges. Personally, I think there is, but to do so we’re going to have to approach the situation from a different angle.

Continue reading »

 Posted by at 1:28 AM
Apr 302017
 

For a while, I worked for a manager that wore a lot of different hats on our team, including that of “product manager.” Sadly, that meant he was often really busy and thus hard to pin down to get a product answer from. He knew that this was an issue, and wanted to get a full-time product manager for our team. At the time, I was thrilled about the idea. Fast forward a few months, and a little reorganization later, and our team now has a dedicated product manager, and I’m regretting my earlier enthusiasm. There seems to be a disconnect between product people and developers, so for any product managers reading this, here’s a few tips to help improve your interactions with developers.

Continue reading »

 Posted by at 1:00 PM
Mar 272017
 

By now, a lot of us have read Susan Fowler’s tale of her year at Uber. It’s certainly not the first time Uber’s been accused of misconduct, and to be honest, the only thing that was surprising in Fowler’s post was just how institutionalized this behavior was, and just how hard so many different people at the company work to defend it. Fowler’s post describes a company that is being run wrong in just about every way imaginable, and it seems Uber’s most noteworthy success is not having been sued out of existence already.

Continue reading »

 Posted by at 12:16 AM
Feb 282017
 

The team I’m on at work currently has a remote developer. He’s very good, but he lives in another country, and is technically a contractor and not a full employee. That means there are restrictions on what he can and can’t have access to or do for us. These limits have started me wondering, at what point is a remote developer’s ability to contribute so limited that it limits their value to the organization as a whole?

Continue reading »

 Posted by at 11:59 PM
Feb 052017
 

Software development is all about making tradeoffs. Sometimes, we do stuff because it’s quicker and get things out of the door faster, not because it’s the best option long-term. Do software development long enough, and you’ll learn the term “technical debt” – which is formally defined on Wikipedia as “a concept in programming that reflects the extra development work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution”. A more informal, but probably just as accurate definition could also be “the price(s) you’re paying now to have shipped things earlier.” Here’s the thing, most of the time we do something that incurs technical debt, we know it then. It’d be nice if there’s a way for us to log the decisions we made, and the debt we incurred so we can factor it into planning and regular development work, instead of trying to pay it off when there’s no other alternative.

Continue reading »

 Posted by at 2:18 AM
Dec 012016
 

We all work with somebody who’s day job appears to be best described with phrase “has and attends meetings.” Think of any product or project managers (there’s a difference between the 2 I’m told, but I couldn’t tell you what that was) at your office. They’re always in meetings, and it’s not at all uncommon for them to insist that you join them. In fact, it seems like the more you work directly with these managers, the more time you spend in meetings. The thing I have a hard time understanding is, if all you’re doing is sitting around in meetings, then at what point are you doing anything valuable for your employer or their software? Continue reading »

 Posted by at 2:43 AM
Oct 312016
 

Recently, my friend Steven Hicks published blog post on complex software. Despite his claims early on in the post, what he’s describing is exactly a documentation problem. Nobody actually takes time to document how to install and configure these services and as a result you never really know how to get these things to ever work together. While it’s comforting to know that he believes complex products are perfectly viable, the issue isn’t that people aren’t making complex products, it’s that the usage guides for the products out there suck.

Continue reading »

 Posted by at 8:00 AM
Sep 302016
 

Recently, we had a Kinesis consumer back up due to a deployment problem. Sadly, this problem went on for 2 days without us noticing, so we were pretty backed up. Now in theory, we should have been able to catch back up to real-time data sometime later that calendar day. In reality, we fell 2 days behind and it took us 2 days to catch up. That’s not acceptable, and I wanted to document the list of things we tried and how well they worked and to document our process for looking for the bottleneck. Obviously, there’s tons of room for improvement in the code, but there’s also a lot of room for improvement in how we were doing things before, and probably a lot of room for in how we went about trying to fix the issue.

Continue reading »

 Posted by at 10:00 PM