Are you contributing to OS after work? This seems difficult to me too, as I have family and friends and also need time to unwind and relax.
It's a myth that in order to be a good software engineer you have to spend every free moment coding or that you need to be an open source contributor.
It's also a myth that all or even most employers will ignore or ding you if you have no contributions.
If you want it enough for yourself and for its own sake, schedule one evening (or weekend afternoon) a week for it - just as you would schedule one evening a week for date night or for volunteer work or for anything else you care enough about. Treat it as similarly inviolable.
That goes for anything outside work you want badly enough - learning to play the flute; writing a memoir; whatever.
I'm kind of annoyed at how simple you just made this sound (and it is) but I somehow overlooked it. I seem to always be putting stuff like that off for some huge block of time that of course never comes.
Thanks for giving me some perspective.
Good luck!
It does not matter if I am unable to finish a task, because I'll be working on it during the next hacker space meetup. Yes, oftentimes it is slow going, particularly when we're having fun, but it gives me two clear structured time slots a week to work on my projects.
Twice a week we open the space for visitors and regular participants. We try to be as open as possible; everyone is welcome to join up whenever they feel like it. There are no restrictions regarding participation or contribution. If people want to, they can make a small donation but it isn't required. At our meetings there is free coffee, tea, and beer, but everyone is welcome to bring other stuff as well. Donations in the form of drinks or food or tools are also welcome.
We have about 15 participants that show up regularly, and about 50 or so that show up now and then. I think we have had a couple of 100 visitors that did not return or only once or so, particularly when we organise special events.
Basically, people just show up and start working on their own projects. Somehow we have trouble starting communal projects, probably because it is up to the hackers themselves to keep it going or not. We try to create some sort of free-style atmosphere where everything can be supported, but there is no pressure to perform or finish. Most often, when a couple of hackers show up, it becomes more of a social gathering than a work place. That is always a nice end of the evening.
Furthermore, we also support other like-minded clubs to have their meetings at our space for free--we also have a large canteen, and a couple of meeting rooms. We have collected about four separate clubs that meet up about once a month or so. This is great as it results in some sort of cross-pollination.
After a couple of years we created an official foundation to make renting and paying things easier. It has a board, which has one board meeting a year of about an hour or two. So, bureaucratically, it does not take much time.
You should ask your manager. First identify what you'd work on, then make an argument for how improving it would be good for the company as well as the public, and finally (if needed) try to sell them on the PR and recruiting benefit to the company. Propose a specific chunk of time for it, so your manager doesn't have to worry about you disappearing down a rabbit hole. (I might suggest the last 4 hours of the week, when not much gets done anyway.)
If you work for a larger company there may be policies around this, and they are likely to make it more difficult. But as a developer, you only need your manager's approval.
If you work for a smaller company you'll have a much easier time selling the idea. And if it's really important to you, consider working for a company that actively supports this.
1. Help the managers realize that you're probably saving 1000s of hours monthly by using existing open source software. The least you can do (as a company) is to give few hours back to the community.
2. Sometimes it's about "can we open-source this tool/work/whatever?" or "does this give our competitors advantage?". Make sure you think this through before talking to the manager; I got a couple of internal tools open-sourced when I argued that even though it does advance our competitors if we'd publish a great tool, it also positions us as a company as the leaders of the genre (helping in recruitment, sales, etc).
3. "Does it benefit the company?" - Managers love to see the company logo in the project. So ask yourself if you're willing to trade some publicity of the company (e.g. "powered by YourCompany" badge, "supported by YourCompany" in the README.md, or moving the Github project under your company's account) for some hours that would be allocated for you to work on the project.
I have a full time job and two small kids. I'm usually out of the house with the family on weekends, and after work, I sometimes play video games or read manga. I rarely ever attend meetups or hackatons because I live and work uptown and frankly don't have time to be driving downtown.
Yet, I still find time to work on my project (usually after the kids have gone to bed). I used to also do it on the commute when I took transit to work.
There's really no real secret to doing open source. Working on my project is something I truly enjoy doing, so I often "stew" on problems and next steps while driving or eating or before falling sleep, and on the nights I feel like working on the project, I just sit down and do. If sitting down to do open source feels like a chore, then it probably isn't for you (and there's nothing wrong with that!)
Like anything else that might get stalled by procrastination, every time you sit down to work, you just have to pick some small thing to complete, so that you can get into a roll.
Working on open source to scratch an itch is also a good way to incorporate open source into your day job.
Did tons of open source at work. A bulk of my open source early on was fixing gulp, grunt and jquery plugins that would often break when API's changed.
To get your foot in the door, start by patching other people's projects. That can be as simple as a typo or adding docs initially.
On any project, the first thing I do is almost always low hanging fruit. I clone it and try to build it from source on OS X, Debian, FreeBSD and fix anything wrong with the build system or tests. Often just right there I can get a few patches in or segue it into a larger fix [1] [2]
I built up from doing small stuff to then doing big things, and eventually my own projects like tmuxp [3]. Small stuff means you get an opportunity to lurk and understand the codebase, tests and contribution guidelines.
You can also find a mentor. Open source programmers are always looking for a protege who is passionate about the codebase. Hang out on IRC with them and say hi. Look at the milestones to see if there's any quick wins to get started with. If you work at a company that uses the project, be sure to mention it. :)
[1]: https://github.com/python-cmake-buildsystem/python-cmake-bui... [2]: https://github.com/aseprite/aseprite/commits?author=tony [3]: https://tmuxp.git-pull.com
Also, I'll often briefly open up some code at work while I'm eating lunch just to get my mind going on it. A quick scan of the structure allows me to then break away from the computer to walk/think/socialize while my subconscious mind chews on whatever the problem is. Whenever I find a free chunk of time, I'll already have a rough idea of what I can do to push that needle forward. It's then just a matter of doing it!
There is no shame in not contributing to open source - most developers don't do much beyond using it. There is also no shame in failing to bring new insight. I would say that make sure that it is something you enjoy doing, because otherwise it will tax your mind some to force yourself to make the effort.
Also, one my clients is interested in open-sourcing one of my projects. I'm excited about that, but it's not the same as "finding the time."
I'm not going to work on anything remotely work-related in my spare time, though. I'm not interested enough in the work I do for my employer to also make it my after-hours hobby.
usually around dinner time (before or after dinner).
my problem is not that I don't have time, but that I don't have a focus. I do a little bit this and that.