This is a article from my "Dev Chats" series where I speak to an awesome developer or techie every week or so. You can read more here. Let me know in the comments if you find these useful to you!
As far as I can remember, I wanted to make a website the first time I saw one. I was that nerdy kid who takes stuff apart and builds new things with the harvested pieces. I've always been obsessed with making things. I remember clicking on a hypertext link for the first time: I was blown away. So you can make a thing that takes you somewhere else when you click on it? This was like magic to me. I had to know how to do it.
When I was 15, I put together a phpBB forum to hang out with my friends. At some point, we decided to make a podcast. We needed a website to host it so, I looked it up online and started writing my first HTML page. This also was the golden age of Flash! I had so much fun making my first amateur websites, and that passion never left me. Even when I had to write code for projects I didn't particularly like, I always loved coding.
Later on, I was lucky enough to land a job where I found a mentor. I can't overstate the impact it had on me. I wish every aspiring developer to find someone who can help them channel their energy and take their first steps in software engineering. Having a mentor can be an extremely rewarding experience for both parties, I highly recommend it.
It's great and in constant growth. France has had good engineers for a long time, but our best talents often (and understandably) leave for the Silicon Valley. Yet, many promising startups have grown over the last decade and we now have world-class tech companies based in Paris.
Besides, there are plenty of meetups and conferences. The DotCSS and DotJS happen in Paris, for example. Also, being in Paris gives you quick access to the rest of western Europe: you can attend events in London, Berlin, Amsterdam, Brussels, Barcelona...
I'm seeing more and more foreigners coming to Paris to find engineering positions and I love it. Diversity is great. That's how we make the best stuff.
Woah, where do I start 😀
I love logic and technical challenges, but I also love design and user experience. It would be hard for me if I had to choose because to me they go hand in hand. Front-end allows me to do both, and be part of a bubbly community that keeps on making amazing things.
What does an interest in design add to a developer’s skillset? Should all developers learn some design concepts and skills?
We're problem solvers. At the end of the day, our mission is to make someone else's life easier. UI/UX designers deal with it directly, while developers are a bit more "removed" from this reality. If you're not careful, this can drive you to care more about code, languages, tools, and technology than about the user, the result, and the experience.
Developers don't need to be designers, but getting familiar with design principles helps you think user-first instead of machine-first. I know many developers who don't think of themselves as designers. They think they have no "creative side". That's a myth. We all interact with digital and physical user-oriented interfaces all day long. As a result, we all develop a sensitivity to ergonomics and user experience. Embracing it gives new perspectives.
At some point in my early career, I got comfortable and I fell behind. I had a routine job that I handled well, I knew all the clients, things repeated. I didn't have to do much to get the job done fast, so I got lazy and I stopped learning. All I did was repeat the patterns I knew. It worked, clients were happy, I was productive, so why change anything?
A few years later, reality hit me hard: the industry had grown so much and I was behind. It doesn't feel good at all when you realize that. I had to fast-forward and work twice as hard to catch up. I missed on great job opportunities because of that. The feeling of imposter syndrome had never been so strong.
It feels great to master something that took time to understand, but this can drive you to rest on your laurels. The tech industry moves at a maddening pace. It's easy to feel like when you finally "get" something, your newly acquired knowledge is already outdated.
Now hear me out: I don't think one should always be on top of things, and rush into learning the latest trending language or framework. That's virtually impossible, and you're going to burn out, but you definitely can't let yourself fall into the other extreme. Being a developer is a fascinating adventure, but the industry is all about embracing change.
When I think of all the traits that I deem crucial to succeeding as a software engineer, it always comes down to curiosity. Being willing to always be discovering, always be learning, and always be improving.
Among the behaviors that will hurt your career:
• too much ego, thinking of yourself as a genius who has nothing left to learn,
• laziness, resting on your laurels and only doing what you already know,
• miscommunication, unwillingness to discuss more often with your colleagues or your peers,
• dogmatism, thinking in absolutes, rejecting alternatives and different approaches.
All of these traits directly or indirectly result from a lack of curiosity. They're often driven by imposter syndrome: the industry can be quite elitist and software engineering is hard. Many developers feel the need to "secure" their knowledge. My advice comes twofold:
• Beginners and junior developers, surround yourself with more experienced peers. Resist the urge to be the smartest person in the room and don't be fooled by make-believe job titles. Find companies that value professional growth, and become the kind of developer seniors want to mentor: curious, enthusiastic, attentive, open-minded and grateful.
• Senior developers, embrace the mentoring part of your position. Being a senior isn't only about a higher salary and staying away from the grunt work. If your company doesn't encourage mentorship or relies too much on you for the risky tasks and it eats up all your time, remind them the benefits of teaching: higher trust within the engineering team, juniors growing their skillset, and a better velocity at short, middle and long term.
Software development is mentally taxing. If you don't stop looking at your screen, if you don't recharge by doing something else, it's only a matter of time before you burn out. And that's a when, not an if.
I love anything that has to do with making; creative outlets. When I don't code, I mostly write (on my blog) and draw. For years, I've studied lettering and typography. I also dig black and white, cross-hatched drawings that look like engravings, been admiring it for years. I'd love to practice at this on my free time.
• Clean Code, by Robert C. Martin
• Design Patterns, by Erich Gamma, Richard Helm, John Vlissides and Ralph Johnson (Gang of Four)
• You Don't Know JS, by Kyle Simpson