ryanbigg

ROM + Dry Showcase: Part 3 - Testing

This is the 3rd part of a 4 part series. Part 1: Application + Database setup Part 2: Validations + Transactions In this 3rd part, we're going to look at how we can test the application that we've built so far. In particular, we'll test three classes: The contract -- to ensure it validates input correctly The repository -- to ensure we can insert data into our database correctly and that we could find data once it is inserted The...

ryanbigg

They fixed the keyboard

Consider this post a sequel to my The 2018 MacBook Pro Keyboard Drives Me Crazy (Aug '19) post from earlier in the year. In that post, I listed the following complaints about the 2018 MacBook Pro keyboard: duplicated "o's" that I've had to go back and fix, or missing ones -- guess how fun it is to write a book about a Toy Robot with this particular problem double spaces -- or no spaces a Command key that registers 9 out of...

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

Culture Amp Junior Engineering Program: Retrospective

This post is a short summary of the Culture Amp Junior Engineering Program (JEP) that I ran from November last year until June this year. If you're keen to apply for the 2nd cohort then you can do that here: Apply here for the Culture Amp Junior Engineering Program's second cohort This post is the first in a series of four blog posts which will go into detail about how the last JEP operated, with the aim of giving potential future...

ryanbigg

Joy of Elixir - Progress Update

I started writing Joy of Elixir near the end of July last year. I wrote a large amount of the book in a relatively short time and I've been quietly updating it (slowly) ever since. I took time away from Joy of Elixir to publish Exploding Rails (which is doing very well!) and then took a little writing break to "recover". Recently, I received an email from someone called Svetlana Rosemond. She said: Hello Ryan, I'm currently...

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

My thoughts on Hanami

(This was originally posted as a comment on Reddit) This blog post has been translated into Japanese, thanks to @hachi8833! I've been toying around with Hanami for a few weeks now and imo it feels better than Rails. If you want to see some code rather than text, here's my little example app I've been building with Hanami. Here are the top three things that I like about Hanami, in long form: Repository pattern instead of Active...