Skip to content

Ruby on Rails training for your team

Customized Ruby on Rails training for beginners, mid-level and seniors

Teamfotos - Moods

Goal of the training

Ruby on Rails is a popular web development framework based on the Ruby programming language. It enables the rapid and efficient development of web applications that are fast, scalable, and secure. In our customized training, your team will learn how to create modern web applications with Ruby on Rails, improve an existing application, or, if desired, gain extensive knowledge about automated testing, debugging, CI/CD, UI/UX implementation, and more. You tell us where the pain points are, and we will elevate your team to the next level.

About makandra

Since 2009, makandra has been exclusively developing with Ruby on Rails. Throughout our projects, we have encountered a wide range of requirements and challenges.

These include applications handling traffic from hundreds to thousands of requests per second, data volumes in the terabyte range, as well as legacy applications that need to be maintained securely despite outdated technology. We understand the experience of starting from scratch on a greenfield project, but we have also taken over applications lacking tests and having poor architecture.

Additionally, we have been training developers for 15 years, guiding them through an 8-month curriculum, and continuously advancing the skills of our entire team.

What we offer

We don't have one solution for all problems. But together we will find ways to meet your challenges. We have a lot of experience in communicating the content of the following topics, know the pitfalls and can also provide further resources beyond the training.

Course content Topics to choose from

Our training sessions are tailored to your needs. This means that you can decide which content your team should focus on. You can pick and choose from the modules and topics listed here based on what you need and are interested in. We will advise you and create a customized training program for you.

Do you want to sharpen your fundamental understanding of the Rails web stack or review your codebase together? We are happy to provide tips on the basics:

  • Achieving good software design through proven principles such as DRY (Don't Repeat Yourself) and the Law of Demeter
  • Identifying and isolating components in Ruby, JavaScript, and CSS
  • Writing comprehensible user stories
  • Applying agile methods in daily practice
  • Creating effective and reliable estimates
  • Collaborating in larger teams
  • Recognizing the pros and cons of monoliths versus microservices

Reproducing regressions and bug reports locally is often challenging. We are here to help you avoid being in the dark in such cases.

  • Logging in Rails applications: Mastering the search for the needle in the haystack (production.log)
  • Logging with Popular SaaS services: NewRelic, AppSignal, Skylight, Sentry & others
  • Exception notification: Proactively receive notifications about errors
  • Learning to assess reproducible errors: Using browser dev tools, useful IDE functions, and tricks like Ruby#method

We take the topic of automated tests for our applications very seriously. You can learn how to achieve pragmatic, good test coverage or improve an existing suite here.

  • What is the best way to test a particular function? System/integration and model tests, or view and request specs?
  • Which frameworks are suitable? What are the differences between Minitest and RSpec?
  • Reproducible testing of API/web requests with Webmock and VCR
  • Test-focused further development with our “test-led development” approach
  • Coverage measurement with tools such as SimpleCov and Cobertura
  • Stabilize “Flaky” tests to 100%. What is Capybara Lockstep and how to use it?
  • Accelerate test runtimes with parallel execution locally and in CI
  • Automatic cross-browser tests for selected versions of Chrome, Firefox, Safari etc.

The best tests only help if they are run regularly. We are happy to show you how to concretely implement an automated workflow with the steps "build, test & deploy."

Build pipeline

  • Understanding basic concepts like bundling, fingerprinting, pre- and post-processing
  • Configuring JavaScript transpilation with Babel and esbuild or webpack
  • Correctly referencing assets like fonts, icons, and images in views, styles, and JS

Continuous integration (CI)

  • Utilizing GitHub
  • Utilizing GitLab
  • Parallelizing jobs to keep test run times low
  • Creating dependency graphs
  • Keeping libraries up-to-date by integrating with Dependabot or Renovate Bot

Continuous deployment (CD)

  • Classic SSH deployment with Capistrano
  • Automated deployment with GitHub Actions or GitLab CD
  • Exploring important deployment concepts: database backup & migration, installing new dependencies, rollback strategies
  • The most important Git commands on the command line to master daily tasks:
    git fetch, pull, push, switch/checkout, add, diff, status, show, commit, merge
  • Merge Konflikte visuell auflösen mit 3-way merges
  • Efficiently solving advanced use cases:
    git reset, rebase, cherry-pick, reflog, remote, stash, apply, add -p, bisect
  • Repetition mit bash aliasen und Funktionen vermeiden

When developing a Rails application, we face the dilemma of where to store all the data.

  • PostgreSQL, Redis, Memcache: Pros and cons
  • Securing assets in file systems and object storage: Such as S3, MinIO, and others
  • Handling multiple parallel databases in Rails
  • How to: Write good database migrations

To protect an application, its users, and data from attacks, a lot of know-how and regular software maintenance is required. Possible topics in this module include:

  • Recognizing common attack vectors: SQL Injection, XSS, ReDOS, timing attacks
  • OWASP & Rails: What scenarios does the framework protect us from and what should we pay attention to during development?
  • Securely implementing authentication (SAML, Devise, Homebrew) and authorization (Consul, Cancancan)
  • Understanding vulnerabilities and protection mechanisms of browser mechanisms: Same-site cookies, CORS, CSRF, session replay
  • Dealing with CVEs in used gems and JS libraries: How to identify and patch vulnerabilities promptly
  • Handling CVEs in system libraries: (Excursion to DevOps training) through CVE mailing lists and readiness

Elaborate designs often lead to headaches during implementation. However, there are strategies to make the implementation efficient and maintainable.

  • Modern CSS Basics: Implementing corporate designs (CD) with global CSS variables, understanding grid in detail
  • Defining clear module boundaries: Cutting components using the BEM methodology
  • Effectively collaborating with UI/UX teams
  • Implementing responsive design
  • Integration with popular technologies: htmx, Hotwire, and Unpoly
  • Implementing dynamic components with or without SPAs: How to use "React on Rails" or "Angular on Rails"?

Amazon.com discovered in a well-known A/B study back in 2006 that even a 100-millisecond slower load time significantly reduced their profits. Not every Rails application is a webshop, but good performance is always desirable for similar reasons.

  • The Basics: How is the load time for visitors actually composed? When is performance optimization worthwhile?
  • Which pages should be optimized? Valuable tools like query_diet, bullet, and will_paginate help ensure optimizations have the greatest impact.
  • How to fix slow SQL queries and inefficient n+1 constructs?
  • How and for what purpose should I use SaaS services like AppSignal, NewRelic, Skylight, etc.?
  • Understanding the interplay of HTTP headers: Cache-Control, Expires, ETag, and Last-Modified
  • How does caching work: At the load balancer, CDN, or as fragment cache? Which mechanism is suitable for my infrastructure architecture? How do I apply them? How to avoid cache-busting – and what exactly is it?
  • How to scale a Ruby on Rails application: Handling load peaks with over a hundred requests per second

Even with a good understanding of Rails fundamentals, implementing complex requirements often remains challenging. In our 15 years of RoR development, we have gained experience with topics that are not encountered daily. In training, we can specifically discuss such topics relevant to your applications. Examples include:

  • Handling time zones on the client and server
  • Managing multilingualism: Various levels of I18n integration
  • Making Rails applications multi-tenant capable
  • Authentication with SAML: Registering the application as an Identity Provider (IDP) or Service Provider (SP)
  • Dealing with legacy systems: Pros and cons of code rewrites, catching up with tests & security, migrating large data sets
  • Sending emails reliably: Spam detection, bounces, SMTP relays, delivery rates, and transactional email providers

Does your team face specific, urgent challenges? We have specialized in Ruby on Rails since 2009 and also offer short-term and shorter consultations for Ruby on Rails.

Training schedule

Get out of your office and daily work routine – this allows for full concentration on the training content. Therefore, we are happy to invite you to join us.

  • Start at 09:30 AM: We begin with a tea or espresso and a small snack.
  • Lunch at 12:00 PM: We eat together in our canteen, then continue the training.
  • End at 04:00 PM: Training days are intense, so we don't conduct 8 hours of lectures. We finish by 4 PM.

Typically, two trainers are available to assist you. This ensures no one gets left behind, and we can directly answer questions or help with your device.

After the Training: We remain available as a point of contact even after the training session.

makandra is the smartest team of Rails developers I have worked with in my career. I was very impressed with how they dove into an old, complex codebase and immediately began improving our tests and reliability with minimal management from us.
Patrick McKenzie Founder of Starfighter and Appointment Reminder

Customized trainings What sets our training apart

Training in a trustful atmosphere

In our training sessions, it's just you and us, no one else. This allows us to fully focus on your challenges and your tech stack.

Learning in a small group

Our trainings are designed for groups of 4-8 participants. If your group size differs, feel free to contact us.

Training duration tailored to you

We will set the timeframe together: two, three, or four days? Consecutive days or with breaks for practice? We adapt to your needs and help you find the best format.

Training at our location in Augsburg

We invite you to our premises for the training. If preferred, we can also come to you and conduct the training in-house. We will work together to find the best timing and arrange the training days.

Flexible training content

We will decide the content together: Which areas do you want to focus on? Strengthen basic knowledge in certain modules or do a deep dive into selected aspects of an existing application? Not sure what you need? No problem, we will figure it out with you.

Training materials and certificate

We ensure you have everything you need during the training. At the end, your team members will receive a certificate of participation.

Team makandra Our trainer

Michael Leimstädtner, Project Manager Web Development

Michael Leimstädtner has been working as a Ruby on Rails developer and project manager at makandra for 7 years. In addition to his role, he mentors our trainees through the rigorous training program. Since turning his hobby of web development into a profession seven years ago, he enjoys spending his free time cooking, cycling, and meeting nice people.

Ready for the next level?

Book your customized training now. Send us a message.