Skip to main content

Blog Posts

I write about software engineering technical articles around programming, best practises and trending tech stacks. Subscribe to my newsletter to make sure you don't miss anything.

A software engineer tells to a colleague in his team "Man, it is working on your machine, but why is it not working on mine?", then they both find out that one has Ubuntu 12.04 LTS with PHP 5.3 and the other software engineer on which the code is working is Ubuntu 14.04 with PHP 5.5 after some investigation. If you have ever faced this or similar problem its high time to switch to a portable and a reproducible virtual development environment shared among all team members. This is a context where Vagrant comes into play.


If you have stack that involves many applications like PHP, Nginx, PHP-Fpm, Mysql, Rabbit MQ, Redis etc then making sure your team (even a small one with 3-4 members) have the same version for all above software will surely be a pain you don't want to take care of.
This post is going to be developer's perspective on using Vagrant as a virtualized development environment with minimal mention and coverage of the devOps and system side of Vagrant.
Bootstrapping a tech start up with limited financial resources is always a difficult task in hand. You have to find the right balance between the cost and the benefit of the money spent. As a new entrepreneur if you could get some great software for the price of 0 that would really expedite the tech related company bootstrapping process.

Introduction

In this context lets discuss about some free software that will really help you get some amazing benefits. I would like to keep this post as programming language agnostic as possible. Subsequently, I believe though you don't need to pay for the software a good web host will be necessary that provides shell and software installation access (like Amazon AWS or Linode) to install the software mentioned later in this post.

This post is going to cover software/SAAS for Project Management , group chat and notification, source code collaboration with version control (git), deployment automation and error/log monitoring of the deployed application.
In the past 12 months the popularity of AngularJs has exploded, which clearly hints that applications are being built following the multi-tire architecture. A good back-end API with a front end consumer application surely makes a capable duo that can handle any requirements of the application. If you have a multi-tire architecture then you don't need to rebuild the back-end for serving data for other applications like a mobile application or any data requirement.

Popularity of Angular JS, source Google Trends
Writing testable code is a harder target to achieve than just writing tests for the code written. You cannot write comprehensive tests that covers many function each of 200 or more lines and classes that measure 1000s of lines of code (LOC). Writing testable code is always important if you want to be able to test/unit test your code and be confident that nothing will break.

Tests also help a lot when you re-factor some code or write new features. If all the tests are passing you are quite sure that nothing is breaking. Seeing all tests come out green is a very good sight for us software engineer.

More posts can be found in the archive.

Latest Posts

Side Projects

Read more on

Join the Newsletter

Receive exclusive content and links about software engineering and web development every month.

    We hate spam as much as you do. Unsubscribe at any time.