Technical interviews are actually good for you

Programmers, both new and experienced, have a hard time getting away from technical interviews: the “large-company” style of interview where you’re asked to work through an ambiguously-stated programming question with an interviewer who already knows a wide-range of solutions to the problem. There are pros and cons to this interview style; I personally don’t like it at all. However, preparing for technical interviews can teach you a a lot about yourself. I’d like to share my own findings, in case it helps a programmer with similar problems.
Read more

Online class: How the internet actually works

We use the internet every day to surf the web and send emails but it’s not obvious what’s going on behind the scenes. I’m teaching an online class aimed at demystifying the internet.

Feel free to register and/or share ( with anyone you know that might be interested. Thanks in advance and I hope to see you there!

Javascript: An Exploration of Prototypal Inheritance

Eureka! That’s the feeling I had when I finally saw how Object.create could help me in achieving the inheritance-oriented behavior I was after. I’d been reading lots about prototypal inheritance in JS and understood bits and pieces, but it finally started to click recently. Here are some thoughts and (intentionally simplified) explanations that will hopefully help you toward that eureka moment.
Read more

Large-scale JavaScript: A monolithic service layer

When I started architecting the initial JS apps for YouNow, I sought to build structures that could be used both by our Backbone.js applications and one-off scripts/projects. These structures grew quite quickly over time; they became monolithic. In this article, I’ll examine the motivations, pros, and cons of a backend api service layer and suggest/brainstorm alternative implementations.

Read more

Developers vs. Engineers

There is a clear behavioral difference between software developers and software engineers, though the terms are often, incorrectly interchanged. Through my own experience and observations, I hope to not only shed some light on the difference, but encourage developers (my target reader) to strive to become engineers. If you find this post helpful, feel free to tweet at me: @mrjoelkemp.

Read more

Learnings from Client-side and Server-side rendering in Backbone.js

In this article, I’ll talk about the high-level technologies and pros and cons to go from a fully client-side to server-side rendered application with a supplementary Backbone.js app on top. This article draws on about a year of experience using both techniques on production apps at YouNow.

Read more

OSX: Have both a static and dynamic IP address at the same time

Here’s how you can set up OSX to have a DHCP IP address and a Static IP address at the same time. Some tutorials on configuring a static IP will tell you to change your network interface to a manual configuration, but although that works, it prevented me from also using the internet. Plus, you’d have to remember to switch back to DHCP configuration. There’s an easier way.
Read more

Backbone.js: Better error visibility

Here’s a quick tip that should save you some hair and a few debugging hours when dealing with errors generated during Backbone.Events pub/sub.
Read more

A study guide for database theory normal forms

All of the jargon and confusingly said theories in textbooks and online resources are quite useless when you’re trying to learn database theory for the first time. Below is a really layperson-focused (almost mechanical) set of rules for when you’re trying to determine the normal form of a database table.
Read more


Read more