my experiences in the trenches

Best Practices for Designing RESTful APIs

When designing an API there are important decisions that have great impact on the way other applications will interact with the service.

Automatic Node.js Version Switching

When working on multiple Node.js projects it is important to configure your development environment to automatically switch to right node version for a particular project.

On Continuous Delivery

Continuous delivery is practice in software development in which development teams work in a way that allows companies to update their systems at any point in time or continuously through automated processes, the system’s code base is always deployable and tested.

Films and Documentaries Worth Watching

This is a curated list of films and documentaries related to the internet, programming and hacking.

Unit Testing: Mocks, Stubs and Spies

Mocks, Stubs, Spies, Dummies and Fakes are types of test doubles that will help you to accomplish the goal of isolation. There are several libraries that provide tools to easily create these objects in your tests.

Software Unit Testing

Testing a web application is critical to ensure the program does what is supposed to do and that new functionality and changes don't brake existing parts of the application. Well-tested applications are more easily extended.

In-Place Editing with contenteditable and AngularJS

In-place editing provides an easy way to let the user edit parts of a page without having to be redirected to an edit page. Instead, the user can just click around on a page an edit the elements he or she wishes to change – without reloading the page.

Node.js HTTPS and SSL Certificate for Development

HTTPS is the HTTP protocol over TLS/SSL and HTTPS is required to protect your data. It is the most popular network protocol for establishiing secure connections for exchanging documents on the internet. It is basically HTTP carried over a TCP socket, which has been secured using SSL. Transport Layer Security (TLS) and Secure Sockets Layer (SSL) are cryptographic protocols designed to provide communication security. In this post I'll show how to create a self-signed SSL certificate and set up an express 4.0 project that uses it for local development purposes.

Differences between TDD, ATDD and BDD

Main Differences Between TDD, ATDD and BDD in Software Testing.

Get Started with Command Line and Z Shell

To develop a web application tooling and workflow are very important. Taking the time to learn and master command line is not only highly recommended but it is required to make use of tools that will help you develop faster and gain more control of your workflow.