Overall I enjoyed this conference more than last year. I am now 15 months along my journey into Rails/Ruby. I considered whether my enjoyment was because I understand a lot more rails and ruby, of course that is a part but not the only part, the people, the sessions and Chicago all made a contribution.

There were many amazing talks, good workshops and I met a lot of people. I thought all of the keynotes added value to my thought process. My favourite talks were from Sandi Metz, Sam livingston-Gray and Adam Cuppy.

I am adding all the resources I find to the bottom of this post, including photos I took of the job board.

You can find the keynotes here http://www.justin.tv/confreaks/videos and here is an amazing set of photos from railsconf https://www.flickr.com/photos/justingordon/sets/72157644405839722/

Be warned I will keep updating this page! Agile page production 😉

Prequel – The day before

Getting to Chicago I flew in from Vancouver, BC.

Guide and scholar

Last year I was a scholar so I was given the opportunity to attend for free RailsConf 2013 because I was a student and a newbie to rails. This year I wanted to help a scholar and be a guide. This started the night before the conference starts where you are matched with your Scholar and you get to know each other.

After we headed to Howells and Hood, couple blocks away it had over 100 beers on tap. Jeff Miller (from Enova, they are hiring) also bought us a couple rounds of drink and introduced us to Enova the company he works for in Chicago. The drink and debates were passionate, we talked about each others path to Rails, where juniors can get jobs, the things you should learn at the beginning of your career, tech interviews and who was employing juniors.

Day One – Tuesday

Breakfast, apparently the most important meal of the day. We found Yolks a good breakfast place which was located just a couple blocks away. It had a great menu. I ended up eating breakfast with a couple randoms and a team from (NextGear Capital). I was impressed in the diversity of this tech team and they are on a hiring spree.

DHH keynote

I enjoyed the talk, he was passionate, direct and funny. I am also a believer in free and open speech, though there are topics that challenge this belief such as hateful on sexist/racist/homophophic. This talk was none of this but it did challenge the “common way of thinking”. I wonder if he opened too many fronts at the same time?

“The TDD experiment has failed, it just makes us all feel guilty, but tests are important but they do not have to come first”

I have to say I am happy when I see tests! They are not as common as we would like to think. It makes it easier to understand, refactor and onboard new people. But DHH really was talking about the need to do it first and when done so could lead us down some architectural choices that are maybe to helpful for the overall plan. His analogy of guilt and diets in describing TDD was very good.

“We are software writers and only occasionally software engineers”

I like the analogy of being part software writer, it makes me consider more seriously the need to refactor your code. When I write emails, I often get the main points together and then keep editing and deleting. This comment made me reflect on not thinking of them as two separate “things”. As someone at the beginning of their software career this was a helpful analogy as at this time I have written a lot more English than Ruby.

I also wonder if it makes access for women easier? I read a good study – Breadth-Based Models of Women’s Underrepresentation in STEM Fields – An Integrative Commentary on Schmidt (2011) and Nye et al. (2012).

Relative strength of math and verbal abilities and interests drive science, technology, engineering, and math (STEM) career choices more than absolute math ability alone. Having one dominant aptitude (e.g., for mathematics) increases the likelihood of a strong self-concept in that domain and decreases the likelihood of equivocation about career choices in comparison with individuals with equivalent mathematical aptitude who have comparable strength in non-math areas. Males are more likely than females to have an asymmetrical cognitive profile of higher aptitude in math relative to verbal domains. Together, these two points suggest that the academic and career pursuits of high math ability males may be attributable to their narrower options among STEM fields, whereas females’ more symmetrical cognitive profile means their math and verbal interests compete in the formation of their ability self-concept and, hence, in their broader career choices.

My take away is we are in a competition, with other careers to encourage women to join us in software development. If we are open to new ways to think about ourselves, this may or may not help. Just a thought..

I wonder if this (the wider use of titles) is a good way to introduce different types of software builders into our community? After all with all these bootcamps, new types of people will join our ecology, what will they have to teach us and how do we support them?

I think we need different type of software builders on the team and having at least one computer engineer/scientist is an essential foundation. I should declare my undergrad was Computer Science. In my experience with teams, diversity is generally a good thing. Some of the best developers I have met do not have a background in Comp Sci degree, but instead have a Music degree. I also find teams with a mix in sex and culture are able to solve the bigger problems faster.

The better the readability/eloquence of our codebase will make on-boarding far easier for junior and senior alike. And if there are tests too, on-boarding becomes even easier! We need the artists and the scientists. After all the ruby/rails community will have to include a lot more people to have a healthly ecology.

Simplifying Code: Monster to Elegant in N<5 steps by Tute Costa (@tutec)

This was a good workshop and started really well, working through five of the refactor patters. I pair coded with my scholar. This was fun to help her understand more fully each of the steps. And in teaching you learn better ways to explain abstract concepts..

http://www.slideshare.net/tutec/simplifying-code-monster-to-elegant-in-n-5-steps

Lunch

The hotel is right on the river/canal it was good to get some fresh air. I learned that Chicago dyes its water in the canals to get the green colour.

Ruby Coding Dojo by Carlos Souza and David Rogers

Here I stole a hour of this workshop (workshops covered the time of several sessions) before I headed for the next session which I wanted to see. The thesis was that practice was essential for software builders, just like it is for sports people and musicians. That they spend more time practicing then actually doing. They use the Dojo as a way to practice their code. Not too different from Ruby Koans idea, but they showed it as pair programming. I like it 🙂

Concerns, Decorators, Presenters, Service Objects, Helpers, Help Me Decide! by Justin Gordon (@railsonmaui)

I think he needed more time for this talk, this would have been a good workshop. He gave a scenario and then a solution. This was very helpful. His notes are comprehensive and he has included all of his slides with a repro and a branch for each example.

https://github.com/justin808/fat-code-refactoring-techniques

Mutation Testing with Mutant by Erik Michaels-Ober ( @ sferik )

A good and clear talk. About the use of Mutant Gem which tests your tests

https://github.com/mbj/mutant

Keynote – Farrah Bostic

This was a funny talk about some of things we may have forgotten after a couple years as a developer. She believes that a customer-centric approach is essential to designing innovative products and services. I am paraphrasing some of her thoughts:

Professional obey the laws and amateurs break them

Be nice to one another, take the time to explain to other non-developers. Stay inclusive welcome people to your community. Do not become like the Java or PHP community.

Are we approaching a code inequality, where it is good for you to be a senior and me a novice? Is it a goal for me to keep you in a position as a novice

Structure inequality is a bad thing for our society. Inequality creates fear.

Technology is in a magical place. But are we talking about good magic or the dark arts? Or people who will be tolerate of us muggles and be nice to us and not scare the hell out of us and this “evil” technology. The question I have for you is whose side are you on? The Dark or the Light?

Your opportunity is to become customer centric coders.

Keep the good intentions and match with good behaviour, this is what attracted me to the rails/ruby community

No empty read me docs

If community/team matters to you will be surprised by this talk http://www.justin.tv/confreaks/b/522183251

Dinner discussions

As often happens a random group of hungry people got together at the end of the day to eat. Our group was a mix of sex, companies and levels. A number of the scholars(novices) asked why are there no junior roles advertised. Comments included:

One senior asserted that he felt other seniors were scared of loosing their “prize” position of being able to claim high wages and move jobs easily if they wanted to.

Another felt Seniors are lazy and do not want to take on extra “human” work load, of coaching a junior.

It started a passionate debate which was good to hear. We talked about GitHub and is it sexist? We of course we talked about DHHs talk.

Day two – Wednesday

Yehuda Katz keynote

Why we abstract and reduce complexity

We are not unique, we want the same things, we tackle the same problems

Software development is not a science

Laws are not good things

We build on abstractions and makes us better

Shared solution, we build progresss

It’s all about managing complexity

These tools allow you avoid complexity

Start at level 23 rather then 6

Area of experimentation (new levels) are where the debates are had and then it will become part of shared solution

The higher stack the less complex work

Rails has succeeded in building our stack out, it has reduced the complexity, it allows us to concentrate on the business

Deploying Rails is easier than it looks by Ben Dixon ( @ TalkingQuickly )

This was a good introduction to deployment of a Rails stack to a VPS. Ben has a book Reliably Deploying Rails Applications

His stack was:

NGinx – web server

Unicorn – app server – zero time downtime

PostgreSQL – database

monit – monitoring – its tiny

chef solo + knife(Server Provisioning)

capistrano 3(Deployment Automation) rake app

Reading Code Good by Saron Yitbarek (@saronyitbarek)

Form a reading club to regularly read ruby code. Her presentation had great visuals and also a way to spend up your learning of Ruby. Whilst her talk was aimed at novices and juniors. “Book Clubs” are a very good way to explore management/leadership and frankly any topic.

Panel Discussion: The Future of Rails Jobs by Obie Fernandez and Panel

A couple statements from the panel:

Employees are more interested in the team, and product over money

If you are junior apply to any level of post, smart people match on personality and the ability to learn

Average pay for intermediate 80,000 to 90,000 US

Fear of too many bad skill levels due to boot camps

Tricks that Rails didn’t tell you about by Carlos Antonio da Silva

I did not go but heard good things

https://speakerdeck.com/carlosantoniodasilva/tricks-that-rails-didnt-tell-you-about-at-railsconf-2014

How to be a Better Junior Developer by Katherine Wu (@kwugirl)

This had some interesting perspectives about the approach you should take with the rest of the team. How to use your skills as a non developer to support the developer team. But stay on target to become a developer.

Panel: Teaching the Next Great Developers by Noel Rappin

This looked at different perspectives of how we are currently educating the next generation of rails/ruby developers i.e. bootcamps. It covered the lack of developers.

If supply does not meet demand, demand will go elsewhere.

This comment stuck me with and a couple stories were told about funded Startups unable to recruit rails developers choosing different stacks to build their “stuff”. I have encountered this personally as Rails developers are too hard to find, a few companies have asked me would I consider learning Node.js. I will have to explore this further. Jeff Casimir @j3 had some great comments:

If someone asks you to code on a whiteboard, ask them how to do I run tests? If your company does not spend time bringing in junior/apprentice devs they are going to lose.

After there was much conversation of the Bootcamp phenomenon. A good number of the Scholars for this years conference had come from Bootcamps some with lengths of 2 months others 3 months. There were a good number of strong opinions of this phenomenon, I share a few of these here:

Some feel that bootcamps are producing a “novice” level of software developers, not yet junior

That some feel that these bootcamps reduce the quality of the rails community

That the bootcamps with a certain apprenticeship of least 3 months are the best

That some exaggerate their “employment” opportunities/success and it should be measured if the boot camper is still in their job 3, 6 and 12 months later.

That some bootcamps are filling up all the “junior” spots in companies leaving non-bootcamps juniors grasping for straws.

Some companies are cycling through 3 month apprenticeships

Some felt they could reduce the pay offings as they “flood” the market.

That the quality of bootcampers is very mixed

That bootcamps are bringing more women to our ecology

That with the standard tech interview most bootcampers fail due to lack of understanding of Algorithms, Data structures and use of Ruby.

That we build frameworks, to handle complexity, Rails should bring people in who should not need to be a computer scientist.

That they exist because the education institutes do not teach Rails/Rails, leaving the only option to learn with others being bootcamps. With startups and business driving the demand for rails as a fast prototype framework.

Some felt it was a good thing and whilst painful for the community, we will evolve/adapt and it will help the community step up in numbers and mature.

Evening

Chicago Diner – Great vegan food. No I am not a vegan, but this was the best meal I had this week. You should go! Then we hunted down an Ice cream shop, Margies felt like going back to 1921, BIG helpings

Evening discussions

We talked about our journeys to rails this was interesting most had come from a different background i.e. not computer science. From the people I met at the conference about 50% were actually from a Comp Sci background (A good chuck had also dropped out). Most told me one of the strongest reasons they choose Rails/Ruby was the community and how helpful they were. The journey seemed to be Rails and then fall in love with Ruby. We also talked about our worst tech interviews, wow I thought I had some interesting experiences.

Day Three – Thursday

Comedy in software – Baratunde Thurston ( @ baratunde )

Without a doubt the most humorous keynote and the message was do not make boring software, find ways to be unique and humorous with it. Use your error messages in a fun way. If you need a bunch of good laughs you should watch this keynote

Cultivatedwit.com

All the Little Things by Sandi Metz (@sandimetz)

Without a doubt the best talk at the conference. Essentially she took a long IF/ELSE monster and converted it from procedure to real object oriented code.

Small methods are good

Refactor large if statements into case with methods

Tolerate duplication until you find the right abstraction

Squit test – look for bends and see types are near each other

Are you going to write procedures or trust objects?

Inheritance is good when it is, shallow and narrow and for leaf nodes

case is for business logic, not choosing classes.

I need to read Sandi Metzs’ book she is also currently writing a Rails book, here is the keep me informed email page.

Pair programming with my scholar

She had a blog setup but could not get her CSS to work and was confused about the different stylesheets what they met and when to use them. And what are all these extra extensions are e.g. erg and scss. And she wanted to get bootstrap up and running. We covered

Assert pipeline

File name extensions

What is sass and setup up some variables for her colours

Quotes the difference between ‘ and “

Bootstrap

First bootstrap button

Let the drinking begin

Happy hour in the exhibit hall, this was good but lacking due to no seating. Which just encouraged us to go to Code climate drinks 🙂

Day Four – friday

Taming Chaotic Specs: RSpec Design Patterns by Adam Cuppy (@codingzeal)

Frank this was an awesome workshop. I learned a couple really good things from it. A really backed room.

Pattern 1: start from minimal valid object (test to true)

Pattern 2: control values with ‘let()’

Pattern 3: Permutations using ‘context’

Pattern 4: Descriptive naming

Pattern 5: Extracting common behaviours

Pattern five was a real eye opener 🙂

https://github.com/CodingZeal/skinny

Tales from the Crypt by Aaron Bedra, Justin Collins, and Matt Konda (@abedra @mkonda @presidentbeef)

This was sketch where the team walked through a bunch of security issues. I think I have to watch this one again on the video and take notes this time.

Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies by Sam Livingston-Gray(@geeksam)

Click to access OOPSLA06antiobjects.pdf

This was a beautiful talk.

Key note – Aaron Patterson (@tenderlove)

A homourous round off by Aaron, with some balance to DHHs’ talk. You need to watch both DHHs’ tale and Aarons’ to fully enjoy. His thrust was in part that we need science in our community. Concluding with his 3 years of work on Adequate Record essentially speeding up, by 3 times certain ActiveRecord queries. His last act was him merging/pushing his amazing work.

Conference Reflections

The conference was well run and organized. There was some great speakers, great debate and lots of awesome people. Thank you smile

First day novice track– There should have a newbies/novices track i.e. next steps for boot campers on the first day. Maybe with the 10 things from computer science you need to know, or how to use Active Record, or The 10 differences between a junior developer and intermediate, how to survive tech interviews. Get the community informed earlier – Maybe next year the rails conf team could state that they are interested in building a couple tracks and ask what “we” think should be in the track. Lets move the conference from waterfall to customer centric Agile 😉 Find out what we(the community) needs – Have a way to vote on topics, and then advertise them and take offers. I think that either the way the rails conf team should get to decide, rather than a popularity vote, but new ways of engaging people in what topics and what workshops, I think would produce some interesting results. Level Tags – Hacking rails was delivered as a junior session. Maybe it would be worth considering adding tags to each session stating the levels that will be covered. The Novices track without a doubt had greater percentage of woman in it. Keeping our community “good” – Maybe we should have a community track next year, if this is one of assets how can we keep it, evolve it and stay welcoming. Humour – It was really smart to have the humorous keynote on day three today, it gave me energy. I am also going to build a resume, to help me find people I want to work with based on their humour. Food – The food, it was well, meh, with the exception of the last day. For snacks please consider nuts and fruit, less of the sugar crash afters. Space – Some of the smaller rooms, felt very packed and lacking of air. Jobs – A bigger jobs board and maybe one for people looking for jobs.

T – Shirts Competition

For those who have not being to railsconf, most of the companies in the exhibit hall stands have free t-shirts to give away. They always run out of XL so there is a rush (unlike the gold rush). These are the T-shirts I would wear after railsconf. I like them because the material is soft on my skin and the logo/text/pattern is interesting to non-developers and developers alike. Those just with their company name are a FAIL. I don’t mind advertising your company if it is comfortable and smart. New Relic = Datalution, Rackspace = Keep calm and code on, Sales Force = Achieve and of course railsconf 🙂

A weekend in Chicago

I stayed in a hostel (The Chicago Getaway Hostel), great place has a lot of events. The first night I went on the pub crawl and met three other railsconf attendees who I had not met before. The next day I slept and coded and then onto another pub crawl and met still more railsconf attendees 🙂 Had a great Chicago pizza at Chicago Pizza and Oven Grinder Co

Other resources for Railsconf 2014

A number of interviews with speakers on youtube just search with #Railsconf 2014 – https://www.youtube.com/results?search_query=railsconf+2014

links and decks – https://hackpad.com/Rails-Conf-2014-0gyxnR3pn9O

keynotes and other talks – http://www.justin.tv/confreaks/videos

Terry Schmidts’ reflection of the conference http://schmidt-happens.com/articles/2014/04/28/railsconf-virgin.html

Here is the base for all the workshops http://railsconftutorials.com/2014/

Big Astronauts daily recap videos by @AndyMaleh – http://www.bigastronaut.com/blog/ They are hiring http://www.bigastronaut.com/careers and have one the most interesting career pages, I love the attributes section.

http://blog.plataformatec.com.br/2014/05/railsconf-2014/

The job market

The job board