781 reputation
2612
bio website philosopherdeveloper.com
location San Francisco, CA
age
visits member for 3 years, 9 months
seen May 15 at 16:12

Author of The Philosopher Developer (my blog), Lazy.js, Autodoc, and SafeYAML, among others.

GitHub: dtao
Twitter: @dan_tao
SoundCloud: dantao

I’m a software developer currently residing in San Francisco. I work at Google on the Ads Review team. Previously I worked at Cardpool, and before that ThoughtWorks (and before that, a real-time trading company in Philadelphia that no one’s ever heard of).

I studied philosophy at Duke University, then a couple of years later went to Carnegie Mellon Silicon Valley for a graduate degree in software engineering (hence the name of this blog). In between I lived with my wife in Namibia for a year through WorldTeach, an organization that places volunteer teachers in developing countries around the world.

One of the principles I believe in most strongly is that there’s really no place for arrogance in this world. Living in Silicon Valley, I can’t help but feel that most of us in this industry are encouraged to forget that. The culture here is one seemingly designed to inflate egos and reward self-importance. Having said that, I realize that I’m guilty of it from time to time as well. So let this serve as my perpetual apology for ever letting my head get too big, or acting like I know what I’m talking about.


Feb
3
comment What are the so-called “levels” of understanding multithreading?
That is indeed a nice model. I'm accepting JB King's answer just because I'm relatively certain he correctly identified the concept I was referring to (or anyway, the concept underlying that concept).
Feb
3
accepted What are the so-called “levels” of understanding multithreading?
Feb
3
comment What are the so-called “levels” of understanding multithreading?
Haha, I think so! What I must be remembering is someone referring to these stages and applying them to the topic of multithreading. Good call.
Feb
3
awarded  Scholar
Feb
3
accepted As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?
Feb
3
comment As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?
These were all good answers, but I think this one's my favorite.
Feb
3
asked What are the so-called “levels” of understanding multithreading?
Feb
3
awarded  Good Question
Feb
3
awarded  Nice Question
Feb
3
awarded  Commentator
Jan
27
comment Why do some programmers hate the UI part of the development?
Just a little additional info for those who might be interested: it is actually not 100% clear which hemisphere plays the bigger role in determining math ability.
Jan
1
comment As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?
Interesting—so the appeal is more about getting access to the .NET libraries. Do you happen to know if .NET offers a lot of convenient functionality, relevant to Android, that's more difficult to achieve with the Java Android APIs?
Jan
1
awarded  Supporter
Jan
1
awarded  Student
Jan
1
asked As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?
Sep
20
comment How do you name your private variables in C#?
@mathepic: When Will says "class variables" he means (private) instance fields. You seem to have interpreted what he said to mean static members; but that's not what he said.
Aug
18
comment How do you educate your teammates without seeming condescending or superior?
@Paul Sasik: Haha, I feel like we're dealing with the robot butler from this cartoon. Clearly some users do not like this question.
Aug
18
comment How do you educate your teammates without seeming condescending or superior?
Wow, very nice answer! Thanks for the links -- good stuff!
Aug
17
comment How do you educate your teammates without seeming condescending or superior?
@Paul Sasik: I just thought CW was for subjective topics where users upvote answers based on how much they like them as opposed to how useful they are. I guess it doesn't matter much to me whether it is or isn't; if the question does happen to get reopened, I'll gladly mark it CW. Incidentally, does anyone happen to know where the generally accepted definition of CW can be found? The FAQ doesn't really clarify this point for me.
Aug
17
comment How do you educate your teammates without seeming condescending or superior?
I find Chris's code to be generally well designed, if lazily implemented; that is his code, while highly readable/maintainable, is often very inefficient. Adam and Brian on the other hand tend to write clever, efficient code that's difficult to read and very tough to maintain.