My Interview with Logan McDonald | Kickstarter Rails 5 Upgrade

by Brittany Martin in

It has been awhile since I've written here but don't interpret that as a lack of personal endeavors. Since my last post, I played in three official roller derby bouts, upgraded my work's Production Rails applications to Rails 5.1, attended (and rocked) AWS Re:Invent, organized Alexabridge Pittsburgh, resigned from Bloc as a mentor and completed Term 1 of Udacity's Artificial Intelligence nanodegree. Phew!


I also keep contributing to the 5 by 5 Ruby on Rails podcast. In the latest episode, I stepped into the host seat to interview Logan McDonald on Kickstarter's upgrade to Rails 5. I came across her excellent blog post in Ruby Newsletter detailing how they executed the upgrade so smoothly. Logan was an absolute delight to interview and she had thorough answers to questions such as:

  • Was it difficult to maintain writing new features while one team was focused on the upgrade? 
  • When you deployed Rails 5 to Production and had some errors, how close were you to rolling back?

  • With the technical side of the company on board with team #upgraderz, how involved was the rest of the company in the upgrade? Was it a celebration or did you just cross your fingers that no one noticed a major deployment? 

Take a listen here and, as always, please send me your feedback and suggestions of fabulous RoR community members to bring on to interview. Team #upgraderz for life. 

me.add_role :co_host_for_ror_podcast

by Brittany Martin in

Surprising virtually no one, I'm a huge fan of podcasts. I've considered starting my own but then an even better opportunity presented itself. I'm pleased to announce that I'm newest co-host to one of my favorite podcasts: the 5 by 5 Ruby on Rails podcast

During an episode, Kyle Daigle, the main host of the show, mentioned that he wanted to bring on more co-hosts so that the show could accelerate to a weekly format. I reached out to him on Twitter and we had a quick chat to see if I would round out the other two co-hosts: Joel Oliveira and Mike Coutermarsh

I recorded my first episode in April. After a bit of a hiatus, the podcast is back with my introduction as a co-host. Listen below to learn more about my background, the group affinity for Hamilton and why you should always opt for the oysters. I'll be recording with Kyle every 3 weeks with some surprises with my co-hosts ahead. 

If you have any topics or questions you would like me and/or my co-hosts to tackle in a future episode, please submit them here. Thanks for tuning in!

Ruby & Rails Community in Pittsburgh, PA

by Brittany Martin

Every week, I get an email from a junior developer requesting my thoughts on the Ruby and Rails scene in Pittsburgh, PA. As a working RoR developer/RoR mentor and a loud and proud Pittsburgher, I love to see Ruby and RoR being utilized by the community. 

With the exciting announcement of Railsconf landing in Pittsburgh in 2018, it was time to pour as much as I know about the Ruby and Rails community here into one place. 

Pittsburgh is still an enterprise programming language town. When I asked a local recruiter which languages he sees the most demand for, he quickly answered, ".NET, Java and C". It is difficult to be a junior developer in Pittsburgh but even more so if you are only comfortable with Ruby. I was fortunate that I had progressed to the intermediate level before I moved back. Ruby still has an imprint here, as you can see for the list below. 

Note: I'm absolutely sure I will miss something so please comment below or tweet at me (@BrittJMartin) with any edits you would like to make. 

Companies that Use Ruby

Companies that Use Ruby & Rails

Local Programs that Teach Ruby or Rails

Meetups for Ruby Developers

I hope you find this unofficial list helpful. Long live Ruby and Rails in Pittsburgh! I'll see you at Railsconf April 17th - 19th, 2018 (▼∀▼)

How to Add a Slack Notifier with Slack-Notifier and Sidekiq

by Brittany Martin in

Recently, my boss had the brilliant idea to route the request to a private Slack channel when our Ruby on Rails website processed a customer's contact form. It's ideal for spotting specific website issues and to stay tuned to our patrons interacting with our site.

I came across the excellent slack-notifier gem. I bundled in: 

gem "slack-notifier"
gem "json"

Time to add in a custom incoming webhook in Slack. Incoming Webhooks are a simple way to post messages from external sources into Slack. They make use of normal HTTP requests with a JSON payload that includes the message text and some options. Once you have the Slack URL, I added it to our Figaro application.yml as SLACK. 

Next step is to add an initializer for Slack in config/initializers/slack.rb.

require 'slack-notifier'


We're already proud Sidekiq users. Processing the Slack message was ideal for a background worker so let's build a SlackNotifierWorker. 

require 'json'

class SlackNotifierWorker
  include Sidekiq::Worker
  queue_name = "default"
  sidekiq_options queue: queue_name

  def perform(hash={})
    notification = {
        "username": "csibot",
        "icon_emoji": ":loudspeaker:",
        "fields": [
                "title": "Organization",
                "value": "#{hash['org']}"
                "title": "Path",
                "value": "#{hash['site_id']}"
                "title": "Category",
                "value": "#{hash['category']}"
                "title": "Notes",
                "value": "#{(hash['notes'])}"
    } notification


Remember to set the queue (default since it is not critical), emoji icon (important!) and to utilize Slack's nifty message formatter

Our last step is to trigger the SlackNotifierWorker during the flow of a user submitting a contact form. 

SlackNotifierWorker.perform_async(org: @org, notes: @notes, category: category_string, site_id:

That's everything. Special thanks to Steven Sloan and Mike Perham for making this so easy to implement.