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 about 5 years ago

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

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

Asked by TomTom about 5 years ago

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

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 about 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!

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 about 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.

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 about 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.

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 about 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.

What's the longest coding bender you've ever been on?

Asked by Jay about 5 years ago

In college, I participated in several programming competitions that lasted all weekend. Our strategy was to open the question packets at midnight Friday (the first moment that was allowed), read the question, talk about a strategy for a little while, then get a good night's sleep and regroup Friday morning. The good night's sleep was key, since after that it was just catnaps until 6 PM Monday when the contest ended. So, call it not quite 80 hours.

Long hours during crunch time are the rule in this business, and mental stamina is vital, but being able to occasionally bust out 24+ hours isn't actually that useful. After being awake past a certain point, even if you're technically awake and theoretically working, you're not producing and in fact you're likely doing harm by introducing bugs that you wouldn't if you were alert. Much more valuable is the ability to work 12-16 hours in a day, get a few hours sleep, then come back the next day and do it again the next day, and the next.