Skip to content
The Apache Software Foundation Blog The Apache Software Foundation Blog
  • The Foundation
  • Projects
  • People
  • Get Involved
  • Support the ASF
  • Download

The Apache Software Foundation Blog
  1. Home
  2. Success at Apache: Contributing to Open Source even with a high-pressure job

Success at Apache: Contributing to Open Source even with a high-pressure job

Posted by Sally February 26, 2018SuccessAtApache

by Anthony Shaw

I believe in the mission of the ASF for many reasons, but the first is the reason why I got into open-source software- free and open access to knowledge.

Back when I was age 12 (1998), I started to learn to program in dBase 4. dBase 4 and the compiler Clipper were not cheap, especially for a $5-a-week paper-round. The box with the software was unwanted by a local company and it came with the manuals. We didn’t have the internet at home yet so I was left to go by the manual, and what I could find from second-hand stores and office cleanout sales. For the next decade, I learnt to case based on what I could find, borrow and scavange until in 2002 when I got a copy of Linux and assembled a couple of machines from unwanted parts from the village computer store.
This is where I discovered free and open-source software and really started to build on my coding skills.
My goals were to learn and to share what I’d learnt that others could get to where they needed to go faster. It also helped that software skills were well sought-after in Europe so it set off me in a career in IT.
20 years after I learnt to code, I’ve moved out of software-engineering and into Learning and Development at Dimension Data for a 29,000 person technology company that operates in 49 countries across the world. My current roles involves about 3-months a year of travel (15 countries typically), managing a department of over 30 people spread across 4 countries and 4 timezones and delivering on large and complex initiatives with high-degrees of change and short deadlines.
In 2016 I made a choice after getting promoted into my current role that I would continue to contribute to the open-source projects I’d worked on for years. But I set myself 3 rules;
1. I would not take away from time with my family
2. I would not interfere with my work commitments
3. I would look after my health
My open-source contributions

For the past 4 years I’ve made around 1,000-2,000 contributions annually. These have consisted of bug fixes, submissions, and to around 50 projects.

The largest contributions I’ve made have been to Apache Libcloud, a multi-cloud abstraction library written in Python. Initially this was driven by a work commitment to contribute an integration with the cloud API we’d designed, but I soon realised the power of the library. Going back to my original goal of free and open access to knowledge, I’d seen an alarming trend in the computing world. Proprietary APIs were driving what is known in the industry as "stickiness" or to be frank, lock-in.

Cloud lock-in means that anyone without access to a reliable network, money or willing to sign up to these contracts is being pushed out of advances in technology. I know developers that are students, in remote areas such as rural Australia, Asia and Africa, or those who simply have little money.

Apache Libcloud’s design means that you can design applications which can be deployed to OSS platforms like Apache CloudStack and OpenStack.
After finishing the work driver around 100 hours developing a container abstraction layer for Apache Libcloud that meant that developers could write automation for OSS platforms like Kubernetes using the same API as you would with a public cloud provider.
This was all whilst managing family time, work commitment and my health.
These are my 3 tips for maintaining contributions with a high-pressure job:
1. Pick a project that you care about
This is the most important, something that just sparks your curiosity is good fun, but long term interest often dwindles. I’ve been victim of "ooh shiny thing" many times in the past, but as my career has taken off, I’ve had to develop the discipline to stop myself from writing my own scripting language, or building an automated sprinkler system from scratch. I stop and remind myself that I might have the time this second, but what about next week and next month? Stop and prioritise.
Prioritise projects that mean something to you.
The 2 OSS projects I commit the most to are Apache Libcloud and SaltStack. I believe in Apache Libcloud’s mission of giving open-access to cloud platforms. My SaltStack contributions have been focused around cloud abstraction, networking API abstraction and other fixes and utilities that make it easier for developers and end-users.
The difference between picking something shiny and something you believe in is that long-term you commit more and you find it easier to jump in and help when you can. But how do you find the time?
2. Choosing your tasks wisely and making time
I get asked this question all the time, "how do you find the time". When I try and convince people to contribute to OSS the response is always about time.
Get rid of the things that don’t add value
If you can afford to, hire help to give you back time in your week. Not only does open-source help with your skills and knowledge, but it increases your value to a potential employer. Hiring someone to blow the leaves, or help with the chores once a week doesn’t need to cost a lot, but if you work out how much value you can get back from that time it often makes sense.
Another thing I’ve been strict about is binge-watching TV series and gaming. Playing 100-hours of the latest game might be fun, but I find developing more rewarding in the medium-to-long term. Find ways to unwind that don’t consume so much time, like meditation, exercise, or reading.
But, if you do need to put your feet up and watch some TV for a few hours, don’t feel guilty about it. 
Work smart, not hard
When I do sit down to contribute something, it’ll have been carefully planned and thought through what I’m going to do, what I’m going to test and how I’m going to structure it. I try and complete tasks quickly, with foresight and a goal. Once I’ve completed this 1 module, with tests, I’ll submit my contribution. Don’t try and refactor the whole project over a weekend. Keep it simple.
But we all know sometimes the best plans go out the window. If you find yourself going down one of those rabbit holes, where you can’t get something to compile or you can’t debug one of those zombie bugs we love so much as developers.

Stop yourself.

You can easily sit until 3am banging your head against the wall trying to figure it out. This was my advice when I used to manage development teams. If you get stuck, take a break, ask for help and if that still doesn’t work, move onto something else. 

Sometimes I pause working on a task if I can’t figure it out. Pause for an hour, a week, or even a whole year. When you have one of those "aha" moments, you go back in and finish the job.
It saves time, it delivers better software and it’s a good skill to have as a developer.
Find time
A contribution comes down to 3 things:
1. An idea
2. An understanding
3. A "change", like a fix, feature, test, code-review, documentation etc.
The ideas come to me through reading, listening to users or looking at bug submissions. I do this as and when I have a spare minute. This is normally on my lunch break, when I’m waiting for someone or something. 
The time for understanding I get by listening to podcasts and talking to people at conferences. I get a few hours a week in the car and I spend time doing some chores. During that time I always have headphones on to listen the newest Python podcast or OSS update.
The time to sit down and write, code, or test comes for me on the plane (where I’m writing this blog post!). Last year I did enough miles in the air to fly around the world 8 times, most of that time was spent coding, relaxing or sleeping. Aside from that, time spent in airport lounges, on the train or waiting for people I’ll whip out my laptop. Any plane that has Wi-Fi I can push changes, else the minute we land I’ll have a laptop open and running git push.
Weekend-time is off limits unless I’m travelling or I’m alone. That’s rule 1 — do not take away from time with the family.
3. Managing your workload and avoiding burnout
There are 2 components to this, managing your work commitment and managing your contributions. You need to do both to succeed. 
It’s ok to stop and take a break. There is always a pull-request to merge, a bug to inspect, and an email from an end-user. If you need to take a break for a while, talk to the team, ask for help and be frank. We’re all in the same boat, contribution is optional. 
So many times I see people contribution feeling like they have a complete obligation to test and fix bugs at 2am 
and then go to work at 8am. This is normally because they care about the project, they care about quality and they care about their reputation but sometimes you need to step back.
A strong project community will step up and help. If you know that work is going to be tough for the next few months, tell the team and set yourself a limit. Wind back for a bit until things calm down. 
Managing work commitments is tough, because there are often financial consequences (or at least a perception of them).
After 7 hours, you’re not really adding value. I used to have a lounge-chair next to my desk and now I have a hammock as I work from home. After a few hours of solid concentration I’ll happily go and sit down and do nothing for an hour. Your brain needs a break, sure you’ll get the odd "working hard" jab from a passer by but I’m working smarter not harder. Once I’m refreshed I’ll finish the next task about 30-40% quicker, to a better level of quality and insight. On the occasion I’ve done 12-14 hour work days, my brain is shutting down to conserve energy and your critical thinking is the first thing to switch off. Followed by logical thinking, this is where you make mistakes and deliver work that is less than a quality you’d normally expect.
I live close to the beach so my time out is going for a swim in the ocean or spending a bit of time with my family. As a manager I also see a responsibility to make it clear that it’s encouraged to step back and recharge. Just in our chat-channel to say that I’ll be offline for a couple of hours as I’m going to the beach mid-afternoon. I don’t feel guilty about it and I hope they do the same.
Learn how to say no and don’t feel guilty about it. When I coach people on this I ask, "who asked you to do this? Was no an option? What value is there in delivering this? What is consequence of not doing it? Who else could do it?"
Everyone wants to be helpful and indispensible, but your reliability is just as important to your reputation and what you deliver. 
Conclusion

Look after your health, be smart with your time and contribute for a cause.

Anthony Shaw is the Group Director of Innovation and Talent Development at Dimension Data, an NTT company. Anthony is an open-source advocate, member of the Apache Software Foundation and Python Software Foundation and active contributor to over 20 open-source projects including Apache Libcloud and SaltStack. At Dimension Data, Anthony is driving digital transformation for Dimension Data’s global clients across 50 countries and 30,000 employees. Key initiatives are software skills, automation, DevOps and Cloud. Anthony is based in Sydney, Australia and blogs about skills, software and automation to 170,000 readers annually.

= = =

"Success at Apache" is a monthly blog series that focuses on the processes behind why the ASF "just works". 1) Project Independence https://s.apache.org/CE0V 2) All Carrot and No Stick https://s.apache.org/ykoG 3) Asynchronous Decision Making https://s.apache.org/PMvk 4) Rule of the Makers https://s.apache.org/yFgQ 5) JFDI –the unconditional love of contributors https://s.apache.org/4pjM 6) Meritocracy and Me https://s.apache.org/tQQh 7) Learning to Build a Stronger Community https://s.apache.org/x9Be 8) Meritocracy. https://s.apache.org/DiEo 9) Lowering Barriers to Open Innovation https://s.apache.org/dAlg 10) Scratch your own itch. https://s.apache.org/Apah 11) What a Long Strange (and Great) Trip It’s Been https://s.apache.org/gVuN 12) A Newbie’s Narrative https://s.apache.org/A72H 13) Contributing to Open Source even with a high-pressure job https://s.apache.org/lM9O

# # # 

Post navigation

Previous: The Apache News Round-up: week ending 23 February 2018
Next: The Apache News Round-up: week ending 2 March 2018

Recent Posts

  • AI and Open Source: Expanding Apache Airflow’s Global Impact Through Collaboration
  • ASF Plus One Newsletter: July 2025
  • First-Time ASF Contributors Help Foster Long-Term Sustainability of Open Source Projects Through Code Writing  
  • The Apache Software Foundation Thanks Myrle Krantz for Her Service as VP Infrastructure
  • How Sponsors Help ASF Steward Open Source for the Public Good

Categories

  • Apache Incubator
  • Community
  • Events
  • First Contributions
  • Foundation
  • Plus One Newsletter
  • Press Releases
  • Projects
  • Roundups
  • Security
  • SuccessAtApache
  • Uncategorized

Archives

  • July 2025
  • June 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • July 2013
  • June 2013
  • April 2013
  • March 2013
  • January 2013
  • December 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • September 2009
  • August 2009
  • July 2009
  • May 2009
  • April 2009
  • March 2009
  • September 2000

The Apache Software Foundation Blog © 2025 All rights reserved.

Powered by WordPress.com. Theme by Arinio Themes