Today was my first day at my new job, and it looks very promising. The company has some great ideas and there are many interesting projects coming up. The environment is refreshingly different from my last two companies, partially due to the entirely different space (mobile entertainment and applications), as well as the fact that I am not working on a shrink-wrap product per-se, but on the server-side infrastructure for mobile applications. This is the first company I have worked at that actually uses Linux workstations for development, which is another nice change. All of my previous companies used Windows workstations, although the resulting software was often deployed on Unix (or compatible with both Windows and Unix in case of the enterprise software companies I have worked at). This is also the closest I have come to Extreme Programming (XP). In fact, they consider themselves to use XP, even though (like many of the companies who I have interviewed with) only use select practices. For example, they don’t use Pair Programming, arguably the most unique but also most controversial of the XP practices. They do however have a highly iterative process, involve the whole team in planning each iteration, define and track features in form of stories, put a lot of emphasis on unit tests (even though they don’t use test-first development), generally try to keep things simple, encourage refactoring and collective code ownership, practice continuous integration, and maintain and check coding standards. For a company that is less than a year old, they are also very well organized. They have a nice Wiki-based intranet with many documents that help new developers get started, each developer maintains a blog, etc. Very nice indeed. :)