My favorite tools
-
Redis
This is a key/value store that is so elegant and clean that it reminds me Apple's products. It's fast, it's simple to work with and it has some smart features like bitwise operations that enables a lot of creative and unorthodox solutions for various problems.
I'm not using it instead of a traditional database, I like to use it for things like Analytics data, Caching, Leaderboards and any other list based data.
It also has a Pub/Sub message system which is very helpful when you start to scaling your service and have different servers that need to be able to share in memory data and state.
The creator of Redis is Salvatore Sanfilippo, an Italian hacker, another reason for me to like it, after being part of the Italian technology circle during my years at BeeTV. -
Node.js
Maybe it's over hyped but I love it.
I never thought I could love a language that is script based. It has many annoying downsides, and is not fun to debug. Still, at the moment it's the friendliest and most powerful server side programming language for me.
Php is kind of disgusting and for some reason I don't like Ruby's syntax - It looks even more scripty to me than JavaScript.
The JavaScript syntax that is used in Node.js reminds a "real" programming language like....Java. Unlike Java, you don't have the headache of building, packaging and deploying. Node code is deployed in a heartbeat, usually using something like git.
The community around it is great and it has tons of open source modules that makes our life easier. -
Solr
Solr is a text search server based on Apache Lucene search engine.
It was love from first sight, and unlike others (e.g. cassandra) it never failed me down.
At BeeTV we used it for our tag based recommendation engine as well as for anything search related obviously.
Solr also has a great geospatial search which is perfect for any app using geolocation filters. -
Beanstalkd
Simple is the main theme in Beanstalkd. It's a simple Work Queue where you put messages and then pop them out using an army of workers who do the actual processing.
It's essential for so many use cases, especially when you have client apps that should never wait, and servers that are willing to be smart enough and do some work backstage. -
Objective-c
I'm not sure if it suits this list, but hey - that's how we roll...It's where we build our iOS & Mac apps so it should count.
It was kind of strange at first look, but now I have a special place in my heart for their weird square brackets syntax.
Xcode is not perfect but, like a family member, you don't have a choice but to love it.