Ask HN: How do develop a side project when you have a 40hr/week job?
I am a developer and I have a 40 hr/week job. It is a very good job and I put a lot of effort in it. But I have also my own ideas that I would love to develop, but I am struggling to organize time and material to develop something for me.
I read a lot and have a lot of ideas, about little porjects to test new technologies or new patterns, but never find the time.
I would love to learn the experience and techniques used by someone who have been able do to something like this
130 comments
[ 4.2 ms ] story [ 202 ms ] threadDerek Sivers says a bit about the general problem in this recent interview: http://softwareengineeringdaily.com/2015/10/14/creativity-an...
Time outside the typical 40 hour work week:
Getting up an hour or two earlier than usual.
Spending an hour or two at the end of the night on it.
Same on the weekends, early or late, maybe schedule a 4 hour time on Sat or Sunday afternoon.
Those are really the only three areas to find more time with a 40 hour gig.
Obviously make your main job your priority. Be careful of any IP clauses in your contract if this is building something you want to profit from.
One other possibility, depending on where you work. You could probably use your lunch hour to learn new things, do tutorials. You should probably bring in your own laptop and use your phone's hotspot for this to keep things completely off work hardware/bandwidth.
If it's something you enjoy doing it won't feel like work or like you're missing something.
Make sure you balance this with spending time with family and friends.
I was working full time as an engineer in another field, started doing websites for family and friends, then moved on to developing web applications for clients along with my own side projects during the time slots listed above. It can get tiring along with a 40 hour job. Now I'm consulting full time remote so I work on client work 40 hours a week and use any extra time for my own side projects.
The holidays is a good time to kick off a side project as you'll typically be taking vacation days so you'll have some extra time that you would normally spend commuting, eating lunch, working that you can use for a side project.
Good luck hacking away on your side projects.
So rather than code anything yourself, just give htem requirements that read like a to-do list for yourself, after you've already doen all the theoretical leg-work:
#1.1 to-do: when this form is submitted, pop up this confirmation form:
#1.1.1 Confirmation asking if user wants to leave page? #1.1.1.1 if user clicks yes, redirect them to the link clicked #1.1.1.2 if user clicks no, keep them on page.
#1.1.2 Form submission: when user submits form, run valdation
#1.1.2.1 if the name is not betwene 2 and 30 characters show an error "Name must be between 2 and 30 characters"
#1.1.2.2 if the email address is not in the format (one or more characters or numbers) @-sign (one or more characters or numbers) and contain at least one period after hte @-sign, then error message reads "Please input a valid email address."
and so on and so forth. stuff that makes your eye water regarding how incredibly, uselessly boring it is, like you're an executive and can't even tell your business manager to accept a bid, you must fucking dictate the letter itself.
However, as incredibly annoying as this process is, it takes you approximately half an hour to do a day's worth of work with it. You can review progress every day in half an hour over breakfast.
So, there is your answer regarding how to build a side project while you're working full-time: manage dirt-cheap disposible developers on Odesk or Elance who get off on adding absolutely zero benefit whatsoever of any kind to a project, besides doing exactly what they are told in painstaking detail.
This is being made from a throwaway because I haven't heard this idea expressed and people might not realize that this is the answer. As for my tone/style, I think it's completely wrong for any developer to agree to be in such a role, and the REAL correct solution would be to manage a creative, contributing developer who gets equity in the result and has more free time than you. But what do I know.
(it's not accepting my edits on the original comment, I am trying to change "aren't worth much anywhere" (which sounds like a value judgment) to "don't command a high rate anywhere.")
As a hint, it's pretty probable (if you live in US) that your healthcare financial information is managed by a system that I took part in development while being 2-grade student freelancing at the other side of the Earth. And many my friends did the same.
I've seen the biggest internet websites have their major customer-facing features developed by my friends, yet everybody thinks it was done in California.
As far as side projects, 40 hours a week to work isn't that much. I usually work 50+ and have most of my work life. Lots of people work even more. If you did this you would have at least ten hours a week to work on a side project. Incidentally, I still have spare time. To do things like post this comment. What are you doing with your spare time? Video games? Movies? Facebook? Might be worth looking at. Life is short and you don't get time back.
Start small. Do a little project. Something that takes 8 or 10 hours. Then, with that under your belt tackle something bigger.
http://coworklatam.com/montevideo-uruguay/
The bonus is you get to meet other smart and motivated people too.
I'm trying to build my side project after a 48 hour workweek, and to be honest it's a bit of a struggle.
My plan is to do customer validation first, and if it works, get a small amount of seed investment and go for it.
A clear spec means that I know what all has to be programmed. Decoupling my components means that I can make changes to my business-logic/back-end without having to make changes to my display/front-end, as long as the interface remains the same. Testing means that I can make changes without fear that I'm going to unknowingly break existing features. Quality code means that I can more easily understand the code that I've written after an absence. The upshot is that I always feel comfortable making a few quick changes, pushing commits, even after being away from the code for a few days.
A few concrete tools for writing quality code: write it to be open sourced, write it to be viewed and collaborated upon; use code quality tests like pylint, jshint, code-climate, whatever is appropriate for your language; display your code quality metric badges in your repo, badges for coverage, built-status, etc.
I cut alcohol years ago and tend to go to bed at reasonable hours: the feeling of waking up at 5:30, getting a good workout and two to three hours of work before you even start to get ready for the office is pretty empowering. It feels like you already had a day worth of productivity in.
So, to recap:
1. Don't drink (or drink in moderation). It leads to late nights, difficult mornings and wasted hours on (often) empty discussions/interactions.
2. Go to bed early. Avoid screens in the bedroom (they keep you awake) and work out in the morning (helps to feel tired at the end of the day).
3. Wake up early.
Where there's a will, there is a way.
Usually, 10:30 or 11:00 (PM), especially in the summer. I also found out that I sleep in two chunks when I'm on a proper schedule. I first thought I had a problem until I read about segmented sleep [1].
It seems that there is evidence that before the industrial revolution (and ubiquitous artificial lighting), people would simply wake up in the middle of the night, read, eat or be intimate for 30 minutes and then go back to sleep.
[1]: https://en.wikipedia.org/wiki/Segmented_sleep
But we're all wired to sleep at night. Once I started going to bed early, waking up early got easier first, and enjoyable later.
So no, I think I would still recommend people to try and sleep early to wake up early.
In college I struggled to wake up in time for 8am classes (that I had no interest in taking). Not surprisingly, a big part of the problem is that I was staying up until 11, or 2, or 4 every night. My typical schedule now (29 years old) is asleep around 9, up at 4:30 and gym 5-6:30 or so. Weekends are only an hour or so later than that, and it's been that way since about 3 years ago.
My point is I think it is as much why you're waking up early as it is a "natural rhythm" or something like that. I would much rather go to the gym at 5:30 than to a liberal arts gen ed class at 8:00. Yes it's possible my circadian clock shifted I suppose, but I think it's as much desire or habit as anything else.
Has there been any scientific evidence suggesting this is the case?
Can't find it after quick googling, but I've read about a study which claims that there are no such things as "night owl persons", but it didn't convince me as it was talking about extreme cases as staying up all night long and sleep during the whole day.
But there was also some evidence regarding the era before modern technology and electricity about the time when people go to sleep naturally. which is actually surprisingly due to instead of spending time on screens they spent it socially or with other activities and still ended up in bed quite a bit later
Yes. http://www.telegraph.co.uk/news/science/science-news/1185131...
Before the age of 55, the circadian rhythms of adults are completely out of sync with normal 9-to-5 working hours, which poses a "serious threat" to performance, mood and mental health.
Dr Paul Kelley, of Oxford University, said there was a need for a huge societal change to move work and school starting times to fit with the natural body clock of humans.
Experiments studying circadian rhythms have shown that the average 10-year-old will not start focussing properly for academic work before 8.30am. Similarly, a 16-year-old should start at 10am for best results and university students should start at 11am.
I consider it an upgrade of quality over quantity ;-)
I agree you should avoid working in the bedroom tho, or you might find it harder to sleep.
Weekends are for chores and socialising.
Edit: As far as I know this is a very standard clause in tech company employment contracts, and is perhaps the legal default even in the absence of such a clause. For example, see "Employed to invent" under http://www.nolo.com/legal-encyclopedia/pre-invention-assignm... .
California is an exception to the above: here employees may retain the rights to IP they create on their own time, not using resources of their employer (including company laptop), and, importantly, not in the same line of business as their employer. In the tech field, the "same line of business" caveat can be killer.
When you have some strong leads, you approach your employer about renegotiating that part of your employment contract. Don't threaten to quit or hold those leads over your employer's head. Express that some of your colleagues with other companies are explicitly allowed to own all of their projects developed during their own time.
If that fails, follow through on those leads. Don't work on any personal projects until you have officially left your current job.
http://www.nolo.com/legal-encyclopedia/who-owns-patent-right...
1. Renogiate with your employer: but beware, many employers with this clause in it are unlikely to remove it, plus even bringing up the possibility will make an independent thought alarm go off in management/your HR file. I myself do not seriously suggest this strategy. It also makes it almost impossible to then implement strategy 3, as record of the request is itself something that may link your future work back to this company.
2. Quit/find another employer.
3. Lie. Work on your own project somehow, and make sure nothing can concretely link it back to your time working with said company. Do this until you can implement strategy 2.
If that isn't an option, at least be head-hunted. Then you can negotiate much of the contract.
There are 168 hours in a week. If you work 40 of them (+ 10 hours for inconvenient lunch breaks and commuting) and sleep 56 of them, you have 62 hours left. There you go. Figure out where those 62 hours are and spend them wisely. Organize your schedule so you have enough hours when and where you need them.
B (the right-brain/emotional approach):
Yes, you have ~62 hours from the above example, but you probably want a social life, need to eat and exercise, and it would certainly lead to burnout if you spent every free moment cramming side projects where you can. Instead of (or in addition to) managing time, manage your mental energy. Find a pace and rhythm that work for you to make regular progress on projects you deem worthwhile.
It's very important that you know yourself for this to work. Here's what has worked for me:
* Go to the gym on lunch breaks during the week. I reclaim that pesky break in the day, stay healthy, and generally feel refreshed and energized after a visit.
* It's cliched, but I don't have a cable subscription. (I spend my time on HN instead, so I suppose it's a wash)
* Absolutely make time for guilt-free relaxing. For me relaxing is going on a hike or camping trip, grabbing dinner with friends, or playing an instrument.
* Spend time reading. There is a lot of good material on time management or lifestyle design. What's important is that you read and learn to isolate the signal of what matters to you from the noise (and there is a lot of noise).
* Live by this mantra, "If it matters to you, then you'll find a way. If it doesn't you'll find an excuse."
This. If you engage in a guilt-laden form, it's not really relaxation, and thus has little utility—rendering it a waste of time.
It's probably safe to say there's a large overlap with procrastination.
YMMV and I've known people who regularly put in 35-40 hours of side project work on top of a 40+ hour job, but they've certainly been few and far between in my experience.
The TV thing is a must tho. I don't have a TV at all, the gogglebox is licensed to sit down and watch. You even end up watching re-runs, ads etc. so it's less efficient than YouTube, even factoring in all the shit on YouTube..
If you don't relax enough though, you just end up crashing, in an unscheduled manner... I'll not though, I don't consider reading that relaxing - It still requires a lot of thinking, for technical reads anyway, plus the actual process of words-to-brain-concepts translation is surprisingly exhausting as well...
On the last bullet, My brains seems to care more about unimportant distractions than important things. I Do have to watch my time...
Start freelancing, quit your job, and move to a cheaper country where you can survive on something like 22 hours of billable work a month (+ business development). Then spend the rest of your time working on your stuff, or whatever you want to do! No sleep deprivation is required, you can still have a life, and you don't need to rigidly structure your time. It's a decent way to keep stress levels down too which yields more productivity!
It does help if you have some savings as a buffer too!
I've met really smart English-speaking developers from other countries (namely Brazil), and I didn't get the impression that they can laze around and work 22 hour weeks to put food on the table and live comfortably.
Perhaps it can work as a temporary thing, like moving around for a year or two, while retaining a home base in your developed country of origin...
If you live in a cheap country and earn money in a more affluent one, you don't need to work as many hours. If you choose to earn money in the local market, you'll end up replacing one 40 hour work week for another. Your Brazilian buddies likely work locally which is why they have similar time constraints as someone living and working in NYC would do.
You also don't keep a homebase in your country of origin because that increases your expenses! It really requires getting over the mentality that the country you were born in has to be your home; it doesn't.
I live in the center of Prague right now. I used to live in London. My expenses all tolled come to around 22,000Kč/month, although I could do it on less. That's roughly £600/US$850/€800. The number of billable hours required to maintain this lifestyle isn't much. I'm also vastly happier here than I was in London.
My suggestion is a method of abandoning a full time job if that full time job is getting in the way of more important goals and aspirations. Something has to give, of course, and cutting expenses in a way that isn't detrimental to happiness is one way to do it.
I acknowledge this advice isn't for everyone. It's like going to the gym: some people don't want to do it, some people can't do it, and some people won't do it despite good intentions. Also, not everybody can do it at the same time!
The fact I don't speak Czech is a very rarely a barrier. Sometimes if I'm in the grocery store and I'm not entirely sure what I'm buying I have to use Google Translate. I struggled once in the post office when trying to mail something internationally. I probably should learn conversational Czech, but I'm more interested in learning Spanish.
The nightlife in Prague is awesome and my social life is ideal.
As another comment was suggesting, key is to find work for client who is based in "rich" country (for me right now that's US, some of the Europe) and is ok with you working remotely.
If I wanted to work in current location, I'd have to take significant salary cut + start pulling those mentioned 40h/week
I moved to Cambodia 3 years ago, spending ~500$ per month on average so far. It's not for everyone of course, but I truly don't care about things that most others would consider necessities. All I need is an internet connection and healthy food, both of which are readily available here.
It's easy to find a clean apartment for 100$ per month in Phnom Penh, that is if you wouldn't be too horrified to actually live among the local people, like 95% of the expats here are.
1: Break down your ideas into smaller ship-able chunks
2: Once you've something presentable, start getting market feedback to see if it would make sense going all in
3: If you don't see much interest, don't give up hope, sometimes it is better communication sometimes pivoting required. This is where you'd decide where you'd like to go. I found reddit to be tremendously helpful in getting feedback.
4: This probably is special case for me but I was giving up on software and getting little depressed / overwhelmed with my current stage in life. I like to do artsy stuff once in a while and so I started getsatvik.com, no-one has bought anything yet but this helps me learn marketing, copywriting and understanding how to sell. So think what you'd like to do as a hobby maybe combining that with your ideas could keep you going.
5: I find teaching people is also a great motivator. I now run a regular meetup in my city, learn some new concepts every month, teach them to other people. I don't get paid for any of this but helps to keep me sane.
6: Sometimes having virtual buddies also help. I now have a 'friend' on reddit who helps me with quick feedback / writing critique (as English isn't my first language) and I help him with doing some programming / teaching.
7: Nothing new or revolutionary here but sometimes connecting with like-minded individuals and organizing an accountability group also helps. If you'd like to connect, I'm happy to be your virtual-buddy!
Imagine someone asks how do I train to run a marathon?
Start by running 1 minute a day and add a minute every few days, after 2-3 years you'll be running long enough to run a marathon.
There is no substitute for doing, there are no shortcuts, there is no miracle pill (well, ADHD meds may help...)
You must actively decide that your sideprojects are more important than whatever else you are doing, speaking of which now that my two kids are asleep, and my fiance is reading, it's time for me to stop commenting on HN and start working on my side project.
Time is not something that is lost or found, you have a fixed finite amount of it, and it is continually decreasing the only thing you can do is choose what you do with it.
Even if you are capable of keeping that up, it might be better to increase distance, otherwise you might be just slowing down, making no progress...
But any good side hack will just make the time for itself. It's that stuff you can't not do so you stay up slightly late and will be slightly more tired at work but hey, so what, you'll feel so good about it that you can't wait till the work day is over and you can continue again. Then it'll fade away and you'll get more interested in work again until one night you figure out where you left with the side project and hey, there you go again.
Personally, I've never been in such a good job that I would always have interesting things to do. So, I've observed that my home-hacking is strictly proportional to the amount of boring stuff at work. I need my dose of programming and if I can't get it at work, I'll get it at home. This kind of takes care of side projects on its own.
Accept that you can probably only get ~8-12hrs of good work on side projects done a week (except when you're really inspired, or when you can spend a weekend on it).
I started SocketCluster (http://socketcluster.io/) on the side about 2 years ago while working 45+ hours a week for a startup.
I still spend about 10 to 20 hours a week on it. It's been a great learning experience - The kind of experience that's impossible to get from just being a full-time developer.
Other side projects - work together with a friend or perhaps hire someone so you can split the workload for something you want to build?
Organise your free time in a way you have time for extra projects - ie skip TV, cut down on social media etc. But you have to really love the side project to be able to pull it through
For me, the challenge in understanding my own choices, is understanding the root of those choices. It can help if you have a neutral third party to talk to about why you choose to do X rather than Y, but barring that there are other techniques you can use.
One is to make an appointment to spend 1 hr a week on some project. When I do this I start with a fresh notebook and pick a time either before I go, or after I get home, from the office to spend on this project. Then when the time comes the first hour is dedicated to writing down in the notebook the goal of what I'm trying to do, why I'm trying to do it, and the things that will have to be true before I can achieve that goal. After an hour I close the notebook and go about my life. The only rule is that during that hour I work on the project and nothing else, and if unavoidedly interrupted I make up the time lost that same day.
The things that make that possible are; It is only an hour, same as watching a TV show or reading through the front page, the notebook retains my mental state between sessions so I don't start out wondering what the heck I was doing last week and what needed to be done.
I found that for me what I really hated was spending an hour coming up to speed on a project and then only having a few minutes to work on it. Very unproductive and very demotivating. But with a process to stop and restart a project in hand, it takes away the restart lag and so I can be productive nearly right away (perhaps 10 minutes reviewing my closing notes from the previous session). Also if my check list is good then I have a good idea of how close I am to the goal.
Time is a finite resource, and learning to budget it will serve you well throughout your career.
The goal though isn't just 52 hours, its a way of testing your desire to work on something against the call of other things.
People, like the author, feel they have no time to do anything else. But they also generally feel that they can spend an hour doing something like watch a TV show or attend some event. So you commit to 1 hour to work on your project a week. And if you are really interested in it and motivated you will find you spend more than that on it. However if you find you can't keep a commitment even to just a single hour, then that is a good indication that it isn't a priority and you should probably accept that and move on.
My basic advice would be "set up a sustainable business that doesn't take up all your time and takes care of your basic income requirements, then develop an idea once you're financially independent enough to do so".
Maxing out your time now, while you're working, is the most stressful way to do anything. Developing something based on your own idea is the most risky way of doing anything.
Rather that focusing on your own ideas, focus on other people's problems, then figure out how to get paid to solve them.
Reduce your bottom line agressively to maximise the chances you can sustain yourself without taking up all your time.
Solve problems and get paid to do it, then systemise that and get other people to do the work. Now you have a business that doesn't take up all your time, but which takes care of your basic income requirements.
You can choose to spin a product off based on that, ie. by automating that business and selling it as a product, or you could use a product extension of that business to increase revenue, or you could just work on something completely tangential.
Basically, I work 1-2 hours in the mornings, not every day but a few times a week, either after I drop my daughter off at school, or before they wake up. Some nights I work after they go to bed (I am working on a side project right now, it's 10:20pm on a Sunday). Sometimes I stay up late if I can deal with being a little tired the next day. I'd say I get on average about 5 hrs a week out of this. Then, sometimes I carve out weekend days where I get 8-10hrs of work. Other days I'll watch the kids and let my wife go out to a movie or out with her friends to make up for it.
Slow and steady progress. Have realistic expectations. Just chip away at it.
I highly recommend you to read this talk script by Chris Wanstrath[1], one of GitHub's founders. Two of his suggestions:
- Turn off (or lower the frequency of) reading news/RSS/Twitter.
- Do a bit contribution to side project every day and get a streak. I feel John Resig's GitHub profile illustrates the point best[2].
I'm following these two suggestions on and off for a while, but I want to really do them for the whole year 2016.
And my suggestion is to go to some hackathons. You'll be amazed at how much you can get done during a weekend without distractions. Plus you meet a lot of awesome people, sharpen your skills and win prizes.
[0]: http://pwu.me/projects/
[1]: https://gist.github.com/defunkt/6443
[2]: https://github.com/jeresig
You're assuming that the OP doesn't have a family or other responsibilities. I suspect that you'll look back on junior college, even with 21 credits and mandatory club events, as a time of carefree existence and plentiful free time.