Make Yourself a Nice Workplace

Github for Windows and the Powershell Command Prompt for Git

I’ve recently started a new job as a Software Engineer at a local tech start up called Forward Thinker Developments. One of the nice things about this new role is that I have been given a reasonable amount of control over the workflow of the projects we are working on, all of which are pretty exciting! One of the things I’ve discovered whilst doing this is just how important it is to make yourself a nice environment to work in, much like Rob spoke about whilst teaching us in the first year.

As a Software Engineer your job is simply to design and develop software to a specification given to you by either a customer, or in this case, your boss. Whilst I cannot understate how important things like source control, coding standards and the set up of your development environment are making these things work for you isn’t actually part of your final product. This is why its important you get it done right first time — though there is of course scope to review and amend certain practices — and make it simple and elegant to use.

I’m a firm believer in beautiful, user friendly software. Some people in the Computer Science community will looks down on me for this but if I can avoid the use of a command line tool, I do.

This is for the simple reason that when I am working I like to be immersed, because this is how I do my best work. For me immersion is thinking purely about the code and the product I’m developing with no distractions, this means I don’t want to have to spend a few moments — even if its just a second or two — trying to remember the command to branch a git repository, for example. Why? Because that means I’ve lost my train of thought about the thing I’m actually trying to develop.

This is why rather than use Git Bash, I am using GitHub for windows, and I have to say I can see now downsides at all to its use. I have a pretty front end program for my source control, which makes it a pleasure rather than a chore to use but then if I need to do something particularly complicated I still have the option to open Powershell, the Windows Command Line or even our old friend Bash to do whatever I need to in the command line. Another, perhaps more important reason to use a GUI rather than a CLI for things such as source control is that you wan’t to make them as accessible as possible, the less “nasty” a program is to operate, the more likely your team members will use it frequently, and if you’re working on any sort of commercial project you really do want frequent commits to source control.

Whilst reading an article on Ars Technica which asks the question “Is it a good idea to impose uniform code format for all developers?”, I realized that having an automated code formatter might be a good idea. An automated code formatted can be used to ensure that all code is formatted in the same way before being commited to source control or before being uploaded to an FTP server — i.e. Make sure it conforms to your companes particularly coding conventions —  but the also ensure that code is downloaded to the develops machine in the format he likes.

So, for example, I love the Allman style indentation — in which curly braces for any function or control block are on the line after the declaration, like so:

public static void MethodName()
      //Content inside method is tabulated
      //Danny likes this style

Whereas some of my colleagues may prefer K&R style indentation, in which many of the curly braces are on the same line as function or control block declaration

public static void MethodName() {
      //Content inside method is tabulated
      //Danny doesn't like this style

This article on Smashing Magazine has some really cool online formatters which could do the job of making code styled the way you like it a lot easier.


Here’s the tl;dr, if you want to spend your time developing great software make sure you’re not spending a great deal of your time doing menial tasks when theres an easier way. Before I discovered code formatters I would spend a lot of time formatting things the way I like them, now I don’t. Before our team discovered Git for Windows, over git bash, we would spend longer typing commands and administrating our own self-hosted git repo, now we let the GitHub team deal with all of that and only crack out Git Bash on the rare occasion we wan’t to do something complex.


Tags: , , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s