devops AWS DevOps for Dummies: Node.js, Elastic Beanstalk, PostgreSQL, & Travis. I've put together my first screencast demonstrating deployment of a Node.js app with a PostgreSQL backend to AWS using Elastic Beanstalk and Travis as a continuous integration server. I had a lot of fun putting it together, and owe many thanks to Kevin
web bundling Gulp basics. Gulp. Without understanding how it works, reading the file can make programmers perform its namesake. (Still, it's better than the equivalent for Grunt. Oh snap!) Gulp automates tasks. From minifying JavaScript to injecting vendor dependencies into your template index.html file, Gulp offers a
beginner's path Environment variables. Environment variables are essential in practically any web app. If you ever use an API where they give you unique credentials, you need them. If you want automation of any kind, you need them. If you want to be able to deploy your app
beginner's path Code coverage. Writing tests are useful, but on large projects it can be easy to lose track of what portions have been tested. That is where the concept of code coverage comes in: quantifying the how much of your code is actually used in tests. Tools
vulnerability Dealing with failure. Two weeks ago, I failed. It was not the light-weight kind of failure: the "oops, my bad, let's fix it, no big deal." This failure was not the difference between 70% complete and 95% complete. This failure was the kind that crippled
beginner's path My first open source contribution. I am now designated as a collaborator on an open source project! It's for DocToc, a npm package with a noticeable userbase: ~900 downloads from npm in the last month, and 200 stars on GitHub. This status upgrade happened because I submitted a feature
beginner's path First Chrome extension: searching Stack Overflow. I created my first Chrome extension! It makes it much easier to search Stack Overflow. All you do is type so into the omnibar, hit space, and then enter your search. The barrier to entry for making a Chrome extension was far, far lower
beginner's path Beginner's guide to testing with Mocha and Chai. Writing tests in Mocha/Chai can be intimidating to a junior developer. Here are a few steps I used to make that world less scary. For this post, we will focus on the bare minimum to get you testing quickly using the browser. Table
algorithms Visualizations of Data Structures and Algorithms - Part I Inspired by the capabilities of the D3 library, I have embarked on a project to visualize common data structures and algorithms. So far, I have created demonstrations for bubble sort and quicksort. This post will recount an interesting design challenge I encountered. Table of
beginner's path The art of mentoring. The first week of Hack Reactor has largely been review. (Actually, I expect this to be the case for the first few weeks.) I've taken the opportunity to mentor other students struggling with the material. Yesterday, I used half of my lunch time to
beginner's path Ghost setup: understanding servers, ports, and nginx. After choosing Ghost as my next blogging platform, I embarked on a bold adventure to set it up on my own server. Fortunately, my server was already up and running. Under the tutelage of the kind and exceedingly talented developer Anoakie, I bought a
beginner's path Jekyll v. Ghost: Creating a new blog and why I did it the "hard way." I've splintered off a new blog to capture my learnings, musings, and stories about software engineering and its neighboring topics. Here I will discuss why I set up a new blog and why I chose Ghost as the platform. Why a technical blog I
beginner's path My origin story: programming. We all have an origin story. Here's one of mine: how I became a programmer. Getting Started My first dabbling with computer programming began in middle school, as I passed the time in classes by programming a "guess what number I'm thinking of&
algorithms Trailblazing and path searching. Wrapping up my final assignment in CS106B, Programming Abstractions in C++. I've enjoyed this class immensely and has given me a much stronger working knowledge of programming. It's amazing what you can do when you know how to think about data! The last assignment
beginner's path Confounded by Huffman. This week, I am finishing up my "coursework" in Stanford's CS106B course. It covers programming abstractions in C++. I have two more assignments, plus I'll probably tackle some of the section homeworks for additional review. I am currently working on an Huffman
beginner's path Recursion is fascinating. I remember the first time I brushed up against the concept of recursion in a summer camp programming class in Visual Basic 6.0. (Yep, those were the good old days.) Most programmers speak of recursion with awe in their voice. The words "
beginner's path A sight of progress. In a class on searching, I learned the binary search. I first came across this method in 6th grade, playing a "guess what number I'm thinking of" game on my calculator. A game that I programmed. And suddenly I get flashbacks of rudimentary coding
beginner's path Serendipitous conversations and an awakening. It all began with an email from StartX, a startup accelerator for Stanford affiliates. Browsing their site, I was struck by the number of projects that involve some degree of programming -- even the ones that produce physical objects. Programming is a valuable skill