From Le Wagon student to tech talk presenter

16 Avril 2024

For the first time, last Thursday, I presented a tech talk at Bordeaux.rb, a Ruby (on Rails) community that organizes monthly meetings. Eleven developers came to listen (or pretend to) to me (and Fabien Chaynes for his talk). My talk was about deploying Ruby on Rails apps on a server using Kamal. I'm also the organizer of the event. It can be difficult to find people who want to speak in front of the public, maybe due to imposter syndrome. That's why I decided to present a topic to show that even a junior developer can share his knowledge. It's a good opportunity to learn a subject because it needs to be clear in your mind to be able to talk about to other developers (even seniors).

My interest in Kamal arose when I noticed Heroku billings increasing for only side projects. I sought an alternative solution offering more independence. Kamal presented a solution to simplify my DevOps process, where I'm not a DevOps specialist.
Before making the switch, I attempted deployment with other PAAS platforms, but encountered the same issues. You are never truly in command of your deployment. It's easier, but you pay, and you remain linked to your provider rather than having the flexibility to easily change when deploying through Docker containers.

I started my learning process with a simple Rails blog project using a SQLite database. Kamal provides a demo video created by David Heinemeier Hansson (aka DHH) deploying a Rails blog with a MySQL database on Hetzner and DigitalOcean servers. I chose Hetzner, which provides servers in several EU countries (I live in France) and I really like their application's UI.

Fortunately, there are now several articles and videos detailing the deployment process through Kamal, but there are many parameters to consider when creating applications, such as other databases like PostgreSQL or MySQL, tools like Redis, job queue systems, or even SSL certificates.

My journey was simple:
  • - Blog template with SQLite
  • - PostgreSQL blog app
  • - Adding systems like Redis or other job queue systems.

Through this exercise, I learned to get SSH keys to handle SSH connections to a server, the basics of Docker containerization, configure deployment files for Kamal, and resolve PostgreSQL issues by interpreting not meaningful errors in the console. I gained a solid process for deploying projects and achieved a 66% decrease in my deployment costs.

I was so hyped by what I learned that I needed to share it with other developers. And as I organize events for Bordeaux.rb, I decided to present it during the April event.
For the presentation, I created a project which I deployed on a Hetzner server (to reduce deploy time issues). During the talk, I did live coding by repeating the steps I took to deploy the project. Having the example deployed reduced the stress of error debugging while presenting, and it saved me time because the deployment setup takes 5 to 10 minutes to run the first time.

Presenting a tech talk was new for me, and this time it was recorded, resulting in increasing stress. Surprisingly, the talk has been smooth and great for me. My stress level decreased minute by minute. Even during the Q&A, I stayed composed and responded honestly, even when I did not know the answer. A few laughs, a little joke, and it turned into a fun exercise.

This kind of talk is really great to start. Bordeaux.rb is a small community which began a few months ago. My advice would be to choose a good community that can give you support and feedback during and after your presentation. Also, preparation is key. If you come without any guidance and without experience, you can be sure it will be a bad moment. Stress is normal; if it's contained, it's a good thing. Try to be as concise as possible. It's the key to enhancing your pronunciation and keeping the attention of your audience.

It was my first tech talk, so I'm a beginner and I have a lot to learn, but here are my pieces of advice.

I encourage you to share your journey through participation in talks. It's a good way to increase your skills and meet the community.
I really enjoyed the exercise, and I will do it again for sure.

Thank you for reading. If you want to see the replay of my talk, it's there.