Book Image

Developer Career Masterplan

By : Heather VanCura, Bruno Souza
5 (1)
Book Image

Developer Career Masterplan

5 (1)
By: Heather VanCura, Bruno Souza

Overview of this book

Written by industry experts that have spent the last 20+ years helping developers grow their careers, this book offers invaluable insights and guidance tailored to the specific needs of technical professionals. By discovering the secret of continuous learning and adapting in the ever-evolving field of software development, you’ll explore various learning paths with formal and informal methods, as well as gain an understanding of the value of certifications to validate your skills. This book will teach you the significance of building a strong support network, holding crucial conversations, and taking ownership of your career growth. You'll delve into acquiring both soft and hard skills, becoming a well-rounded and sought-after developer. Packed with practical examples, stories of successful developers, and real-world applications, the chapters will equip you with actionable advice on how to push beyond your comfort zone and embracing communities to enhance your teamwork abilities. Additionally, you’ll uncover the benefits of joining open-source projects, speaking at conferences, and building a personal brand to amplify your visibility and reputation. By the end of this book, you'll have a well-laid-out long-term and short-term plan for your career progression, equipping you with advanced technical skills, strategic thinking, and the ability to effectively manage relationships within your organization.
Table of Contents (21 chapters)
1
Part 1 The Basics: Learn and Practice the Technical Skills
7
Part 2 Get Involved: Participate in the Community
13
Part 3 Create Impact: Share and Lead

Interview

Rafael del Nero

We would like to share with you the experience of Rafael del Nero, working at Mastercard as an example.

Q: Tell us a little bit about the current role that you have at Mastercard. What do you do? What kind of things do you work with? How interesting are the projects that you work on? Tell us a little bit about that.

A: I’m a senior software engineer at Mastercard, and my work is not exactly related to business requirements implementation. The project we’ve got is to triple our current cloud project that’s deployed only in the US to other continents. We are doing a lot of DevOps work and configuration work for our website, and my day-to-day work is on that.

I’m going to give you some examples of the work I’ve done. Some of the activities that I’ve been doing have been migrating Java 8 to Java 11. Another example would be adding partition jobs and out-scaling. I’ve generally been doing work to enable our services to be deployed in other continents, and we have to make them at least a little bit more reliable by adding out-scaling and basic microservices features.

I’m not doing a lot of coding. But even in my last role in the last company I was working for, I wasn’t doing a lot of coding because, as I said, sometimes, for developers, the scenario of software development is changing. You are far more of a software engineer rather than a developer who develops code. I don’t see that very much anymore in the market, and that’s happening because of the cloud era. Services nowadays are deployed in an isolated way. It’s just a natural thing that happens in technology. As technology evolves and gets more mature, the work changes as well. Nowadays, for example, we don’t have one big unit. We have microservices, and they communicate with each other using investment brokers, and so on. I’ve also done a lot of work with message brokers, so it’s just software engineering work.

Q: Tell us a little bit about your projects. You have the Java challenges project. Can you tell us a little bit about that, how that got started, and the results you’re having with it?

A: Yes. The Java challenges started five years ago.

Basically, they are Java quizzes. They are carefully designed to help Java developers really understand Java features. They resemble the certification questions but are more useful than those questions. I carefully produced them to really push developers to understand the main Java features, such as polymorphism, threads, and inheritance, and new features, such as records, the new switch case, pattern matching, and virtual threads. There are Java challenges for all of those features, and it’s fun for developers to understand and master those features.

As for how it started: well, it started with Bruno! If you didn’t motivate me to share my knowledge, maybe I would never have done it! When I saw your talk on TDC, you were saying that it was possible. In one talk of yours, someone mentioned mentorship, and I said, “Man, this guy is crazy. How would Bruno or anyone else need a mentorship?” Then, you answered, and then I said, “OK. Maybe that’s possible.”

Then, I started the mentorship program with you, but before starting the mentorship with you, just with that talk I saw on TDC, you had already made me believe that it was possible. By going through your talk, I gave two talks at my job, because I thought, “OK. I believe Bruno. He said it’s possible, so I’m going to do it.” You were able to empower me to give my first talk, and that was great because after I gave those talks, people were looking differently at me and telling me, “Rafael, I can really see that you’ve grown a lot,” just because I delivered the talks.

When I saw the guy asking that question, I said, “Oh, this guy’s crazy. How can Bruno give mentorship?” Then, you put up your website, and I said, “OK. I’m going to write that down and do the mentorship with Bruno.” At that moment, I decided that I was going to do the mentorship.

Anyway, I learned a lot from you, and then I started sharing knowledge on Twitter more consistently because I wasn’t doing that very consistently before. I had maybe five posts on my blog – I didn’t have a lot – but then I learned that consistency was so important with you, so I said, “OK. I’ll commit to that. I will start generating content regarding how to have fewer bugs or how to create high-quality code.” I started creating some blog posts regarding that.

I did a design pattern post on Twitter, and Yolande retweeted this design pattern article and I got lots of views. I wanted to say thanks to her, and then I asked you, Bruno, “How can I thank Yolande? How can I thank the Java community for that?” You said, “Create content for her.” I thought, “OK. What can I do?

Then, I saw that she was working on a project called 100 Days of Java. I thought to myself, “OK. I really like to explore those Java features and I also like games, and I’d like to create some Java code challenges. I will create one daily challenge,” and that’s what I have done. I created one Java challenge every day and I shared them with Yolande and the Java community.

That was an amazing way to help her to share Java knowledge, and it helped me a lot as well because I gained so much visibility. In fact, I had no idea that I was getting so much visibility, but when I had the Java challenge of going to JavaOne in 2017, a lot of people already knew me. A lot of people came to me and said, “Oh, I know you. I know your job. I know your work.” I was impressed because a lot of people knew me because of the Java challenges.

The consistency was a game-changer. Sometimes, one simple idea, when combined with a strong will and consistency, can be a game-changer. I was consistent with the Java challenges, and that opened a lot of doors for me. It opened the door to give a talk at JavaOne. That then opened the door to writing a book. That then opened doors to great videos and great articles, and I also wrote a lot of articles for JavaWorld and IDG InfoWorld because of the Java challenges. It’s all down to one idea, motivation, and encouragement – you know, there are lots of variables, but at the start was the empowerment of a mentor: that’s so important. Bruno was my mentor – he is my mentor. Maybe without that, I wouldn’t have been empowered enough. Maybe I wouldn’t be doing what I’m doing. I was focusing so much on technical knowledge that I forgot everything else. What happened was that a lot of other people were getting promoted, and I wasn’t.

Q: What were the results for you of the consistency, the practice, and the challenges? What happened in your career after that?

A: Well, what happened was that I got visibility, and it was far easier to get interviews, for example. A lot of companies were sending me messages on LinkedIn to do interviews, and when I arrived in Ireland, things were easier. There were doors open already.

For example, through SouJava, I was able to meet the Java group leader when I was touring Sao Paulo. That opened doors for me because I already knew him. In the first week, I remember I went out with the two Barrys, and we had a chat, and it was fun. Then, I could help him build their website, and it was great because I was mentoring a German lady and I was practicing my English. It was good to have these doors open when I came here for the first time.

When I was sharing my knowledge, what happened is that I gained trust. People trusted me, even if they had never talked to me before; I had their trust. Barry Alistair, the JUG leader, told me, “Hey, Rafael. There is a group of Brazilians there. Go say hi to them.” I went over to say hi, and one of those Brazilians – Rodrigo Rodriguez – knew me already; he had seen my content. He said, “Hey. Are you working?” I said, “No. I’m looking for a job.” Then, he said, “Man, there is a company that’s really good to get started with.” I went to talk to a friend of his, and then I got recommended to this company, and then things worked out.

So, why is sharing so important? You gain trust. Even if people have never talked to you before, people trust you. He only recommended me because he saw the content I was sharing, and I didn’t even need to tell him anything. He just said, “I will recommend you.” What happened was great because, when you recommend people, in most companies, you get some money. He got some money, I got the job, and so it was a win-win for everyone.

Q: One of the things you mentioned here was practicing and consistency. Can you talk a little bit about how practice was important for you to learn new skills, especially because one of the things that you do is that you help other people practice? How important is practicing to improve and learn things and improve skills?

A: Well, it’s highly important. Practice is the key to mastery. You can do only moderate-quality work if you do it once in a while, but you can create a masterpiece if you do deliberate practice. That’s why it’s so important to build consistency, and it’s hard to build consistency because there are days that you don’t really want to do whatever you’re committed to doing. But on those days, when you push yourself, those are the days that you build up mastery.

It’s extremely important to do deliberate practice in whatever skill you want to really build up. In the case of the Java challenges, nowadays, I’m able to create better Java code challenges. It’s important to be consistent because that’s how you build up your confidence, and when you build up your confidence, you are able to do much more.

And not only that: when you are consistent and do whatever you plan to do for a long period of time, you will excel in that skill. If you do something only once in a while, you’ll be only average in that skill. You won’t excel. You won’t gain mastery of your work. But if you are consistent for a long period of time, and you do what you need to do, even when you don’t feel like it, you can build really big things. And that’s hard to do because you are fighting against your own mind.

Q. You help people to become better developers. I know you: you help them with the Java challenges project, and you help them to learn new things and be better. What’s your biggest suggestion for people to improve their skills?

A: Deliberate practice is the key to the mastery of skills – for example, writing. Writing is a skill that takes time until you get good at it. I started writing articles consistently so that I could get better at my writing skills. Not only that, but I could also improve my writing skills by writing a book.

As a tip for anyone who wants to be consistent, firstly, you have to believe that you can get there. Otherwise, you won’t even do any of the work because what’s the point of doing such hard work for nothing? The first step for anyone who wants to be consistent is to believe that you can achieve it.

Mentors help so much with that because a mentor is someone who has a much broader view than you, and that gives you the confidence to believe that it’s possible. A mentor is a tremendous aid to help you with your confidence.

You’ll also have to fight against your own mind because there will be days that you won’t be willing to do whatever you’re committed to doing. You have to decide, “OK. I’m going to do that no matter what,” because you’re going to have to do those things on the days that you don’t feel like it: that’s hard. But when you see the big picture and think, “OK. If I keep doing that, I know that I will reap good things,” it gets easier.

It also gets easier when you start seeing results. When you start seeing results, that’s a boost for your motivation. But you have to keep in mind that motivation won’t get you all the way. Discipline will get you all the way. Motivation is a booster that you have at the beginning, but what makes you continue is not motivation – it’s discipline. Of course, you’re going to have some motivation boosters – when you see some results, for instance, you’re going to have a motivation boost – but for most of the process, you’re going to have to be taking action and not getting immediate results. Focus not on the results but on the process, and just keep doing it.

That’s the hardest part: to keep doing the thing you decided to do, even when you don’t feel like it. It’s a war against your own mind. That’s the hardest thing about being consistent. Staying consistent on those days that you don’t feel like it is the hardest thing.

And of course, do something you enjoy – otherwise, it’s much easier to give up. If you do something you like, then you feel more motivated, but keep in mind that sometimes, whatever you choose to do, there will be things to do that will be a little bit boring: that’s OK. Sometimes, it won’t be so easy – you’re going to have to embrace the boredom. I embrace the boredom a lot. You have to keep in mind that it is part of the process: sometimes you’re going to do boring tasks. But of course, keep the fun tasks as well – otherwise, if you keep doing only boring tasks, you might give up.

I always innovate. If you are creating content or learning technologies and you end up learning or using the same technology for many years, you’re going to get bored. Always find new ways to learn, and that should upgrade your career.