The Internet, IP

Male, 37

I've worked at multiple Internet startups of different shapes, sizes and ambitions. Now I'm the CTO (Chief Technical Officer) of another small company with big dreams. I look nothing like the picture above.

If you copy and paste your homework question in here, I will answer with something that will, at best, get you an F on your project, and at worst, will get you kicked out of school. You have been warned.

SubscribeGet emails when new questions are answered. Ask Me Anything!Show Bio +


Ask me anything!

Submit Your Question

76 Questions


Last Answer on September 07, 2015

Best Rated

If you had a teenage kid right now, would you advise him or her to go into programming?

Asked by JBM almost 5 years ago

Given it was something they were interested in, absolutely! It's interesting and intellectually stimulating work that pays well.

I am a Computer Science major in college right now. What would you recommend I do now to help find a job and make money when I get out into the "real world?"

Asked by Jack almost 5 years ago

Fresh out of school, your main problem getting employed will be lack of a track record. This is a double-bind that catches a lot of new graduates: can't get a job without experience, can't get experience without a job. As a programmer, though, there's one excellent way to build a portfolio that other fields don't benefit from. I'm talking about open source software. Anyone can download it, anyone can read the source, anyone can modify it--and, thanks to Github, anyone can put it up online where anyone else can see it. If you interview with any halfway-conscious organization these days, at some point they are going to ask for your Github username, and they ask because they want to see what you have there. So what kind of software exactly should you be writing? Doesn't much matter. The common recommendation here is "scratch your own itch." That is, write a program that solves a problem you have. Once it's in reasonable shape, get it up on Github, write a little blog post about it, and iterate. Definitely make a point of writing and open-sourcing different types of programs too. Apart from showing versatility, you're at an ideal point in your career to explore all the different possibilities. Good luck and welcome to the occupation!

What's an appropriate hourly rate for a programmer in the US?

Asked by TomTom almost 5 years ago

Depends on the specialty. If I were freelancing right now, I'd be charging $125 an hour.

When a new site with a novel UE catches fire, do you as a programmer immediately go and learn the basics of how that UE is created?

Asked by UnPinterested almost 5 years ago

Personally I don't. While you have to be a generalist to work at a company this small, I'm much more interested in the "backend," meaning roughly the things that happen behind the scenes. A novel UX like Pinterest (and looking at their UI is a reminder that "novel" isn't the same as "good") doesn't capture my interest like it does that of some of my co-workers. Of course, this doesn't mean that I don't steal from other websites' design when I see something I do like.

Were Mark Zuckerberg and the developers who started Facebook true geniuses or did they just execute the right idea at the right time?

Asked by MMA83 almost 5 years ago

I've actually never used Facebook (though I love Twitter), so my answer may not be worth much here. However, I'll make an attempt based on what I do know. It's my understanding that Zuckerberg is indeed extremely intelligent and a highly skilled programmer. However, the common wisdom in this industry is that brilliance counts for much less than hard work, giving the market what it wants, and a lot more luck than anybody is comfortable talking about. I don't see anything that makes me think that Facebook is different in this regard.

Do you think people overestimate the difficulty of coding? Like, obviously it's not easy, but is it the rocket science non-programmers make it out to be?

Asked by Christophe almost 5 years ago

Probably! Not everybody is cut out to do this for a living but anyone of reasonable intelligence can learn to do at least a little programming. One good reason to do so is that it de-mystifies computers. There are plenty of them around, and they are here to stay, so you may as well know something about them. To a lot of people, a computer is a magic box filled with 0's and 1's that lets you look at Internets and occasionally sends your checking account number to a gentleman in Nigeria. To a programmer, a computer is a scientific box that operates according to very simple rules applied over and over and over again. Knowing a few of these rules will help you deal with these machines that make up so much of our environment these days.

Why are so many developers such bad communicators (never pick up a phone, ignore emails, don't alert client of delays, etc)?

Asked by Benjiboo almost 5 years ago

I was tempted to leave this unanswered--seems kind of fitting, doesn't it? Although I'm guessing that you ask because you're in a snit over a perceived slight from a developer, I'm going to treat the question seriously, since I have a few minutes to kill while my tests run. There's a stereotype that programmers work with computers because they have poor social skills, but get a bunch of us together and add beer and we'll be talking shop until the wee hours. The fact is, programming is one of those careers that's also a subculture, and it's a clannish subculture at that. As for the phone: programmers as a rule hate synchronous communication, which includes the phone and any kind of instant messaging. This is because to code you must concentrate, deeply and for an extended period of time. I've seen estimates that, after an interruption, it takes a programmer at _least_ 15 minutes to mentally return to where they were. A freelancer with in-demand skills (e.g. Rails or iPhone apps) can make over $100 an hour, so every time you interrupt a coder at work, you just set fire to $25. What's more, coding is lots of fun and listening to thoughts slowly trickle out of your head is boring. As for not alerting a client of delays, well, I can't really defend that. Absolutely a programmer should diligently alert their boss or client as soon as they realize that there are going to be delays. But programmers like being the bearer of bad news just as much as anyone else does (i.e. not a damned bit), and there's this temptation to think that if we just work _extra_ hard _right now_ we can pull off a miracle and deliver on time. So, in other words, programmers do that because we're human.