Rabid Logo

More about Josh McArthur

Josh feels lucky to be involved in an industry where he can constantly apply his enthusiasm for learning new things. Coming from a previous role heading up a multidisciplinary development team working in an Agile environment using Scrum, he now focuses on development of web applications, hybrid and native Android applications. With experience in multi-server rollout and management, command of multiple server-side programming languages (specializing in Ruby on Rails), native development practises and development, and client-side frameworks and tools, he contributes a wide variety of knowledge and experience to any project in which he is involved.

When he's not coding, Josh enjoys exploring New Zealand - the more remote the better!

Posts by Josh McArthur

Logging into RefineryCMS with an existing Devise user

For simple content management using Ruby on Rails, RefineryCMS is a great option - it’s an actively-maintained project with support for plugins (via Rails engines which lots of Rabid staff are already familiar with), and a reasonably easy to understand codebase. When we are called upon to add CMS features to an existing Rails application though, we usually already have some kind of authentication system in place. This blog post outlines how we configure Refinery...

Read more

AWS Presigned Posts

When designing a JSON API that needs to deal with uploaded files, there’s a few options, but all of them have a degree of compromise. At the end of the day, a file uploaded via HTTP must be provided as a form-encoded name-value set, and this conflicts with how most JSON APIs work. At Rabid, we had a need to support just such an API. With the help of the AWS S3 SDK, we found...

Read more

Managing multiple Chef repositories

Knifing the Chef

A sidenote: I’ve used the terms ‘Chef’ and ‘Knife’ here fairly interchangably here, because on a workstation they kind of are. Chef is the actual framework where you store your configurations, data, etc., and Knife is the tool you use to actually interact with Chef. If you’re a Berkshelf user, you can add berks to the list of interchangable terms - Berkshelf will go ahead and use the same configuration as Knife will when you...

Read more

Multistep form validations with Rails and Wicked

A wizard from a wizard

Multistep forms are the bane of the developer’s existence. No matter how you cut it, the fact that multiple request/response cycles are required to create a single resource goes against the grain of a whole bunch of acronyms representing fairly popular patterns and specifications (e.g. HTTP). Despite that, they’re a pretty well established usability pattern when you just have a tonne of information to collect and not much space to do it in, so it’s...

Read more