ryanbigg

Rough Edges

Our job as software developers is to make functional software. A user should be able to use our software to accomplish tasks that might otherwise take a long time if they were doing it without computers. This has a wide-and-varied range, of course. But the main thing is that we need to make software that works. If we didn't do that, we would find ourselves out of a job very quickly. However, functional software shouldn't just be the...

ryanbigg

RubyConf Indonesia Keynote - Transcript

This post (and talk) is an updated version of my 2018 "Hiring Juniors" talk at RubyConf AU. This version of the talk was given at RubyConf Indonesia 2019 as the closing keynote. You can view the slides for this talk on Speakerdeck Intro Who's hiring right now? And who's finding it easy to hire developers at the moment? If you said it was easy to hire developers at the moment, you're either very lucky or lying. I work at a...

ryanbigg

The 2018 MacBook Pro Keyboard Drives Me Crazy

I recently upgraded from a 2015 MacBook Pro to a 2018 MacBook Pro. And by "recently", I mean back at the start of June. I wanted a new MacBook Pro because of the faster performance that a new computer would give me. Work (Culture Amp) was also upgrading their fleet of Macs and I was one of the lucky people to get a new one. So I've been using this computer as a work computer for almost 3 months now and, my god, the keyboard...

ryanbigg

Junior Engineering Program: Resources

This post is part of a series of posts about the first cohort of the Culture Amp Junior Engineering Program (JEP). You can read the first two posts here: Junior Engineering Program: Launch Junior Engineering Program: Onboarding In the last post I covered the process of what we did in the weeks immediately following the juniors starting, but didn't talk too much about what we taught them during those or subsequent weeks. That is what...

ryanbigg

Web Directions Code Leaders: Hiring Juniors

Here are my raw speaker notes for my Web Directions Code Leaders talk, titled "Hiring Juniors". The video will be online later. The slides for this talk are available here on Speakerdeck Intro [slide] Hi, I'm Ryan. You know that part already. What you might not know is that I've been mentoring juniors on-and-off for close to a decade now and I've had varying rates of success. I've mentored juniors who have gone on to become...

ryanbigg

Making Tests Go Faster

At Culture Amp, we have a large Rails app that we’ve been building since 2011. This app has about 150k LOC and an extensive test suite that uses Rubocop, RSpec, Capybara, Cucumber and FactoryBot. We run these tests for the application on Buildkite and currently they take about 16 minutes to run end-to-end. This is 16 minutes that developers are waiting to get feedback on whether their build passed or failed. While this is not...

ryanbigg

How require loads a gem

In modern versions of Ruby, you can use the good old require method to load a gem. For instance, if you've got the gem activesupport installed, you can require everything inside of activesupport (including the kitchen sink) with this line: require 'active_support/all' You might've just tried to open up irb and run that line, and it might've worked for you... assuming you have activesupport actually installed. It works on my machine,...