Nic Jackson

Nic Jackson picture

Nic Jackson

developer advocate @ HashiCorp
Nic Jackson is a developer advocate working for HashiCorp, and the author of “Building Microservices in Go” a book which examines the best patterns and practices for building microservices with the Go programming language. In his spare time, Nic coaches and mentors at Coder Dojo, teaches at Women Who Go and GoBridge, speaks and evangelizes good coding practice, process, and technique.

Talks

2017 Creating an Internet connected autonomous drone with Go
45'
In this talk, we will investigate the architecture of building Selfi-Drone, an Internet-connected autonomous drone using the Go programming language. We will look at the software patterns involved and the rationale behind choosing them, things that worked and the things that did not. The talk will be a combination of code examples and live demonstration.
2017 Software Development, Past, Present, and Future
45'
In this talk, we will learn about the evolution of software development over the last 50 years and how it has led us to the patterns we use today. Understanding the past allows us to appreciate the present, and we will look at the approaches through each decade since the 1970s. We will take a quick look at how languages have evolved from assembler to flat procedural languages like C to attempts to model real world subjects with objects. Why rising complexity in software has driven us to look at the way we test our systems. How provisioning has changed from a manual install with floppy disks to modern infrastructure as code and why demand and the requirements for elasticity have driven this need. We will also take a quick look at some predictions for the future and the direction that the industry is heading. Takeaways: By the end of this talk, you will have a keen appreciation of the current patterns in modern software development and the history of their evolution including: Packages and package management, Modern security, Code level testing, Integration testing, Infrastructure as code, Running applications at scale, Designing for failure, Continuous deployment