Skip to content

Rodrigo Urubatan – About Code

Helping ruby developers to use the best tools for each job so they can solve hard problems, with less bugs and have more free time.

Menu
  • Home
  • My last presentations
  • About
  • Privacy Policy
Menu

Three things that make a senior Ruby developer (and how to get there)

Posted on 2019-05-25 by Rodrigo Urubatan

This is a very opinionated post, dealing mostly with what I think makes a senior developer, the main focus will be Ruby because that is my main language today, but most of the things I’m commenting here are completely independent of programming language.

Probably lots of people have a different idea of what is a senior developer, so if you do not agree with something I’ll write bellow, please leave a comment!

But if you follow what I’ll write bellow, I’m pretty sure you can be a Senior Developer and not a Señor Developer 😀

1) The ability to develop quickly

First things first, to be a senior developer means you are able to write software that works and deliver it to your client working, and since you call yourself senior, it is expected that you do things faster and better than a junior developer.

I know this is mainly a simplistic comment, people also expect you to have the ability to write and deliver solutions that are a lot more complex than what they expect from someone that is starting in the career.

I also expect that any senior that is working with me is able to understand the problem we are writing the software to solve, understand the client needs, and that will require understanding the client business.

Also, to write software better and faster is write software that will be maintainable later, so it will require writing clear code, with tests, and code that people can understand.

Tests will allow you to refactor the code, because no one writes it perfect in the first time, or the second… And if you want to learn about refactoring, the book Refactoring: Improving the Design of Existing Code (2nd Edition) is perfect in my opinion.

Also, what is clear code is widely open to debate, but it is important to follow the standards defined in the company, in your team, or in the project, try not to reinvent the wheel all the time, and if you need directions on what is clear code by lack of standards on any of these levels, maybe you need to define these standards… And if you need help, this book is a great option in my opinion Clean Code: A Handbook of Agile Software Craftsmanship

Of no one can learn everything in books, you are a senior developer because you had experience working in real life projects, solving problems that appeared to you, or sometimes deciding that a problem was not worth solving.

The ability to teach others and help others grow

Once you had lots of experiences, you learnt how to work around many things, and that is most of the times because other people that are more experienced than you helped, or suggested a solution, or talked to you, so now it is your turn.

Of course you’ll never know everything, but you know plenty to help that junior developer in the company or the new intern to overcome their first problems, you have tips that can make them grow in their career, and it is expected of you to help who is starting.

There are many ways to do this, most of them are just the way you threat other people in your day to day, but you can try some games and activities like organizing a “Desconference” in your company, it is like a meeting where everyone that attend the meeting need to do a 5 minute presentation about whatever they want, when one 5 minute presentation ends, the next one starts. If you will do this try to keep the maximum number of attendees between 6 and 12 to keep the meeting between 30 minutes and 1h. This is a great way for people start getting confidence to do public speeches and start sharing what they know. Remember that in a Desconference you do not set the subject, each person talks about whatever they want, from the thing they are working this week, to their favorite weekend activity.

Another cool thing to do is to organize some Coding Dojos to help people learn specific skills like Testing, Refactoring, some new library, any other thing you want them to learn. And coding dojos are also a great way to practice pair programming (I have to assume I’m not really comfortable with pair programming all the time, I use it only on specific moments, but nobody is perfect 😛 )

The ability to find the ideal solution

Finding the ideal solution is something that is both impossible and very subjective, anything that you propose today you’ll probably think that can be really improved tomorrow.

Also you do not know all the available technologies in the world, but you need the ability to propose a good solution that will solve your client needs, within an acceptable time frame and that fits the client budget.

This usually means that not everything will be done using your favorite programming language, many projects need pieces in more than one language, in more than one technology.

For example, if you need data mining, big data processing, data science, Ruby is not great at it, it is probably better to go with Python, but you’ll have to integrate the python code that is being created with the existing or new solution in Ruby, that might have a piece running in Node, another piece implemented in Kotlin or Swift.

The important thing is solving the client problem, sometimes proposing a solution very different from your client’s first request.

And to do that, you need the ability to understand the client business, and sometimes find out that he is telling you how he solves the problem today, not what the real problem is.

Summary

  • The ability to develop quickly
    • Know your languages (no Senior developer knows only one programming language)
    • Understand the client business
    • Write clear code, meaning code that other people can read and maintain
    • Write tested and testable code
    • Refactor your code to improve it
  • The ability to teach others and help others grow
    • Day to day people skills
    • Desconferences
    • Coding Dojo
    • Internal company presentations
  • The ability to find the ideal solution
    • Understand your client business
    • Know how to integrate systems
    • Know how to “extract” information from your client
    • Understand the difference between how the client solves the problem today, and what is the problem being solved

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent posts

  • Why Embrace Nesting in Ruby Modules?
  • An easy way to have a local “Github Copilot” for free
  • SPA without touching Javascript – The magic of Ruby on rails and Hotwire
  • I see Dead Jobs everywhere (sidekiq DeadSet)
  • Quick tips that help: rails notes

Arquives

  • May 2024
  • April 2024
  • February 2023
  • January 2023
  • December 2022
  • June 2021
  • March 2020
  • January 2020
  • July 2019
  • June 2019
  • May 2019
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • February 2018
  • January 2018
  • November 2017
  • August 2015
  • August 2014
  • July 2014
  • August 2007

Categories

  • AI
  • articles
  • cfp
  • firebase
  • gems
  • git
  • opinion
  • presentations
  • projects
  • rails6
  • ruby
  • Sem categoria
  • server-api
  • tutorials
  • Uncategorized
© 2025 Rodrigo Urubatan – About Code | Powered by Minimalist Blog WordPress Theme