A Guide to Bash Best Practices, and Avoiding Pitfalls

Through this talk, I discuss how writing Bash scripts can be improved to avoid some common issues with gotchas that may not be so well known. By discussing these common issues, we can realise that these common automation scripts should be written in a slightly more powerful scripting language, with common tooling and testing frameworks.

A Quick-Start Guide to Using Vi(m) Effectively

If you ever need to log into a server over SSH to perform changes on the box, you will find that either Vi or Vim is installed. Having a grasp of the basics that Vi(m) provides can make your productivity increase, without having to remember too much.

Came for the Campus, Stayed for the Community

After falling in love with the gorgeous campus at the University of Nottingham, Jamie found he had to come to Nottingham. And when he discovered the vibrant, buzzing tech community, he found he had to stay. In this talk, Jamie will take you on his journey to coming to Nottingham, and the decisions that led to him staying. As part of that, Jamie will discuss how his decision to join Capital One's graduate scheme over a "regular role" elsewhere was a difficult one, and how he's found it since.


A Docker-based container infrastructure to build the Android Source Code for different Intel Architecture platforms.

Documenting Your APIs (with OpenAPI)

When you're building an API, you often how know you want it to work. You'll hopefully document it somewhere, but the format of that documentation will vary. In this talk, I'll walk you through the reasoning behind a human- and machine-readable format for your API documentation and the tooling that is built around the OpenAPI ecosystem. You'll learn how you can get kickstarted with documenting your existing APIs and create a stronger domain model for interactions with the API. I'll then show different methods to verify that your OpenAPI specifications actually match your implementation of your service, helping you catch a break in contract, with the end goal of being able to drive your API functionality through your contracts, rather than documenting the contract after implementation.

Growing momentum for apps on x86

Intel is slowly gaining a greater market share for Android, and boasts a number of features that make it a great platform to develop on. This talk details how to tweak your application build process to produce native apps to take advantage of the features on Intel Architecture platforms.

Intro to Git: Version Control for the Greater Good

Version control is an incredibly powerful tool, and Git is the most popular version control system. This talk / workshop aims to give the audience a grounding in the basics of Git, through to branching and where to store your code!

Powering up your personal development and brand with Blogumentation

Blogumentation is a term that I've coined around blogging as a form of documentation. Although started as a way to have a single place for little tips-and-tricks or common issues I was facing, it's become more widely known and used. Not only for helping myself remember facts, it's been a wealth of knowledge for my colleagues at Capital One and through my site's analytics, I can tell it's quite popular outside of the business, too. I'll take you through some of the interesting learnings I've picked up through my journey, and how it's helped me change my approach to communication and documentation, and more importantly, will share some tips for you to get started and start building your personal brand!

Test Driven Cookbooks: Baking Goodness into Your Provisioning

Learn how you can write fully testable provisioning code using Chef, giving you greater confidence in the servers you deploy your awesome applications to. In this example we'll create a cookbook from scratch, and go through the process of testing different code paths through unit and integration tests. The food puns hopefully won't leave a bad taste in your mouth as you learn some secret sauce.

Testing Your Tests: How confident are you that your Cucumber code works?

You're writing Cucumber tests in your language of choice, but until you actually run that code against i.e. your API, you won't know if the functionality is correct. We're big proponents of Behaviour Driven Development and Test Driven Development, but why doesn't that extend to our functional testing using Cucumber? A practice used at Capital One in a number of teams is writing tests for your tests - that is, writing unit + integration tests for your Cucumber steps to provide greater confidence our functional tests. Although you may find that you can spin through your Cucumber tests pretty quickly, it may be that you need to take a step back and think about the quality behind the "quality" in "quality engineering".