careers git mozilla open source software

Let’s talk about side projects in software

Last week, I was on a panel about tech careers at the University of Ottawa.  One of the topics that came up again and again was side projects.  What should students be doing outside of work and school projects to showcase their skills for employers?   How many commits should they have in their GitHub activity graph? A lot of the students talked about the very long hours they were working to enhance their skills portfolio. Several of them looked very stressed out regarding this situation. One student mentioned that this was especially difficult since they were working part-time during the school year.

From WOCintechchat stock photos License Creative Commons Attribution 2.0 Generic (CC BY 2.0)

A few weeks ago, a colleague I worked with at a previous company asked me if I was interested in talking about an opportunity at new company where he was working.  I responded that I was happy at my current position and said thanks for thinking of me.  I recently volunteered to become a career mentor for new Canadians and I hadn’t heard of this company before, so I checked out their careers page, thinking they might have some opportunities for people in the program. One of their job descriptions had something like this as a _requirement_ for the position.*

Passionate about software – coding in your spare time

When I see I requirement like this on a job description I immediately think several things about the company’s culture:

  1. They don’t provide time for employees to learn new skills on their own during office hours, or a budget for external training courses.
  2. They are not interested in hiring people who have caregiving responsibilities outside of work such as taking care of kids or elderly relatives.
  3. People with chronic illnesses who may not able to work very long hours will not succeed in this environment.
  4. They probably have high employee turnover, possibly due to burnout.

In summary, diversity and inclusion, and the health of your employees is not a priority.

I know a lot of developers who are do extraordinary work, and work 9-5.  They spent their day getting work done, then go home and spend time with their families and friends.  They have hobbies other than learning the newest shiny framework.  They don’t come in every morning exhausted because the were up until 2am debugging a problem that would be revealed easily to fresh eyes in the morning’s light.

The tech industry has glamourized constant coding, sleep deprivation and a GitHub activity profile as green as a spring meadow.  The young students who are entering our industry have observed the behaviour of their elders and they are emulating us before they start their first full-time job.  The end result is that our industry will continue to fail at becoming more inclusive.

There are many reasons for your GitHub activity graph not to be the exalted rectangle of wall to wall green.

  1. You don’t have a GitHub profile at all.  Many companies consume open source software, but many do not contribute at all and their software is hidden from public view.
  2. You are a senior engineer who reviews code and mentors new engineers more than they write new code yourself.
  3. You take vacations, are on parental or elder-care leave or are taking a mental break due to burnout.
  4. You have multiple jobs due to financial obligations and don’t have time to code in your spare time

If you’re on the bus sitting next to an accountant, do you expect them to do your taxes for you? No.  If you’re a doctor, do you fix broken legs on your way home from work for random people? No.   Why do we have the cultural expectation that you should be working for free as a software developer?

I’ve read enough biographies of tech CEOs/executives to understand that is the path they chose and it is filled with long hours, sleep deprivation and little time with their families.  But for the average developer who is in high demand compared to other professions, why sacrifice so much?

If you are a leader in your organization, you can set the tone for this by giving your employees time to scale up and learn new skills and set reasonable schedules for deliverables.  You can leave work at a reasonable hour, and not send emails and all hours of the night.  Let everyone know that you are leaving early to watch your kid’s school play, or take your cat to the vet.  People emulate the behaviour of their leaders.  If you want to have a diverse and inclusive workforce, and build better products they bring a unique perspective to your business, you have to build a culture that supports them.

Writing code is fun.  Building something to fix a complex problem, watching the tests finally go green and landing in production is one of my favourite things to do. It is addictive, and you always want to do more.  But software is ephemeral. You write it, it’s useful for a while, and then it gets replaced with something new. The time you have with the people you love is limited too.

In the words of Gord Downie and the Tragically Hip,

“No dress rehearsal
This is our life”

The Tragically Hip – Ahead By A Century 

* I’m not trying to say that this particular company is particularly egregious, I see this listed as a requirement all the time.

Note: I ‘ve spent a lot of time learning new things outside of work.  But it should not be a requirement for hiring. Yes, I realize that I work in open source which relies on the work of unpaid contributors and some of the “always be coding” etc mantras stem from open source philosophies.  Ashe Dryden has a fantastic post on this very topic.


1 comment on “Let’s talk about side projects in software

  1. An additional reason for a lack of GitHub activity… most of my own side-projects are small, personal exercises, experiments with languages and frameworks, etc. And I do a lot of that kind of thing, because it interests me – but none of it is on GitHub, because there’s no reason to create public repos and bug tracking systems for small one-developer playground projects.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: