Skip to main content

Node, Heroku and the joy of coding


Over the winter break I was working on one of the little projects that I use to try out cutting edge technologies.  This time I really wanted to get my deeper with Node.js, Express, Request and Heroku.

I have an old website, www.nationalvip.com,  that was basically a shopping cart for nightclub reservations. My interest in nightclubs waned and I really didn’t pay much attention to it for a while. The site still got visitors but it was developed in PHP by extending Magento.  Old code base and complicated modules killed any desire to touch that code.  I decided that I am going to change the direction of the service and make it totally informational based on open web services that are available from FourSquare, Twitter and other social services.

I am not going to spend any time talking about how to create an app using Express, Node.js and Heroku.  There are plenty of blog posts that help you get started with those technologies. I will spend some time talking about the difference in how developing and modifying a project feels.

My background is mostly with C#, Java and C++. Given my “baggage” I found the following differences in development flow pretty remarkable:

#1 Calling REST API without wrappers
Node.js and Request library make calling REST services ridiculously easy.  I generally use an API Explorers like the one from FourSquare, Mashery and DocuSign and see what elements of the request or return I need to reference. There is no need to generate proxies and maintain them.  You can visually see and get exactly what you need.

#2 Deploying using Git
Git deployment to Heroku is a game changer.  In Java days I used to sweat how I am going to FTP to my servers, remember where on a particular linux distro I need to deposit my ROOT.war and then SSH into it to bounce the tomcat.  Now pushes are seamless.  All I need to do is git push heroku master.

#3 Ability to reuse open source CSS and JavaScript using EJS.
When creating my app the default was Jade, but I really wanted to be able to reuse CSS and Javascript so I went with EJS.  JavaScript libraries, JQuery templates and other components are all over the internet.  With Jade I would have to rewrite a lot of these examples, but with EJS I was able to implement a lot of elements by just copying and pasting.

In conclusion the ability to produce and maintain an app with these new technologies is not only fast but also very pleasant.  Less time is spent configuring, updating, debugging and translating.  More time is spent creating, experimenting, measuring and having fun.

Post a Comment

Popular posts from this blog

SDET / QA Engineer Interview Checklist

After interviewing and hiring hundreds of engineers over the past 12+  years I have come up with a few checklists.  I wanted to share one of those with you so you could conduct comprehensive interviews of QA Engineers for your team.

I use this checklist when I review incoming resumes and during the interview.  It keeps me from missing areas that ensure a good team and technology fit.  I hope you make good use of them.  If you think there are good questions or topics that I have missed - get in touch with me!


SDE/T or QA Engineer interview checklist from Mike Borozdin
If you like this checklist you might want to check out these posts:
Emotional Intelligence in Software Teams  and Good-bye manual tester, hello crowdsourcing!

Pull Requests and Code Reviews

Software development involves a great deal of collaboration.  One of the most basic blocks of collaboration on a software development team is a code review.  There have been many different ways of doing code reviews over time, some of this has been dictated by the tools available.  Git and online source collaboration tools created a set of best practices that are worthwhile of adopting on any team.

About a month ago I have looked at various articles about how to best create a Pull Request (PR) and do a code review and the attached presentation is the result of this research.  The presentation can help you guide your team and develop a set of collaboration practices that works for your particular situation.

It’s good to start out with why to seek a code review.  Having clarity about your intentions helps you guide the person helping you with code reviews and also to manage your expectations about you can get out of the code review.  The reasons for seeking a code review are generally …

Why you should take the software job in San Francisco (or not).

Silicon Valley is an iconic place for technology.  Many people say this is the place for the “best and the brightest.”. Apple, Google, Facebook, Salesforce, Twitter and other top companies draw a lot of talent form all over the world and the largest chunk of VC capital goes to companies in the Bay Area, so it seems like moving here is a no brainer!

The real situation is actually not that simple, I believe there are three scenarios where it makes sense, but in many cases living in the Bay yields disappointing results.  The cost of living, housing situation, homeless catastrophe make places like San Francisco a lot less appealing to a lot of people.  So in what situations does it make sense to move to SF?

Startup founder raising millions There are many places to be a startup founder, but if you are looking to raise capital the largest pool of VC money is in the Bay Area.  There is an established network, events and conferences which give founders an opportunity to pitch more people th…