Jamie Tanna's talks

Welcome to Jamie Tanna's talks site. Below you can find a list of my talks that I've done in the past, and where applicable, the slides.

You may also be interested in seeing a list of talks that I've previously given.

Quantifying your reliance on Open Source software

I've always been interested in the composition of Open Source and internal dependencies that my projects use, and after years of wanting some way to query the data, I went ahead and built it!

Having access to this data has allowed me and my team to get a view of what our most popular languages or frameworks are, which packages we didn't realise we so heavily rely on, determine how many dependencies are using end-of-life software, or just understand the way that internally-built libraries are used across the organisation.

This data has given my company's developers, leadership and the security team a better view of the landscape of our ever growing dependencies on Open Source, so we can appropriately upgrade, migrate, and support projects.

In this talk, you'll learn that it's straightforward to do this yourself with Free and Open Source Software, as well as looking at some examples of the data that you can get out of this tooling for your own purposes.

View more details about this talk. View slides.

Shipping services more quickly with design-first OpenAPI contracts

How using OpenAPI has led to being able to ship a new service more effectively, by removing the need to write scaffolding, and instead focus on the business logic.

View more details about this talk.

This talk could've been a blog post

In recent years, blogging and the personal website have been getting a resurgence. I see blogging as a critical skill for every engineer to make them more well-rounded and effective in their roles, which can be a force-multiplier for someone's career, regardless of how many people read the posts.

In this talk, you'll learn some tips and tricks to getting started, as well as how to silence the Imposter Syndrome telling you that "you don't have anything worth writing" or that "there are better people who can blog about that thing", because it's just not true!

Blogging also doesn't just benefit you, but it can help level up your team, and for companies that actively support and encourage engineers blogging about the work they do, it can be a great indication to prospective candidates of the great work you're doing.

View more details about this talk. View slides.

Write blog posts, not Open Source

Looking for a good way to give back to Open Source? Consider blogging about the project! Documenting in your own words, for your own specific usecases, alongside your unique point of view could be better than any first-class documentation you could add, as well as being a great skill to have.

View more details about this talk.

Overengineering Your Personal Website - How I Learn Things Best

I often want to test new things, but don't have many full on projects. If I want to test a full deployment pipeline, from local development to production, I need something to deploy. So I've made my personal website super complicated.

View more details about this talk. View slides.

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!

View more details about this talk. View slides.

The IndieWeb Movement: Owning Your Data and Being the Change You Want to See in the Web

We strive for Free and Open Source software in the world, on mobile, desktop and server. But what about the Web? The IndieWeb is all about taking control, owning your data, and scratching your itches through Open Source and Standards. We're working to take back the Web, and you can, too.

View more details about this talk. View slides.

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.

View more details about this talk.

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.

View more details about this talk.

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.

View more details about this talk.

An Introduction to Programming: Using Python to Create Interactive Programs

In the age where video games focus on graphics and fast-pased gameplay, it is sometimes nice to go back to basics. Learn Python programming by building your first text-based adventure game.

View more details about this talk.

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.

View more details about this talk. View slides.

Docker-IA

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

View more details about this talk.

Free + Open Source Goodness - Hacktoberfest @ HackSoc

A talk to HackSoc Nottingham about Free and Open Source Software and Hacktoberfest.

View more details about this talk. View slides.

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.

View more details about this talk.

Hacktoberfest 2019 @ TechNottingham

A talk to TechNottingham about Free and Open Source Software and Hacktoberfest.

View more details about this talk. View slides.

Infrastructure as Cake - Testing Your Configuration Management in the Kitchen, with Sprinkles and Love

Learn about how Configuration Management can be performed in a test-first manner (in these examples) using Chef, in a talk full of food puns. I'll discuss how investing time into the manner in which your application is deployed is almost as important as the software that is deployed.

View more details about this talk. View slides.

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!

View more details about this talk.

Kickstarting your Automated Build and Continuous Delivery platform with GitLab CI

In this workshop, I'll take you through the basics of GitLab's Continuous Integration platform, with a very simple web application. This will go through local development to production deployments in a controlled fashion, with automated builds through to deployment.

View more details about this talk.

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.

View more details about this talk.

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".

View more details about this talk.