Commit-ing to Open Source on International Women's Day
March 8, 2018
LinkedIn has a longstanding history with and commitment to the open source community. Many of our engineers across the company contribute to LinkedIn-owned projects, as well as projects shared by other technologists. If you’re interested in why we open source, here’s a post from our our Chief Data Officer, Igor Perisic, that helps explain our philosophy. At the end of the day, we want all of our employees to feel fully empowered to be involved in open source projects, whether LinkedIn-driven or not. This is especially important due to the fact that the open source community as a whole is currently lacking in representation and participation of people from diverse backgrounds.
For instance, as found in a GitHub survey from last year, out of the 5,500 respondents, only three percent identified as female. LinkedIn hopes to help bridge this and other gaps by always encouraging any employee who has an interest in open source to become active in the community.
Therefore, in honor of International Women’s Day today, I connected with a few female engineers at LinkedIn who regularly contribute to this community to hear what they’ve learned by writing open source code, in the hopes that it encourages more people to get involved.
This is a great community to participate in as you’re growing and building your skills. As one of my fellow engineers, Neha Pawar, shared about why she loves open source, “This model of coding inculcates a feeling of inclusion and empowers people to work on stuff they like, no matter who they are or where they are.”
I hope you find the concepts below useful as you either begin your work in the open source community or continue to help this community thrive!
Focus on writing readable code
“In an open source project, you are likely to interact with people across the industry, which automatically motivates you to write efficient, clean, consistent, and well-tested code. You always want to make sure that your work is readable and easy to adapt for everyone. I view this as my way of practicing empathy through coding.” – Navina Ramesh, Senior Software Engineer in the Streams Infrastructure organization
“Writing code that’s easily understandable to other people is important in any context, but given a project that is open sourced, I also have to think about structuring my code and documenting it in a way that would also be understandable to people outside of LinkedIn.” – Thao Bach, Software Engineer on the Data UI team
Documentation is key
“[Projects] must include clear comments in the code, change descriptions of pull requests, links between different issues, and user-friendly wiki documentation. In the open source community, you cannot assume that everyone who is reading your code has the same understanding of the issue or same level of acquaintance with the code as your team members do. To allow more people to understand the project and get onboarded, we need to keep better documentation. This does not necessarily mean documenting every detail, however. Documentation might sound easy at first, but it actually requires lots of practice to improve.” – Jamie Sun, Software Engineer on the Data Infrastructure team
“It’s important to create clear and detailed Readmes, javadocs, and comments. If someone wants to use [your project], they will rely solely on your instructions/doc.” – Neha Pawar, Senior Software Engineer in the Data Analytics Infrastructure organization
Technical skill growth
“By contributing to open source projects, I got a chance to learn new languages like Python and Scala. With the help of the open source community, my code is getting reviewed by various people. Their review comments are helping me improve my knowledge in both of these languages. Learning Python helped me to implement deployment scripts and Jenkins jobs very quickly. I also learned functional programming by learning Scala. My reason for choosing any language for any task has improved because of this knowledge.” – Janki Akhani, Senior Software Engineer on the Data Infrastructure team
Renewed focus on security
“‘Act like an owner' is one of our core values at LinkedIn, and through my participation in open source, I have come to learn about the responsibilities of dealing with data that are private and proprietary to LinkedIn. As an owner of my code, I have grown to be aware of safeguarding sensitive data when contributing to open source.” – Thao Bach
“Security is a very essential piece of any product. While contributing to the community, I got an opportunity to understand and implement various authentication mechanisms for user as well as service-to-service interactions. It helps to think beyond your regular work and infrastructure, as your solution is not only used inside your company. It also helped me to think about challenges and edge cases of my solution for various different infrastructures and security requirements.” – Janki Akhani
Design with the community in mind
“I’ve enhanced my skills in writing and designing systems which are modular, reusable, extensible, and decoupled. I learned that it is important to design a system such that a user should be able to take your code and build on top of that; to design a system such that custom and use-case-specific code can be plugged in and is not embedded into the base code. I learned how much flexibility and control we can stitch into the system if we design with a config-driven approach.” – Neha Pawar
Realize the career growth potential
“Open source participation is one of the easiest way to grow your career, as you get visibility beyond your current company and current role. There are plenty of opportunities to host events (like meetups), participate in conferences, and network with peers in the industry. Beyond branding, I believe open sourcing shows LinkedIn’s commitment to help transform its employees.” – Navina Ramesh
“It’s an opportunity to represent yourself. For most projects at work, your code is private. Working on something viewable to the public means showcasing your work and impact on a codebase.” – Thao Bach
“At every stage in your career, it’s always good to keep learning new things. By contributing to the open source community, you get a chance to learn new things from engineers from different companies. Your design, code, and ideas are getting reviewed by various contributors, which helps to expand your knowledge and makes the development process very interesting. It is very helpful for overall career growth. You also get a chance to network with engineers from various companies, which improves your interaction and knowledge of trending skills. It also gives an opportunity to connect with various engineers at any conference and to share knowledge and ideas.” – Janki Akhani
Continuous knowledge sharing
Because of the technical skills honed and team communication skills that are enhanced, each of these women has their own reasons for why contributing to this community is important to them. For many of us, we love that contributing equates to advocating for knowledge sharing. We’ve come to realize that technology progression is most evident when we come together to share expertise, and therefore are able to build new foundations on top of past ones towards better solutions. Additionally, it’s always interesting to see how others tackle some of the same problems we face. Being able to study approaches and code contributed by other experts helps us to make better design choices; it’s always exciting to see what we will be able to build next. And lastly, one of the biggest reasons I personally enjoy contributing to this community is because of the opportunity it provides for learning to confidently engage people of varying degrees of seniority from across the industry, as well as how to balance passion projects in open source with those specific to your current role.
What have you learned from contributing to this community?