More psychology of shipping

Last week I talked a little about things I saw the leadership team do during the Xbox One launch. But there are two more stories I wanted to tell.



Interviews for senior developers

Since I recently moved away from Microsoft and Washington to join Ericsson in California I recently did a number of interviews. And it was once again proof that most companies do not know how to interview in my opinion.


Protecting your resource identifiers

In a lot of older web applications as well as newer RESTful services I've seen it fairly common to have identifiers such as user and order IDs just being an auto incremented primary key from the database. This approach has the problem of revealing your total number of users/orders in a certain time period. Information your competitors could use against you!


When to use Tuples in C#

I've seen people use the Tuple class in C# code and I've even done it myself once. And I didn't like it. I'm still struggling to see find a case where using a Tuple would actually be a good idea versus the alternatives.


Tail Recursion and C#

Tail recursion is a powerful optimization since it typically improves both execution time and memory usage for recursive calls. It can also be your enemy if you forget about it.


Logical task combinators

When I had to use Erlang for the very first time it was a brand new language and I was in collage. Back then Erlang did not have a logical not function so we had to define our own in order to make our code readable. At least given the knowledge me and my lab partner had at the time. So the other week I had a deja vu moment since I had a Task<bool> that I wanted to negate. At first it felt real weird and I ended up solving my problem in a different way. But then I started to think.


Comparing two null objects

Maybe it is my experience with databases but I have always thought that whenever you compare something with null it is always false. Obviously there are some exceptions.


Hashtable vs ConcurrentDictionary

Historically I've seen the Hashtable be favored over ConcurrentDictionary with the assumption that is was more efficient allowing for lock free reads. Well they both allow lock free reads so which one is really the better option?