17–19 October 2016: Conference & Tutorials
19–20 October 2016: Training
London, UK

Building amazing cross-platform command-line apps in Go

ashley mcnamara (Rackspace), Steve Francia (Google)
14:00–17:30 Wednesday, 19/10/2016
The new stuff
Location: Balmoral Level: Beginner
Average rating: *****
(5.00, 3 ratings)

Prerequisite knowledge

  • A basic knowledge of programming (in any language)

Materials or downloads needed in advance

  • A laptop with Go 1.5 or greater and the text editor of your choice installed (For people interested in a Go-aware editor, the IntelliJ IDE and the Go plugin work together really well on Windows, Mac, and Linux.)
    1. Install Go via brew (Mac), apt-get (Linux), or the MSI (Win) (instructions). (It’s best if you install Go prior to the Go plugin.)
    2. Install the community edition of IntelliJ.
    3. Install the Go plugin (instructions).
    4. For those partial to Vim, the vim-go plugin is excellent and is included in the spf13-vim distribtion.
    5. You'll also need Git installed to obtain some of the dependency packages.

What you'll learn

  • Understand the importance of CLI tools and the Go language


Once thought relics of a mouseless age, command-line interfaces (CLIs) are making a huge comeback in a new and evolved form. Go is an excellent platform for CLI development due to its raw power, easy syntax, and painless distribution. We can build much better applications then we are currently doing. So much work in recent years has gone into usability and design on the Web and mobile, but the command line is often forgotten—in spite of a dramatic rise of command-line programs being developed. Through awareness and better libraries, we can spark a movement into better interfaces.

Ashley McNamara and Steve Francia outline the the techniques, principles, and libraries you need to create user-friendly command-line interfaces and command suites before walking you through building your own app. Along the way, you’ll cover everything from how to design and build commands to working with and parsing flags, config files and remote config systems, and how to work with environment variables and 12-factor apps. By the end of the workshop, you’ll have a working knowledge of Go and your very own functioning CLI app.

Photo of ashley mcnamara

ashley mcnamara


Ashley McNamara is the director of technical communities at ObjectRocket by Rackspace, where she acts as a bridge between third-party developers and Rackspace, driving platform adoption through the developer community and driving change into products based on real-world customer/developer feedback. Ashley was a 2014 Hackbright engineering fellow. In her spare time, she’s a mentor at WeWork, General Assembly, AngelHack, and CapitalFactory and is on the board of multiple engineering groups including Redis Austin, Big Data Analytics Club, and Austin All Girl Hack Night. Ashley is passionate about helping more underrepresented individuals join and feel comfortable in tech and is often a resource for new developers trying to find their way.

Photo of Steve Francia

Steve Francia


Steve Francia is a Gopher at Google as well as an author, speaker, and developer. Steve is the creator of Hugo, Cobra, spf13-vim. Previously, he was an exec at Docker and MongoDB. Steve serves on the board of Drupal.

Comments on this page are now closed.


Alexey Vyskubov
19/10/2016 19:06 BST

Excellent workshop, which reaches hard-to-find balance in many areas:

- presents concepts specific for the language but does not overwhelm participants with too many details;

- contains exercises which have enough pre-created boilerplate to allow to concentrate on doing important parts, but not too much of boilerplate (or it will make the whole thing boring);

- is based on a very open-ended task, so it’s possible to continue studying topics covered in the workshop on one own’s time, but also has enough milestones to reach during the session and have a nice feeling of achievement :)

I have found the tutorial to me both fun and useful. Thanks to Ashley and Steve!