You are a senior software engineer and have just been designated the mentor of your team’s new hire. It’s your responsibility to bring this cadet up to speed on the large codebase that you helped architect, so that she can provide value on her own. As a first task, you’ve assigned her to fix a […]
I’d like to show you a way to obtain a computer science background that doesn’t involve enrolling in a university program. Maybe you’ve completed an introductory Java course, and now you’d like to pursue a software development position. Or maybe you already have some formal CS training, and you’d like to fill in a couple […]
Atomic Object Detroit recently assessed dozens of candidates to find a summer development intern, and we’re continually receiving applications for full-time developers. As I reflect on the candidates that I’ve assessed both here and at previous companies, I’m struck by how revealing each candidate’s first email correspondence is. Those who’ve left strong, positive first impressions […]
It’s one thing to develop and test a Windows application; it’s quite another to bundle it up into a nice executable that installs correctly on all the different Windows versions that you need to support. I’d like to guide you through the process that I wish I had when I was creating my first installer.
Protractor Page objects provide a helpful way to organize your end-to-end test code. While your actual tests take actions and make assertions about how your application should respond, page objects encapsulate the details of how to perform those actions on a page.
Vim macros let us transform code like no other editor. Here’s how they work: Pick a register to record into. (A Vim register is like a little slot where the macro data will be stored. We usually want to record into one of the named a-z lowercase letter registers.) Begin recording with the q command. […]
Git is a powerful tool that we love as developers. It’s also complicated. I consider the bare essentials of Git, the minimum set of features to be familiar with before we can be productive, to be all of this: local interaction: status, add, remove, commit, reset, checkout branch management: checkout, merge remote interaction: clone, fetch, […]
When our Backbone.js apps become complicated, we need to utilize Backbone’s EventAggregator. From the Marionette docs: “An event aggregator is an application level pub/sub mechanism that allows various pieces of an otherwise segmented and disconnected system to communicate with each other.” // Three ways of creating an event bus in backbone var marionetteVent = new […]
If you’re a developer shopping for a new MacBook, choosing a CPU can be confusing. Apple always gives you a handful of different CPUs options, all with different specs and prices, but it’s very difficult to understand how your development experience will be affected by this choice. You can put thought into the other options […]
How far should we take unit testing? Should every line of code be covered by a unit test? What about code that’s hard to test? Let’s look at the cost and value of unit testing in a couple of different situations. Tests We Can All Agree On It’s easy to see the value of unit […]