“I am a senior Rails engineer” Ask Me Anything!

I want to pay it forward for all the help I received that put me where I am now — after last week's AMA I see there's a tremendous need for this kind of community support, so let's continue it this week, too! 🙂

ABOUT ME: I am with Rails since version 2 (around 2009) and made several projects that are used by thousands of people worldwide. I run my own Digital Product Incubator building new startups for and coach/train non-techies and developers (because some people asked before: https://cubitoo.com)

I also ventured lately into iOS development with my own app Howdy: https://apps.apple.com/us/app/howdy-journaling-reflection/id1581975006

Maybe I can help you with some questions bugging you about rails and engineering in general? ASK AWAY! 🙂

Here's are the previous AMAs:

- https://www.reddit.com/r/rails/comments/oxcpzr/i_am_a_senior_dev_using_rails_exclusively_ask_me/
- https://www.reddit.com/r/rails/comments/p137nb/im_a_senior_engineer_using_rails_exclusively/
- https://www.reddit.com/r/rails/comments/p5ld0w/weekly_senior_rails_developer_ama3/

19 thoughts on ““I am a senior Rails engineer” Ask Me Anything!”

  1. Well, if you insist 😀

    I’m a junior backend developer intern (quote from nda). Forth week into my first dev job.

    1. It was answered, approximately, ten billion times by our team lead in the past two weeks only, but I still want another opinion. How much code should I write? Is there truly no other metric but the deadline one?
    2. Want to try TDD. Team lead, among other things, suggested reading [this book](https://leanpub.com/everydayrailsrspec). Any other advices?

    Reply
  2. With all the experience you have with Ruby and Rails, how do you see the future of Rails? Do you think Ruby will continue to be successful or will the community eventually move to other languages like Crystal or Elixir?

    Senior developer is not a well-defined term. What exactly do I need to be able to do to say I’m a “senior developer”?

    What exactly differentiates a senior developer from a mid-level developer in your opinion?

    When you start a new project, how exactly do you go about it? Do you look at the problem as a whole and break it down into smaller problems that you solve in Rails? Do you have all the design patterns in mind in advance that you can then apply directly to your code or software architecture?

    Has it ever happened to you that you went completely in the wrong direction from the software architecture and had to rebuild everything?

    Thank you 🙂

    Reply
  3. Hey, Thanks for doing this!
    I use cancancan quite a lot but the more complicated things get, the more it falls down to using authorize XY explicitly in most controller actions and calling model methods from ability.rb for things like checking for roles etc.
    Do you have a suggestion for better gems or patterns? Specifically I am interested in solutions for quite dynamic user/group role management for authorizations and Privilegs when it comes to managing resources.
    I hope the question is clear enough 🙂

    Reply
  4. 1. What’s your go-to CSS framework?
    2. Do you use Webpacker for SCSS?
    3. RSpec or Minitest?
    4. Where do you host your Rails apps?

    Reply
  5. Design pattern question for you.

    The basic situation is this, a mostly API-based app with some Rails views for administration. This is somewhat contrived but:

    `class Event < ApplicationRecord` `include Taggable` `include Imageable` `has_many :sessions` `end` `class Session < ApplicationRecord` `include Taggable` `include Imageable` `belongs_to :event` `end` The Imageable and Taggable concerns contain basic functionality for adding and storing images and keywords to models respectively. In this situation, we need to aggregate images and tags when accessed from the Session. For example, `a_session.images` would return all images from that Session and from the Event it belongs to. Similarly with `a_session.tags`, but with some additional work for prioritizing tag order and weighted value. **Question:** Where would you approach this? In the past, I would probably have reached for a decorator for this behavior or a presenter if this was only going to be used in Rails views. The current project I'm helping on chose to do the work in the Session model but this approach is a bit janky because it forces the Session to reach into and know a lot about its Event. These are small examples, but this situation comes up quite a bit throughout this current codebase. I'm interested in other ideas.

    Reply
  6. – I am a Junior Rails developer with 1 year + experience. I can work in the rails backend comfortably, understands different coding patterns and usually can solve a problem of my own.

    However, when I see source code of a gem, I feel overwhelmed. How can I level up my knowledge from this point so that I can build one by myself?

    – What kind of project one can build to showcase their proficiency in Ruby/Rails?

    Reply
  7. Piggy backing off your React comment. It seems to be a trend where I work to separate the front end and back end way too prematurely and just go with a separate Javascript front end as a default configuration even when the app is small.

    Can you describe some easy to explain reasons why this is a bad idea. There seems to be a mad rush towards microservice architecture without thinking through the problems.

    Reply
  8. Have you been able to use GitHub actions to run rspec with capybara? I can’t for the life of me get the capybara system tests to run

    Reply
  9. Thanks for always doing this! Where would you recommend to learn more about databases — for context, I work somewhere that uses a shared db amongst several applications, and I find that fascinating. I’ve generally built smaller apps on the side and never had the experience to ever implement that.

    So if I wanted to do microservices that used the same users table for example, how’d you go about learning that?

    Thanks!

    Reply
  10. This is great! I’m fresh out of a bootcamp that taught Ruby/Rails for backend, and now I’m in this weird spot of “what to do next?” I always appreciate the feedback from sr devs for this question. Of course, project work seems to be the consensus here, but I guess I’m more interested in knowing what level of complexity would a sr dev want to see in a newbie’s rails project in order to seriously consider them for a job?

    Reply
  11. Is it still relevant? I personally find the MERN stack more complicated and slower to develop than Rails. What are your thoughts. Also senior Rails dev.

    Reply
  12. I currently work at a .NET and Angular shop with 2 years of experience. How can I land a Rails job with dev experience that’s not in Rails?

    Reply

Leave a Comment