About Me

My name is Lachlan Barclay and I've been a professional software developer for 19 years (7,271 days). I wrote and maintain the Retirement Income Simulator in my role as the lead software developer at Mercer Australia. I have worked for CSIRO, Telstra, Fosters, Sensis, Intrepid Travel, CBM, Defence, Crown Casino & HP. I love 한글 but I'm really bad at it.

I've written articles for oWasp, volunteered at Rhok, been the guitarist in Toehider and played guitar, bass and drums many times at church. I've written mobile apps, built an arduino MIDI foot pedal, released a few albums, been on TV, ascended nethack and got a Grand Master rank in tetris.

Talk summaries


How to be the best developer in the world

Do you know what it takes to become an awesome developer? Have you sat back and compiled a list of all the skills, techniques and abilities you need to be fantastic at your job? Often we downplay the difficulties of becoming a great software dev, but in reality, it's a huge combination of technical skills, people skills, business skills, and the ability to keep 17 cats in the air at any-one time.

After hiring a junior graduate who was fresh out of university, I started compiling a checklist of everything I wanted for him to learn. I was shocked to find just how long that list was, and surprised at how many of them I was particularly bad at! Let's discuss what makes a great developer, how to keep your eyes on the prize, and how to eventually become a Grand Master.



Monitoring all the things with Prometheus and Grafana

Can you see at a glance how much memory, CPU, disk & bandwidth your applications are using across your servers? What about your databases and cache servers.. or even air quality? Let’s discuss Prometheus and Grafana so you can catch problems before they happen, thus achieving monitoring nirvana.

Open source application Prometheus provides a way for you to view and set alerts on anything you could possibly imagine. By adding two lines to your dot net application you can easily start monitoring your memory usage, API response times, CPU utilization and thread count. Using Grafana you can establish a baseline and set up alerts that won’t become annoying! You’ll get insights into the day-to-day running of your application to see what is being run the most often and work out where you should be concentrating your efforts to improve performance.

Once that’s established we can start talking about writing your own custom exporter to setup monitors and alerts on literally anything you can measure. If it has a number, you can monitor it.



Porting your ASP.NET app from Framework to Core

Do you have a framework application that you want to move to dotnet core? Does it seem like a massive, difficult and error-prone undertaking? Let’s discuss techniques for porting your application, taking small steps at a time, to reduce risk and end up with all the new dotnet core goodness.

Moving your framework application to dotnet core doesn’t have to be a dangerous experiment. By slowly moving your application across, one class at a time, you can make life easy for yourself, your users and your application. In this talk we will discuss:

  • Migrating Entity Framework to EF Core
  • Utilising dotnet standard
  • Wrapping full-framework only libraries
  • Bundling JS + CSS
  • HtmlHelpers vs TagHelpers
  • Error handling
  • Session state
  • Caching
  • Antiforgery Tokens
  • Authorisation
  • SOAP
  • WebApi

Plus a myriad of techniques to make sure everything continues to work as before!



Introduction To Docker

With the launch of cross-platform DotNet Core, it's now possible for dotnet applications to be deployed to linux! But how can we do this easily and without worrying about environment setup and nasty dependency libraries?

Docker provides the ability for us to quickly deploy extremely small, "vm-like" application packages, named images. These can be started up in less than a second, unlike a traditional Virtual Machine. However wrapping your head around Docker can be a difficult and daunting task. Come and here Lachlan simply explain, and more importantly show, what Docker is and how it can simplify your deployments.



How to get things changed at your company

As the logical, consistent and reasonable (ahem...) lot that us software developers are, we often expect everything else to be the same. Sadly, the world is not like that. Developers often butt heads with "Company Inertia" - the ability for a company to change their processes and practices quickly. This can lead to huge frustration, anger, cynicism and even despondence when it comes to our every-day job.

However, these can be worked around! With a bit of basic psychology, understanding of human nature and a whole lot of patience, there are plenty of tools and tips we can use to get things improved for the better. Come and hear from Lachlan what he has learnt.



Zero downtime deploys

Do your deployments result in downtime for your users? Are updates to your app done on the weekend or late at night to avoid upsetting them? Zero downtime deployments mean that your users won't even notice that the system has been updated. This is the final piece of your automated-deploy nirvana. Come and hear from Lachlan how to achieve this.



Typescript in the real world

After porting all of a large application's Javascript code to Typescript, I was shocked to find just how much I'd been missing out in terms of general maintainability and productivity. Typescript provides the ability to add Types to javascript, so that code can be more easily written and refactored. Come and hear what I've discovered over the past 2 years of retrofitting typescript to a 5 year old application.