Reader small image

You're reading from  Developer Career Masterplan

Product typeBook
Published inSep 2023
PublisherPackt
ISBN-139781801818704
Edition1st Edition
Right arrow
Authors (2):
Heather VanCura
Heather VanCura
author image
Heather VanCura

Heather VanCura is a Senior Director at Oracle in the Standards Strategy & Architecture team. She is the Director and Chairperson of the Java Community Process (JCP) program. In this role she leads the organization and chairs the JCP Executive Committee, composed of top global enterprises in the world. She serves as an international speaker, and an organizer of developer events around the world, engaging with open source groups and user groups. She regularly mentors developers at all career levels, leads coding workshops that extend into local communities to inspire young developers from diverse backgrounds, and delivers keynote presentations on these topics, including her signature series: How to Ally for Diversity & Women in Tech. Heather has worked with developers and technology executives for the past twenty years at Oracle, Sun Microsystems and at SCO Unix. She has served on the boards of Dress for Success and FIRST LEGO League NorCal, and regularly volunteers with organizations such as Andela, Rippleworks, Women Who Code, IEEE Women in Engineering, Anita Borg, and Professional BusinessWomen of California.
Read more about Heather VanCura

Bruno Souza
Bruno Souza
author image
Bruno Souza

Bruno Souza is a Java Developer and Open Source Evangelist. As founder and coordinator of SouJava (Sociedade de Usuários da Tecnologia Java; Java Technology Users Society) and leader of the Worldwide Java User Groups Community at Java.net, Bruno helped in the creation and organization of hundreds of JUGs worldwide. A Java Developer since the earliest days of the technology, Bruno took part in some of the largest Java projects in Brazil. Bruno is a Principal Consultant at Summa Technologies and has extensive experience in large projects in the Government, finance and service industries. A Cloud Expert at ToolsCloud, he promotes and develops cloud-based systems using Java. Nurturing developer communities is a personal passion, and Bruno worked actively with Java open source communities and projects. Bruno Souza is an Honorary Director of the Open Source Initiative (OSI), President of the innovation-focused Campus Party Institute, and Coordinator of Nuvem, the Cloud Computing Lab of LSI/USP. When not in front of a computer, Bruno enjoys time with his family in a little hideout near Sâo Paulo. An amateur in many things - photographer, puppeteer, father - he strives to excel in some of them.
Read more about Bruno Souza

View More author details
Right arrow

Build Trust and Solve Problems with Open Source Projects

The deepest level of trust you can have with other developers is by working together on a project. Open source projects allow you to meet and work with amazing developers and build deep, meaningful relationships that take trust to a new level. This chapter will show you how to do that.

In this chapter, we will cover the following main topics:

  • The value of contributing to open source
  • Selecting an open source project
  • Building trust and getting accepted
  • Making open source a core part of your evolution
  • Bringing value to your company and customers

The value of contributing to open source

The primary value of contributing to open source projects is that it gives you access to awesome software that you can modify for your needs! You also gain the following:

  • Knowledge
  • Skills
  • Opportunities to work on impactful projects
  • Purpose
  • Friendship
  • Opportunities for networking
  • Access to amazing developers
  • A portfolio
  • The ability to build your reputation

When developers talk about open source, they usually mean participating in open source projects or contributing code to libraries or software they use and like.

The definition of open source itself comes from the Open Source Initiative (OSI). It is a set of rules on how to license software in a way that allows people to learn from it by having access to the source code. You can modify the source code for your own purposes and publish the modifications for others. The open source definition creates the basic ground rules that allow all of us...

A word about meritocracy

A lot has been said about open source and how it is a meritocracy. When you hear that, it is easy to assume that it is because the best and top developers are the ones building open source software. That is their merit. But in reality, the meritocracy that is mentioned is basically who is putting in more effort. In open source projects, people that put more work and more focus into the project tend to be the most respected and end up setting the direction of the work.

You may find that this is very positive because it is not about how good you are today that will allow you to join an open source project, but how much effort and focus you are willing to put into it.
The more effort you put in, and the more help you provide, the better you become as a professional and a developer.

Every open source project needs lots of help! Many developers only think about helping by writing code and becoming a committer of the project. But open source projects...

Selecting an open source project

Although there are millions of open source projects, not all of them will be suited for you and your goals, so here are a few things to consider in selecting open source projects you may want to participate in:

  • Work on projects that are related to what you know
  • Work on projects your company uses and depends on
  • Work on projects you are interested in
  • Participate in a foundation (Apache, Eclipse, Linux, etc.)
  • Work on projects your friends are part of
  • Start your own project

Projects you are already using

A good place to start your open source participation is on projects that you are already using. You’re probably using programming languages, libraries, and tools that are open source already. Do any of those interest you? Do you see things that you would like to change or improvements you’d like to make? Starting with a tool or library that you are using will make it much easier for you to look at the...

Building trust and getting accepted

One of the biggest mistakes developers make in trying to participate in open source projects is thinking that an open source project is just there for the taking. Developers may think that just because the source code is available, anyone can just come in and do whatever they want with it. That could not be further from the truth.

An active open source project is developed by a community of people that are very passionate about their code. You could imagine that their project is their little baby. They take care of and protect it. Although open source developers are particularly open and accepting, they need to trust you before you can actually contribute anything.

Imagine if it was one of your projects and a random person that you have never seen before just comes in, makes decisions, changes your project direction, or tells you what you should be doing next. You would probably not be very happy. You would need them to start slowly, make a...

Reading code

Reading code is a fundamental ability for software developers. It is the basic skill that you need for everything in your developer career. Knowing how to read code in different languages and versions, with increasing levels of difficulty, and implement multiple patterns and architecture are critical to your success as a developer and also your ability to contribute effectively to open source projects. This skill – being able to read code – is the basis to help you achieve all the other skills!

As the name implies, the basic freedom that open source gives you is the freedom of reading the source code. Imagine what that means. No matter what you are going through right now in your development, regardless of the language, library, or development problem, there is some piece of source code, somewhere, that you can read.

This skill will give you access to insights, experience, and art and craftsmanship. It is going to help you understand the problem better...

Writing code

Writing code is the skill most associated with software development. It is no doubt the most visible result of your work and the thing that most people associate with contributing to open source. This makes many developers imagine that to practice this skill, you need to write code from scratch. That can work, but it is not the best way. You also need to write code that you can compare with other code.

Refactor code

To really use open source to improve your code-writing skills, you can refactor code. You first use refactoring to understand code better. By breaking down its parts and understanding what each part is doing, you will have a clear vision. You can then try to refactor the code to make it more readable, more efficient, or cleaner. When doing these exercises, you probably will not even contribute the changes back to the projects and just use them to improve your skills. This will help you contribute to the project in the future, since you will better understand...

Delivering code

Another important skill that you should have is delivering code. Understanding the full life cycle of software development will give you superpowers in our industry. This is a very broad set of skills that touches everything from understanding the problem to writing the code to testing and packaging. It will give you skills from delivering and deploying to running and monitoring, not to mention things such as infrastructure as code, zero downtime, cloud deployments, scaling, containers, and CI/CD. You can practice most, if not all, of those skills by participating in open source projects. Here are a few suggestions that would be very helpful to any open source project, and can give you practice and proven real-world experience in delivering code skills.

Code analysis – help with the project quality

We do understand that quality is an overloaded concept and can mean a lot of things to different people. But in terms of improving your skills, any work you...

Solving problems

This brings us to the next big skill, and probably the most important skill as a software developer: solving problems. No doubt that open source projects focus on solving problems, so being part of an open source project will help you improve that skill, but here are a few things you can do to make it even more effective.

Use the project in your current position

The first thing you can do is to use the open source project! Find ways you can use the project in your daily job. Use it as a way to solve problems in your company and your current projects. This is just the obvious. Of course, you can fix problems in the open source project itself. To be amazing at solving problems, you need to be an expert in identifying the correct problem and understanding what is going on. Every open source project has complaints from users where the details are unclear or the user was not able to articulate the issue. When it is not clear to anyone in the development team what...

Sharing – bringing value to your company and customers

The last umbrella skill that we are going to discuss here is sharing. Sharing what you learn is an amazing way to deepen your understanding and improve your learning process. It is also a fantastic way to build your professional reputation. We even have several chapters about different ways of sharing in this book. Using open source is a great way to improve your sharing skills, so here are some ideas that you can implement.

Share what you learn by working in open source

Start by sharing what you’ve learned from everything else that we’ve talked about in this chapter. When you read the source code of a project or you write something, fix a bug, or solve a problem, you will learn things. You should then share what you have learned, even if it is something small. The knowledge you acquired is very important, but just as important is that people see that you learned that from the project! It promotes you...

Delivering value to your company and customers

Participating in open source projects can be extremely interesting and valuable for your career because it helps so much with building your reputation, knowledge, and skills. You should not forget that open source also brings amazing results for your company and customers. Once you are able to start doing this, you can start working on open source in your current job. As we said at the beginning of this chapter, many open source developers get paid to work on open source projects. The secret to doing that is bringing clear value to companies and customers. Next, we will explore a few things that you can do to make sure that the open source project you participate in brings value to your company and customers.

Solve problems faster by adopting open source solutions

A lot of times, companies spend huge effort building frameworks and libraries and solving particular problems. You can try to find an open source project or even a small...

Interview

Josh Juneau

Q: Welcome, Josh Juneau, Java Champion. We are sharing career stories and talking about how developers have advanced in their careers.

Josh, you are someone who’s well known in the community and has had great success in your career and the Java developer community. Bruno and I want to hear from you about your career. Tell us just a little bit about you and your career and what you’re doing now.

A: Well, first, I really appreciate you having me, Heather and Bruno. I’m very honored to be here.

I am an application developer by day. I also am a database administrator; that’s my full-time job. But in my off time, I work a lot in open source, and I also do a lot of authoring: articles, books, and so forth. That’s where I spend most of my time. I also do lots of podcasting – I have a couple of podcasts that I’m a regular on, so I enjoy doing that as well.

Q: Podcasting is fun, and it’s a good platform...

Summary

In this chapter, you learned about the value of open source contributions, how to identify open source projects that are relevant to your career, the steps to get involved and start participating, how to find the time and resources to keep participating, and how you can make open source contributions valuable for your company and your career growth. In the next chapter, we will discuss how to incorporate public speaking to have an impact on your career journey.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Developer Career Masterplan
Published in: Sep 2023Publisher: PacktISBN-13: 9781801818704
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Authors (2)

author image
Heather VanCura

Heather VanCura is a Senior Director at Oracle in the Standards Strategy & Architecture team. She is the Director and Chairperson of the Java Community Process (JCP) program. In this role she leads the organization and chairs the JCP Executive Committee, composed of top global enterprises in the world. She serves as an international speaker, and an organizer of developer events around the world, engaging with open source groups and user groups. She regularly mentors developers at all career levels, leads coding workshops that extend into local communities to inspire young developers from diverse backgrounds, and delivers keynote presentations on these topics, including her signature series: How to Ally for Diversity & Women in Tech. Heather has worked with developers and technology executives for the past twenty years at Oracle, Sun Microsystems and at SCO Unix. She has served on the boards of Dress for Success and FIRST LEGO League NorCal, and regularly volunteers with organizations such as Andela, Rippleworks, Women Who Code, IEEE Women in Engineering, Anita Borg, and Professional BusinessWomen of California.
Read more about Heather VanCura

author image
Bruno Souza

Bruno Souza is a Java Developer and Open Source Evangelist. As founder and coordinator of SouJava (Sociedade de Usuários da Tecnologia Java; Java Technology Users Society) and leader of the Worldwide Java User Groups Community at Java.net, Bruno helped in the creation and organization of hundreds of JUGs worldwide. A Java Developer since the earliest days of the technology, Bruno took part in some of the largest Java projects in Brazil. Bruno is a Principal Consultant at Summa Technologies and has extensive experience in large projects in the Government, finance and service industries. A Cloud Expert at ToolsCloud, he promotes and develops cloud-based systems using Java. Nurturing developer communities is a personal passion, and Bruno worked actively with Java open source communities and projects. Bruno Souza is an Honorary Director of the Open Source Initiative (OSI), President of the innovation-focused Campus Party Institute, and Coordinator of Nuvem, the Cloud Computing Lab of LSI/USP. When not in front of a computer, Bruno enjoys time with his family in a little hideout near Sâo Paulo. An amateur in many things - photographer, puppeteer, father - he strives to excel in some of them.
Read more about Bruno Souza