Thibault Denizet is the owner of Samurails, a website meant to take your web development skills to the next level.
Here, Thibault discusses his career in software engineering including the lessons he’s learned and he also shares advice for aspiring engineers. Read on:
Can you tell us about your career in software engineering? Where did you start out?
My “career” in software engineering started while I was in the second year of my French Master in Computer Science. Until that point, I knew I wanted to work in the IT sector but had no idea in which field exactly. Systems, Operations, Networks, Development? So many interesting things to study!
At the end of this second year, I went to Myanmar (Burma) to do a two-month internship in a travel agency. A friend and I were tasked with building a booking system to automate the agency’s manual processes. That’s when I realized how building softwares could influence people’s lives. It won’t change the world, but if it can help at least a few employees do their jobs better and more easily, then I’m happy.
Following this internship, I started to focus more on web development because it makes it possible to create softwares available anywhere in the world just with an Internet connection! I had several more internships in that field and started to focus on Ruby and its frameworks (Ruby on Rails, Sinatra, etc.).
What sparked your interest in software engineering?
What sparked my interest was seeing how softwares can help people. Softwares break physical boundaries and reunite people through instant messaging applications and video chats, for example. For someone like me, living in a foreign country, it’s really important to have these technologies to communicate with my family back in France. Of course, this is just an example and there are so many more things softwares can do in our lives.
Where do your interests/passions in software engineering lie today?
I started by building what my employers wanted or needed. Today, I have two major interests in software engineering: teaching and building stuff for the web that will help people like me.
I’m searching for new and better ways to teach people how to code. Something different from what we can find today. You see, a big problem new developers have is that they don’t know how to make the switch from building a tutorial application to building their own stuff. I would like to create something that bridges this gap.
I still love to build new things, but these days it’s mostly tools that I really like or that I’m planning to use myself. Building a web application is so much fun! I get in the “zone” so easily when I’m working on implementing solutions for a set of problems – these solutions take my skeleton application from being empty to having everything needed for users to interact with it.
On the technology side, while I still really like Ruby and Ruby on Rails, I’ve started playing with Elixir and Phoenix and I have to admit, this is probably going to be my new tool for the coming years. I still have a ton to learn, but it’s been great so far. On the front-end side, I still like building good ol’ HTML pages rendered on the server. At the same time, I love the flexibility of the React framework and the idea of building one application for the client and one for the server.
What parts of your career so far are you most proud of?
It’s probably the switch from having a full-time job to starting my own little business. Focusing on Samurails gave me the freedom I needed to avoid burnout. It also pushed me to dive deeper into learning because you can only teach something if you understand it perfectly.
Close behind are my days at Playlab, a gaming company in Bangkok. There, I rose from a software engineer position to managing eight software engineers in less than a year. It was a blast, but also quite hard. Half of my team was located in another office, so communication wasn’t always easy.
To what do you attribute your career successes?
Communication and a will to learn every day.
Communication because listening and understanding what your boss/client really wants is hard. Then, you need to transmit these specifications in a technical way to your team. I always try to make sure I understand exactly what’s needed – but it can be very, very hard. The solution I use? Exchanging and validating as often as possible to see if the project is on track.
Continuous learning is fundamental. It’s a part of any software engineer career, and failing to do so will make you stagnate, and with time, fall behind. You need to be willing to learn new techniques and expand your knowledge every day.
What are the hardest lessons you’ve had to learn in your career?
1. Learning to say no.
As kind as you want to be, sometimes you need to say “no.” When something is impossible or you’re simply too busy working on something, you need to be able to say no to incoming requests.
2. Understanding the business side.
This one is very important if you’re planning to climb up the hierarchy ladder. Working with business people can be tough, because they probably won’t care about the implementation details and just want everything done yesterday. Put yourself in their shoes and see how you can improve the communication.
3. People on the Internet can be mean.
That one comes from running my online business. Sometimes you will create and share things that some people won’t like. Negative comments can have a terrible impact on motivation, even if there is only one for every 100 positive comments. You need to shield yourself from this and see if there’s any useful feedback in their comments. Most of the time it won’t be the case and you can just discard them. But if there is some truth, use it to improve yourself.
How do you stay on top of new skills and software languages? What are your favorite resources for continuing education?
I love books. I read (or listen to) a huge amount of books. When I want to learn a new skill, I start by finding the best book on the topic.
I will go through it, which will give me a base to research the topics I have difficulties assimilating. Then, the only way to actually ensure that the acquired knowledge stays in place is to practice, practice and practice. If I’m learning a new language, I will build stuff, for example.
Once I feel comfortable enough, I will write something about it – a tutorial or an article. This will validate the acquisition (or make me realize I didn’t understand anything) and let me with some nice content to share on my website.
I also like to check GitHub open source projects and see how the code is organized. The discussions in issues and pull requests are also super informative and you can see the philosophies of very smart developers reflected in their comments.
Here are my favorite resources:
1. Amazon (to buy kindle, books or audiobooks)
2. StackOverFlow (to find solutions when I’m building stuff)
5. Hacker News
How important is it that aspiring software engineers stay lifelong learners?
I believe this is the most important skill aspiring software engineers need.
In addition to the hard skills, what else should software engineers be doing to remain valuable to their employers?
- Put yourself in other people’s shoes. This is the only way to understand what these people need and build it for them. You can actually do this by doing their jobs for a day or two. This will create strong bonds in the company and facilitate work for everyone.
- When testing something you’ve built, really try to see it as a brand new user and forcing yourself to see the pitfalls in what is in front of you.
- Learn other skills (marketing for example).
How should software engineers be using online sites like Paysa when navigating their careers and searching for new jobs?
Websites like this are super important to see how much a software engineer is worth. Too often, companies will try to save money and if developers don’t know any better, they will get hired for a fraction of the price they’re worth.
Paysa gives the right amount of information for engineers to negotiate their compensation. Plus, if a company’s offer actually matches what you’re worth, the working environment will probably be better than the one trying to get you on the cheap.