Create a local development server for Python apps

In this tutorial I’m going to show you how to make a local development server for your Python applications using Vagrant, VirtualBox, Salt and Python3.

Creating a local development server on your machine is crucial to coding quickly and efficiently. It’s faster, more portable, and you don’t have to rely on an internet connection for it to work. It’s also pretty easy to set up. I’ll show you how in this video…

Create a local WordPress dev box in minutes with Vagrant and Salt

In this tutorial I’m going to show you how to make a Vagrant box for a WordPress project so you can set up a local development environment quickly and easily. A local dev environment is great for speeding up the development process and improving collaboration with other developers.

For this tutorial you’ll need the template I’ve created on GitHub. I’ll also be using Vagrant with VirtualBox, Salt, Gulp and WordPress.

Git Flow like a Pro!

Git Flow is a new tool I’ve been using that’s been an amazing time saver for me, so I wanted to share it with you here. It’s an open-source GitHub project that some developer has kindly made for the developer community. The purpose of it is to make working with Git projects a lot more seamless. It also helps to standardise the workflow when you’re working in teams in commercial environments.

Whether you’re an entry level or seasoned developer, this is a great skill to learn.

AngularJS with Gulp Tutorial

In this video I’m going to show you how to make a Hello World app using AngularJS using Gulp to deploy and test locally. There are loads of tutorials explaining how to make a basic Hello World app but I find most of them don’t focus on the file structure or folders of the app and therefore aren’t helpful when it comes to building apps in a commercial environment. Hopefully this video will explain it a bit better.

In this tutorial I’m going to use Angular, Gulp and Browsersync and npm.

How to use Angular CLI and get Angular2 set up in SECONDS Tutorial

I’ve been teaching myself Angular2 and how to use the next version of the Angular framework. I think this software is going to be really popular in the foreseeable future and that most apps, whether mobile or desktop, will be hybrid apps rather than native. It’s just so much more efficient to build software suited to multiple platforms, but I’m sure native developers would argue you just can’t build a seamless user experience that way. Either way, we shall see what the future holds! In the meantime, I’ll be focused on learning this hybrid technology.

In this video I talk about the obstacles of getting started with Angular2 – as it’s quite a lot of work to set up compared to Angular1 – and how you can shortcut this process using Angular CLI (Beta version).

My Top 5 Linux Dev Tools for the Full-stack: Atom, Node JS, Vagrant, Virtualbox, and Oh my Zsh

Having recently switched from Windows to Linux, I thought it best to showcase the top Linux dev tools that I use day-to-day in my dev environment. Here’s a video demonstration of my set-up. If there’s anything you use that’s missing, let me know in the comments! I’d love to learn more about Linux.

switching from windows to linux

Switching from Windows to Linux

Four weeks ago I started working on a new project for a client.

The first task was to load up a Vagrant box to run their platform locally on my machine.

So I cloned the Git repo and ran ‘vagrant up’.

Immediately I was presented with errors… Tons of nasty, confusing errors.

It turns out that the Vagrant box was using the Ansible provisioner, which isn’t well supported on Windows.

I look for a solution, none of them are ideal.

I can either run the Ansible provisioner in a separate VM (in which case I practically need to re-write the Vagrant setup) or I can spend hours hacking away inside the ugly Windows Command Prompt window to do some black magic hackery and get Ansible working with Cygwin…

And I thought Vagrant was meant to make coding easier!

I ask around to see if anyone else has had the same issue. It turns out not a single member of the team is using Windows.

They all use either Linux or Mac OS (mostly Linux).

That’s when I decided it was time for me to make the switch away from Windows and give Linux a try.

Read more

My experience with Dell Support (Dell Hell 2.0)

As a software engineer, the most important tool you will ever need for your job is your computer.

In January 2015 I decided it was time to get a new laptop.

I was currently using an Acer Aspire V3-571 which lasted me a good year (which was impressive considering it only cost about £500) but eventually it started to slow down and became difficult to work with.

I decided it was time to invest in a professional grade laptop with good support. I wanted something that was lightweight, powerful and reliable.

I spent a considerable amount of time researching the different products on the market and finally landed on the Dell XPS 15. Here’s why:

Read more

Attitude vs Experience: What’s more important for developers?

When I was looking for my first software development job, I kept hearing the same thing: “you don’t have enough commercial experience for this role”…

I kept persisting and eventually I got a job at a startup, where I worked for two years.

When I decided to go freelance I was surprised that, after having two years experience as a developer (which in my eyes is a like a century in the fast-changing technology world), I was still hearing the same thing: “you don’t have enough experience for this role…”

But I kept on trying. I worked on my own projects. I published them online. I kept reading and learning new things…

After a few months I got my first freelance contract working with Python.
Read more

How to Build a WebSocket Multi-Client Chat using Ionic and Node.JS


I first started learning how to code at age 12 when I taught myself how to make basic Windows batch scripts. It wasn’t long after that when the easy-to-use GUI drawing feature of Visual Basic 6 had me hooked on programming for good.

I graduated onto making proper network connected applications shortly thereafter. I was obsessed with making client-server programs that could talk to each other over TCP. I spent many of my younger years hacking away at the VB6 WinSock API. First learning how to make one client talk to a server, then figuring out how to make the server handle multiple clients at once and so on…

More recently I was tasked with making a real-time scoreboard for a company I’m currently contracting for. It involved an AngularJS front-end with a WebSocket client and a Node.JS server that would accept connections and broadcast the latest scores from a text file.

To be honest, before taking on this challenge, my Node.JS/Angular experience was sparse at best. But I saw the challenge as an opportunity and quickly learned what I needed to get the job done.

I was amazed at how quickly you can make a multi-threaded network application using Node.JS and the standard JavaScript WebSocket library. In a few minutes you can do something that used to take hours to figure out.

I was so amazed I thought I would make a tutorial explaining how to create a multi threaded chat client and server using Ionic and Node.JS.

Read more