00:00:06
A bit of my history: I started as a freelancer. Back in the day, we were called webmasters. I actually googled it two days ago, and it's an ancient term that used to describe a person who knows the entire stack—full stack and beyond—because we were doing it all at the very beginning. Throughout my career, I ultimately arrived at this position of CTO, speaker, and teacher for newcomers.
00:00:33
So, how did it happen for me? Well, it took a lot of hard work, and I have to mention my very forgiving wife for allowing me to stay up late over and over again. The thing that has driven me is creativity. So as I understand it, creativity is the ability to solve tasks when you hear they are impossible. At the moment, I'm 41, and I will be 42 this year, but around the age of 35, I started to doubt myself.
00:01:38
It's a different set of thoughts now, but I started to doubt because I was reading about new JavaScript frameworks coming out every week, and I thought, 'I can't keep up; I can't learn it all.' There are younger people who seem more agile, and I started to have less and less free time for my side projects because I always tried to put family first. I was concerned that when I reached 40 or 50, I may have lower stamina and might care less about my work.
00:02:25
These were my worries, and when I talk to you, I realize I’m not alone. Now, after getting older, I can say—the dot is intentional—is that we do not become obsolete when we are older. I've also observed that there are new languages and frameworks, but with experience, I can learn much faster now. I can pick up a framework in a week and be quite proficient at it.
00:03:09
Of course, not all the details, but younger developers often make naive mistakes due to their lack of experience. They reinvent the wheel constantly instead of knowing what to do. As for the less free time, it is a phase when your kids are little, and you want to spend time with them. But that phase passes, and you will have free time again.
00:04:05
Regarding lower stamina: while you may physically have less strength, you can make up for it with increased efficiency, at least based on my experience. I would love to pass on to you is the importance of taking care of yourself. Go to the gym, find a hobby—do something that makes you happy. Otherwise, you'll go crazy.
00:04:29
There’s a decision we often have to make as developers. Most of us start as developers, but at some point, someone might offer you a position as a team lead or lead developer. They are somewhat different roles: a team lead manages people, while a lead developer focuses on code. I was offered such a position at one point, but I said no.
00:05:36
I wanted to make sure I had a way back. When I was asked whether I wanted to be an engineering manager, I realized I didn’t have enough technical knowledge to go in that direction. If I went back, I would have to start over, and I wasn't ready for that. The same applies to being a CTO. When I became CTO, I knew I still wanted to code, but it’s a business role, and I end up coding less.
00:06:30
However, I feel I still have an edge. Even if I do it for another few years, I can always return to being a developer. Some of you will even start your own businesses and become CEOs. It's important to think ahead and have a plan if you want to change your career path.
00:07:26
I practice an exercise with every developer in my company. I ask everyone to think about where they see themselves in 1, 2, or 5 years. If you talk to HR during recruitment and hear this question, it can sound insincere.
00:08:06
But if you do this exercise for yourself, it brings great value. If you want to be a better developer two years from now, ask yourself: 'What do I need to learn to achieve that?' You need to think ahead, plan, and execute.
00:08:43
If you want to shift your career, build social connections. Find someone who is already doing what you want to do; ask for help. Revisit this process regularly, perhaps every six months. However, it's crucial to ensure that you still want to be a developer.
00:09:36
People can get burned out when what they are doing is no longer enjoyable for them. They may find that they’d be happier as a florist or a baker. So, question yourselves; when you plan ahead, you can create your own future. Just think about what you want to do.
00:10:15
Remember, seniority is a blend of knowledge and experience. Sometimes we worry about the future of Ruby or what AI will bring. When you've spent years debugging production issues or legacy code, you carry experience that younger developers lack.
00:11:04
The same problems will arise, regardless of whether they are caused by AI, junior developers, or even yourself in the future. If you find yourself changing technology at a company after 10 or 15 years, you will still be seen as senior because you simply need to learn new tools.
00:11:52
My main message today is to find something that drives you. You can’t sustain your energy just because you can buy food. While it's a decent short-term driver, it won't keep you motivated in the long run.
00:12:54
Some of us find motivation in teaching, networking, or creating open source projects. I want to focus on the idea of staying creative. I will share a couple of examples from my past work and then we’ll dive into something fun.
00:13:51
I have been doing web programming for over 20 years. I stopped counting at this point. My first website was created when I was 13, and it would still be online if I hadn’t forgotten the password a long time ago.
00:14:53
At some point, I created an e-commerce site for a client. They wanted to sell wallpapers, and they had 5,000 of them. They needed something to showcase different wallpapers in multiple environments.
00:15:28
It was impractical to render those images manually using Photoshop. I wrote a PHP script using ImageMagick to generate all the images dynamically—35,000 images in two days.
00:16:05
This technique served them well; their pages were cached for the next ten years. I later implemented similar techniques in Ruby on Rails for an e-commerce startup where users could place stickers on suitcases.
00:17:01
My favorite project was a kiosk device for large retail stores. We maintained their websites and were tasked with building kiosk devices. We utilized e-commerce solutions to offer customers browsing capabilities in-store.
00:17:56
We integrated a barcode reader that functioned as a keyboard interface. This was around 12 years ago, and back then it felt innovative. I also developed a real-time game for a Euro ticket contest using Rails on the backend.
00:18:54
The game, Tetris, used Hotwire and required no custom JavaScript, functioning entirely on the backend. I created a presentation tool in Ruby on Rails for my talks, allowing for seamless transitions and user interactions.
00:19:50
My creativity didn’t stop there; the arrival of large language models reinvigorated my passion for programming. Initially, I was hesitant to learn these models, but I found great joy in blending them into new and fun projects.
00:20:47
For instance, I recently leveraged Ruby on Rails to create a voice-controlled application that interacts with a digital avatar. This application allows for advanced communication and control with minimal programming required.
00:21:48
By capturing audio commands and interpreting them with an LLM, I can interact with the persona character, showcasing the ease of integrating these technologies.
00:22:53
Using available libraries, I was able to facilitate voice recognition and processing in a very straightforward manner. The overall goal is to make the web more interactive and user-friendly.
00:23:37
It's clear that these capabilities are not only fun but also serve practical purposes. Even mundane tasks on websites could be made more engaging, such as enabling dark mode or finding products in e-commerce settings.
00:24:29
Imagine applying these technologies in real-world scenarios: helping customers find the right laptop or asking for assistance while shopping—functions we can serve using voice controls.
00:25:12
As I mentioned earlier, I want to show you how easy these integrations can be.
00:26:08
By utilizing Ruby on Rails libraries out there, you can implement quick and robust AI capabilities. I have also experimented with image recognition to help users upload accessibly.
00:26:59
The foundation for this journey started with embedding various media types, allowing machine learning to interpret and categorize user content effectively.
00:27:49
I want to leave you with the idea that turning 40 should not be a concern. Instead, it marks an exciting new beginning for learning and creativity as we adapt to our evolving industry. Let's continue exploring and pushing boundaries!
00:28:52
You can begin by engaging with LLMs; they are the future! Dive into tools such as ChatGPT, leverage your past knowledge, and don't hesitate to ask questions. Embrace the creative aspects of this field.
00:29:59
In conclusion, I’d like to echo a quote from DHH that resonates strongly with me: 'It’s more fun to be competent.' However, I want to leave you with a quote of my own: 'It’s more fun to be creative!' Thank you.