Gilles of all trades
Personal journey across software development, web trends, photography and life.

Apr
26

So it seems like a lot of people are discovering and joining twitter right now, which is enjoying a massive growth rate since January. I actually joined twitter on March 9th 2007 and left on May 16th 2008. I had been following what the company was doing since November 2006, so I watched their evolution for a while before diving in.

Twitter can be used for many different things, and I was actually using it for 3 different types of usage. First, to follow a few interesting people, which seems to be the most common usage. Secondly, I used their API to send myself automatic notifications in regards to websites I was running. Basically I had a special account sending DMs to my actual account to notify me via SMS of noteworthy information about a website I’d created. I’d receive an SMS for every sale, as well as one when the website went down for any reason. And lastly I used it to follow topics that I was interested in via IM. You could use twitter over IM at the time and follow specific words (no hashtags, just any word) twitter-wide.

What I enjoyed most was the ability to receive updates by SMS and automatically receive them on IM (GTalk, for that matter) when I was online. Somehow the team behind twitter managed to kill both features around the same time a year ago. SMS updates still haven’t returned in the countries where I’ve lived since then. IM hasn’t come back and won’t. What I liked about Twitter was precisely the ability to use it over SMS and IM. A web-only experience sucked for what I was using it for and that’s the main reason why I shut down my account.

Twitter presumably killed both features because they were too expensive to run, but I believe they did so because they have a long track record of bad decision-making that led to killing great features. Instead of contracting an SMS aggregator that could get them cheap bulk SMS rates in several countries, they sent all their international (non-US) SMS from the UK, paying a premium for anyone receiving SMS from outside of the UK. No wonder why it was costing them a lot of money to the point that they had to shut it down… I know from first-hand accounts that they were offered much better rates by bulk SMS companies, but simply declined.

On the engineering side, the twitter team has a serious case of the “shiny new tech” syndrome. They just keep using new technologies that haven’t proved themselves to work at the scales twitter is dealing with yet. First RoR, then Scala. I’m sure that if this year a new programming language becomes trendy, you’ll see twitter using it. This is a recipe for disaster and one of the reasons why twitter is having so many technical problems. Never mind the fact that telcos have been solving the same problems as twitter for years using proved techs like Erlang. I guess Erlang isn’t cool enough for the twitter folks, since it’s been used to develop scalable messaging systems for 22 years.

Now these are the reasons why I left twitter at the time (the core features I was using were shut down and the feeling that their team was making really bad decisions). But even if twitter somehow hired more competent people – or replaced whoever is in charge of what tech they base their infrastructure on – and brought back the features I enjoyed (IM and SMS) I wouldn’t reopen an account. Because of Facebook.

Since I left twitter, 90% of the people I know or have been to school with have joined Facebook. There is absolutely no point whatsoever in following the same people on twitter. I believe that Facebook does a better job at keeping a good signal vs noise ratio. I can ignore people who post constants updates about their cat’s latest poop without them knowing it. Thus, they don’t feel bad that I don’t want to hear about their pet. On Twitter that same person would know that I don’t follow him/her, which makes it socially awkward. That doesn’t mean I don’t want that person in my social network, I just think that their updates are not worthy of my daily attention. And I think everybody enjoys a better day if they don’t know that.

Aside from my personal contacts, I have a Facebook page for inspi.re. 300 people are fans of it and receive its updates (that is, if they don’t ignore them). The features are so much more compelling with a Facebook page compared to a twitter account when it comes to promoting a brand. I can post videos, images, events and more without forcing people to access them through the extra step that short URLs create.

Facebook still has some progress to do. For example they should definitely allow to block all third-party applications from appearing in the news feed to reduce the annoying noise these can create. They can probably improve the pages further. But Facebook has the most important strategic advantage compared to twitter, which is that they’ve already figured out how to make a decent amount of money. Twitter, on the other hand, while toying with shiny new techs that make their website so unreliable are throwing investment dollars out of the window and have yet to make a dime. The hype they’re suddenly getting is only going to make these expenses worse.

If Google is Twitter’s model in terms of success and not Facebook (get a lot of funding, grow and then figure out how to make money), they are very far from their target on many aspects. First of all, Google excelled from a technical point of view and I remember how reliable it was already in 1999. 3 years after launching, twitter is still very unreliable. Something people tend to forget about Google’s history is that they received their first funding round in June 2000. They launched Adwords in October the same year. So by the time they secured their funding, they probably had a good idea about how they were going to make money. They just didn’t waste money in infrastructure for years like the popular myth of how it’s the way to go for startups. Twitter secured its first round of funding in July 2007 and has yet to launch anything that generates income.

Apr
17

So I’ve been working hard on inspi.re for a few months and it now has thousands of active users. I’m working every day to make the website more scalable and ready for growth. This recruiting video from Facebook (see below) I’ve stumbled upon yesterday presents an interesting fact. Their registered user to engineering staff member ratio is 1 million to 1. That means 1 million users for every developer.

Some of that feat is due to the combined powers of a couple of hundred bright people, but I wouldn’t be surprised if these engineers would be able to handle a 1 million+ active users website on their own. That makes me very optimistic about being able to keep working alone on inspi.re for a long time.

Back to my own situation, knowing that I’m a one-man band I always try to make the website reliable enough that I don’t have to wake up in the middle of the night to the sound of an SMS alarm, having to fix something. Especially now that the website has paying premium members, I just can’t afford to let them down. As a result the Pingdom stats are pretty damn good, particularly considering that the downtime in March was due to hardware failure on the server. Despite this success, I know that the image of being on my own is working against me, particularly when dealing with peers or business partners. However I see it as a big advantage when working on a web service. And it’s not like there aren’t any successful one-man bands in the world of web services. Here’s my attempt to see why one person could do better than a team of 10-15 people when working on a project like inspi.re (I’m just expressing my personal opinion). By being alone I benefit from the following advantages:

- No team members with an agenda to use tech X or Y. Everyone has their favorite language or tool and often times this favoritism will result in unnecessary heterogeneous technology stacks. It also means that some members of the team don’t understand or fully master some parts of the system (cf. next point).

- No team member lagging behind on a particular skill. I think that it doesn’t matter efficiency-wise if code is written by different people with different styles, as long as they master the tools. I can count with one hand the number of fellow developers I’ve worked with whose code I could instantly understand without the need for comments or documentation. They had a very different style than mine, but they were just very good at what they do, which makes all the difference in the world. I think that having engineers who have knowledge below that threshold on the technologies of a particular project can be really damaging and slow everything down. I’m not immune to writing sub-par code myself, but I like to believe that it rarely happens using tools and languages I know like the back of my hand. This is why the vast majority of the tools I’ve used to develop inspi.re are technologies I’ve worked with for years. I don’t want to be the team member who writes code without knowing the ins and outs of the tools used.

- No communication problems. How many times have I implemented something I was told to only to realize later that there was a misunderstanding about the specs? This never happens when you’re alone. In fact the complete lack of any kind of team communication is a gigantic time-saver.

- No endless meetings. That is one of my favorite perks about working on my own. Meetings can be useful but are generally poorly managed in this industry. I’ve often walked out of meetings more confused about what I was supposed to do than when I walked in. In my opinion a poor meeting with no objective is not worth the time it takes away from the actual work to be done.

- Mobility. This offers tremendous freedom. I can move (and have moved) to a different country without disrupting my business.

– Low overheads. Without an office or paychecks to issue, almost all the income that the website generates can be invested back into the project. Obviously I wouldn’t be able to build something like Facebook on my own, some projects are bound to be too big for one person to handle, but part of the reason why I decided to go forward with creating inspi.re was that I knew I could handle it alone for a long time. And now I’m curious to see if I can get to Facebook’s user to developer ratio before I have to hire someone to work with me.

Nov
19

The website I’m working on at the moment, inspi.re, is not meant to be accessible by blind users or people who browse the web with a screen reader. It might sound like a harsh statement to dismiss the blind web audience, but the core idea of the website is to compete by rating each other’s visual artworks. My take on this matter is that if you’re using a screen reader you won’t see the images, so what’s the point of using that particular website at all if you can’t see what it’s all about, i.e. the artwork?

The “good” news as a web developer is that I don’t have to feel guilty about making javascript support mandatory (which can be problematic with screen reading software the blind use to browse the web).

Being blind is one thing, but what about being colorblind? It’s a very widespread condition (according to this, 1.3% of the US population is colorblind) and as such should be taken into account for any public-facing website. How can you check that a colorblind person can browse your website properly and without any confusion? Aside from statements like “use high-contrast text” or “rely on shapes rather than color to differentiate icons”, it would be quite handy to be able to test one’s website using a colorblindness simulator.

There are websites that simulate colorblindness by taking screenshots of your website and applying filters to it. That doesn’t sound particularly interesting, as the same could be achieved with Photoshop. What I would really like is a Firefox plugin that could allow to browse the whole web in black-and-white (which is an actual extreme colorblindness condition) and even reduce the amount of contrast. Such a plugin doesn’t seem to exist, though. I won’t complain, if I wanted it so bad, I could make it myself.

I’ve discovered another Firefox plugin that solves the problem in a more scientific way than just eyeballing a black-and-white version of a website. It’s based on standard tests that tell you if the colors you’re using for your text and its background have enough contrast. It doesn’t solve the problem of icons and visual cues that could look all the same to a colorblind person, but fixing text on your website is already half the battle. Use it and abuse it, it’s called Colour Contrast Analyzer.

I know how ironic it is, but I’ve realized that the theme I use on the blog you’re reading right now actually does very poor on that particular test! However its limited readership makes it less of a priority to get fixed. Inspi.re, on the other hand, is meant for a broad audience and has already been fixed to be colorblind-friendly.