My problem is that I have a full time job. When I come home at night I want to cook dinner, run, socialize, drink a beer with a friend, or work on an art project. I don't particularly want to configure Ansible or read the OpenVPN docs.
At most I can get 3-5 hours of productive work per week on this project before I start getting really irritable.
I'm not a terribly skilled web designer so I feel like contract work isn't really a feasible option.
So I'm stuck with a chicken and egg scenario. I could make huge strides on the side project if I got funding to quit my job, but I can't get funding without an already working product.
I've considered quitting my job and diving into it for a few months. I have savings but this seems foolishly risky to me.
Maybe I just need to be more disciplined.
If anyone has been in a similar situation, I would greatly appreciate advice.
You can't have it all. A wife & kids, a full time job, a social life and an open source hacker reputation. Many of the biggest names in open source have none of those other things.
One of the things I noticed at Sun early on it its life were that there were "types" of folks, people who were so invested in their work lives that they had no family (or in many cases lost their family) and people who balanced out family with work. Folks in the latter camp invariably were less well rewarded than those in the former camp. I found myself slipping into that "work is everything camp" and consciously chose not to go there, knowing it would limit the eventual arc of my career. I have never regretted that choice and am still happily married with kids I know and who know me, long after Sun has faded into history.
It was a tough call to make. I talked it over with my wife (we were thinking about kids but didn't have any yet).
I have exactly this problem: NOT ENOUGH TIME. Beyond my 40 hr/week programming job, I play or coach football (depending on the season). I'm a hobby artist but I honestly don't do much art anymore due to time constraints. I also joined the competitive Smash scene a while back but realized that I couldn't invest the time it takes to get good.
I completely agree: you can't have it all. You know that college saying: sleep, grade, friends, pick two? Well I chose sleep and grades. (Not to say that I didn't have friends, but I ended up being THAT friend that never really commits to anything. "I'll see if I have time.")
Post-college time is still my greatest struggle. I don't play Smash that much anymore because of time. There a lot of video games that I think, "Man, I could get really good at this game, but I don't have the time for it. Ugh." Right now I'm playing through the Mass Effect series for the second time. ME2 & 3 will probably be the only games I beat in 2015.
I do many of the things mentioned in this thread. Drop off laundry service. I can cook but I've gotten into the terrible habit of eating out. I spend way too much money on food! Most days I'm so mentally drained that I'd honestly rather eat some ramen than plan out a nice meal.
My two best investments in the kitchen are 1) George Foreman Grill, 2) fancy Japanese rice cooker.
I am very much looking forward to medical school this fall where I'll have more flexibility in my schedule.
You made me stop and consider my own life and what I do with it. I don't have it all -- in fact, I have that "side project" (open source hacker reputation) that's languished for a long time and I've always felt bad about it. But I have a demanding job, a wife (no kids), and my social life and leisure time is very important to me. But now I've, mostly, made peace with that fact.
You really do have to shut out the rest of your life if you want to make a serious run at a project. When you are cramming a side project into you life, you really can "work" 80 hour weeks. The irritability you're experiencing will probably just get worse.
I'm just starting to learn to cook. I began riding my bike last year. I'm 34. The grass is always greener of course. But it seems like you are enjoying a lot of the things I wish I had made time for earlier.
Maybe shut out the art project. Turn your code into open source and let that be your art for the next few months.
At the moment, I'm lucky enough to have some cash. I can hoard it in the bank, or I can spread it around. You should certainly save and look out for your family. But spending money is part of how capitalism builds a society. Don't feel guilty. Feel good that you can help.
This is a really important point.
I'm currently reading The Rational Optimist (http://www.amazon.com/The-Rational-Optimist-Prosperity-Evolv...) which is about technology, innovation, and economic progress throughout history and one of his major points is that economies progress when people become more reliant on one another so they can focus on their specialty (ex., hire someone to do laundry because your time is most valuable coding). Economies in which people are self-sufficient are by definition less productive and innovative because there's less money flowing around and people are spending less time on the things they are comparatively better at.
It's a slow start but a fantastic read (and a challenging one for a person who likes to be self-sufficient).
I still bill 150+ an hour and change my own oil. Living life means doing mundane things for yourself. I wish lots of those rich people who have valuable time would realize that they shouldn't shit for themselves.
I like how you said "most valuable". My time isn't any more valuable then someone else's. I'm just most valuable writing code. Someone is else is most valuable cooking. Others are most valuable curing diseases.
By delegating everything that we're not "most valuable" at to others, we potentially end up becoming impotent and un-informed, unable to make intelligent decisions outside our area of expertise. Thus we lose our ability to be good citizens.
He specifically makes the point in the context of cooking, something he argues is so fundamental to our survival that it is a skill all humans should have at least some basic ability to do.
Just a thought. :-)
Edit: you can read some of his argument starting on page 20 of the "Look Inside" feature on Amazon - http://www.amazon.com/Cooked-Natural-Transformation-Michael-...
And reviewed here - http://www.brainpickings.org/2013/04/24/michael-pollan-cooke...
"A dash of salt, a pad of butter, cook until brown". None of that means anything to me! I've been coding my whole life. How much is a dash? What shade of brown?
Obviously I'm more into baking :)
I used to get mad about the lack of precision in many recipes, but I worked through it and adopted the "would I eat it" test for doneness.
It's a matter of experience, and you only get that by doing. Having an experienced mentor can help, but is not necessary, only a willingness to experiment.
Now I embrace the imprecision because it enables creativity without fear.
Cooking for 1 or cooking for 5 doesn't involve much increase in the total time (5 sets of eating dishes instead of 1 and slightly larger cookware to clean) and has a slight decrease in price per mouth (buying food items in bulk is cheaper). Now I could cook big meals for just myself to eat 5 times along with buying in bulk, but this means a significant loss in freshness and variety (eating the same meal 5 times a week, 4 of those reheated, and bulk items mean the same core ingredients for multiple weeks). Finally top this off with the notion that more mouths to feed tend to mean more bodies to help cook/clean, and I personally find that this tips the scales to making cooking far less worthwhile when you are doing it by yourself for yourself.
Lessons are broken down into the mise en place steps (which makes preparation simpler). We're working on content now to help with simplifying cleaning, though the general mantra is to clean as you go.
Important metrics for us when creating lessons are number of ingredients required and number of dirty dishes that result. We want you to make things that won't fill a sink with dirty dishes and doesn't require a 30-minute, $100 trip to the grocery store. Satisfying all these requirements are hard and I don't think we've nailed it yet, but it's on our mind constantly.
Seriously. I spent two years in my current place washing dishes by hand; there was an old dishwasher there that was broken and i thought "ah, don't really need it". When I had some flatmates move in we all chipped in and got a new dishwasher and it's seriously one of the best investments you can ever make.
Cleaning dishes for me now means putting dishes on a shelf, throwing in a tablet, closing a door and pressing a button. An hour later when the wash is done I just open the door and at some point when I feel like it, put the dry and clean dishes away. It does a better job than I ever did at a sink.
I've taken the same approach and recently invested the money in a Botvac to hopefully automate another chore that I just hate doing. So far it's been good too (still in the hand-holding stage, figuring out its trouble spots haha).
EDIT: One more appliance I've grown to not live without is my air-fryer. Think of it as an extremely efficient fan-forced oven that's the perfect size for a meal or two at a time. IMHO it's the perfect oven for a single person or a couple without kids.
Alton Brown is probably not an ideal source for recipes for you since he really goes all-out with ingredients and prep, but he's a fun way to learn about the science of cooking. His methods are hacker-ish, and that he doesn't follow same-old-same-old recipes helped me to stop worrying about doing things the "right" way.
Mark Bittman writes about the stages of learning how to cook and you are pretty advanced relative to others. Many of us haven't gotten to the point where we can realistically come up with ideas based on tastes because we don't know how they interact. Generalizing these ideas requires understanding how and why things work, which is exactly why Alton Brown is so useful to so many people. He breaks down the reasoning behind something so that you can generalize it the next time, or in a different dish, or apply a principle to something new altogether.
EG: chicken, beef, tomato, onion, peppers, mushroom, cheese, rice, quinoa, pasta, potato, carrot, broccoli, spinach, asparagus, corn, sauce, etc.
Make sure you have a good stock of different spices, salt, and pepper.
Start with something simple like just chicken pasta and each meal add in something from above suited towards your taste. As you run out of ingredients you'll realize you can still make good dishes. If you run out of pasta you can skip it completely or sub it out with quiona.
I often play the "lets see what I can make with what is still in the fridge" game :D
To go a bit philosophical, you have to lose the fear of engaging with your food and the cooking process. Don't be scared to play with your food while it's cooking. Smell it often, listen to the noises it makes, don't be worried about moving it around the pan and even take notice of how it moves - is it sticking to the pan? Does it seem a little dry? Does it smell good? Start doing this with the simplest of things - some oil in a pan and a steak or sausages, for example.
Don't worry about following recipes to the exact letter all the time, unless you're doing something like baking where the chemistry is more important to get accurate. If your time isn't exact or the temperature is a little off or you use more than a tablespoon of oil, see what happens. See what happens if you add salt, or if you don't. Observe it while it's happening. Don't be scared to taste something off the pan. If it doesn't taste good, ask yourself why? Then ask yourself how you might fix it.
Once you're not afraid to do that, cooking becomes a lot more fun and intuitive. Then you can follow recipes while engaging with them and the food.
I feel like this is something that many people who hate cooking or who are scared of cooking miss. Cooking shouldn't be a "follow the instructions to the letter otherwise one wrong step and boom!" process. Instead it's a highly interactive, very sensory thing.
I'm starting to realize now that it's just a stupid fear I need to overcome. I'm glad this thread forced me to think more about my attitude towards cooking.
(Yes, sometimes is a really hard game.)
A flatmate has a book called simply "Saucen" (German for "Sauces") which provides a good basis for many meals.
I've been trying to learn how to cook ever since I moved roughly 3 months ago. My early attempts at replicating others' recipes had paid off decently so I attempted the hack-stuff-together approach on a couple of occasions. It did _not_ go well. :-/
I ended up with a ton of wasted ingredients not to mention the significant amount to time spent in prepping and later, cleaning up.
That said, I agree that (with a bit of experience) this approach to cooking is a lot more fun. As a comment elsewhere on the page says, cooking for yourself could sometimes be a pain (especially after you get home from work) and thinking of it as a side project really helps.
I have some pretty basic recipes I cook if I'm a bit tired from work, I can make them without really thinking (e.g. diced chicken + green beans & cream + pesto.) Fortunately, the nearest shop is about 2 minutes detour from my route home, so I can wander in and buy the things I'm missing.
I think one way to build up intuition is to cook a recipe with a very short list of ingredients multiple times, with small variations (like the size of cutting things up or cooking time or whatever).
One thing Good Eats consistently does is talk about whether an ingredient has a functional purpose in a recipe, and what that purpose is. Other cooking resources do that too, but usually not as well.
This is obviously a rather trivial example, but hopefully you see how generalizing this (and similar nuggets of information) can help.
This. That's the primary reason I keep eating unhealthy. Since I started working, I naturally gravitated toward few dishes that basically make themselves - e.g. french fries, boiled/fried sausage, etc. - basically anything I can drop on the stove and leave unattended for some time. Maybe if I started to seriously learn how to cook I'd start to like it, but for now it's something that I need to do to keep myself able to do other things.
Even better you can easily cook large quantities so you're not even cooking every day.
My healthy favorite is slow-cooked stew combined with rice-cooker brown rice/quinoa - both are set on timers so they finish just before we get home - so no reheating.
Still, you can't slow cook something like a pan-sautéed chicken breast. But many people, particularly single people, simply don't want to expend the effort for the reward. I have no problem with that; been there, done that.
It takes me about a half-hour to chop up the vegetables, but one round makes a lot of soup.
In the beginning, making a new dish takes forever and feels really stressful because it's all unfamiliar, but if you do it enough, it becomes something you can do on autopilot with very little thought or planning. Even having just 2 or 3 autopilot recipes that you've perfected logged in your brain somewhere makes such a huge difference. That doesn't mean you have to cook them every night, but you can at least break up the monotony and unhealthiness of your current meal options.
Plus, at least for me, having a meal that is healthy and actually tastes really good makes me so much more productive when I get back to work.
1. chicken breast
4. some sort of oil
Put all of the above in a pan, stir it around, cook (covered or uncovered, play with it) for about 7-13 minutes.
Try different mixtures. Try different lengths of time. You don't even have to watch it unless you're concerned that your range might explode or something.
I think there are two other pains wrapped up in why people buy from these services: meal planning and instruction. Meal planning is hard and it helps to just treat it like picking from a menu than creating a plan out of thin air. To some degree these services provide some instruction, though I've heard people get instructional benefits from these to varying degrees. Would be curious to see how the instruction has helped you.
Ding ding ding, this is why I subscribe to emeals, there's so much "science" out there about what a meal should be composed of that I'd much rather not deal with it. It's easier to see 14 dinners and choose 7 rather than scout out recipes on my own (resulting in hours lost per week).
As far as instruction, I prefer having the small set of recipes from the service, because it gives me cooking breadth that I would otherwise have not bothered with. As I start encountering meals with similar preparation again and again, I can afford to see how much I can get away with playing with the recipe.
Even though we aren't getting a meal plan and instructions with our box of meat and produce, it still feels like part of the work is done. I see it as a good in-between option: not as expensive as the meal delivery services and not as much work as just planning and shopping for meals from scratch. I can see how it could be overwhelming for beginners, though, if they receive a bunch of ingredients they aren't familiar with.
I think that's where building the intuition and creative-thinking part of cooking becomes important. We're working on balancing this with CookAcademy -- trying to walk users through the cooking process in great detail, without letting them rely on that detail too much. We hope that teaching them the concepts behind what they're doing and encouraging experimentation will help them eventually rely on their senses and experience rather than relying on timers and measuring cups. To me, cooking feels like much less of a chore when you can get to that point.
Doing the dishes remains a huge PITA, though.
Happy to offer whatever help I can outside of the site, too.
You'll learn tricks to improve your performance and squeeze more time into the day. But the biggest thing that's worked most for me is staying up later than I normally would prefer. I get a few extra hours for passion projects and still get everything in the day accomplished that I'm required to accomplish.
It's a tough slog. Immensely rewarding, but tough. Prepare yourself for the change in advance so that you don't go through the massive shock I experienced.
At 5 my oldest son is doing a lot of small chores around the house. He just passed the tipping point of where I can spend less time giving him directions than it would have taken for me to just do the job myself. I see this scaling over time.
A part of the "playing" that I do with him is building and repairing stuff around the home. He loves it. It takes much longer to complete anything that if I was just doing it myself, but I'm doubling up "play" and "chores" so it works out. For things that he can't help with I try to outsource.
I like some of the ideas of past generations who often viewed kids as resources.
There should be a way to borrow someone else's kids for 6 months or so, force yourself to carve the waste out of your life... and then wait another decade before having your own kids.
will eventually be an open source project.
Lean Software people are right about one thing — you've gotta get software in front of users as quickly as possible. If the project timeline is "work for 6-8 months, then show people" it's possible you built an amazing thing only you know how to use and nobody else really wants.
Release early, release often.
My problem is that I have a full time job. When I come home at night
The simplest hack here: wake up earlier and use your first (and best) 2-3 productive brain hours on your project then go to work. You'll use your best performance (refreshed, alert, not tired) for your project while still not being fired.
Yeah, that seldom works. Practical advice is: don't quit a job unless your side project is demanding an increasing amount of time and resources from customers/users (meaning: it's becoming successful). Non-practical advise is: screw work, if you're not happy, save money and do what you want.
The world isn't HN. You won't be an overnight success. You will fail. Nobody will use what you make. Or, you could be the next person the media starts comparing others against as a measure of unexpected success: "Is this new kid the next bglazer?"
This absolutely terrifies me.
> The simplest hack here: wake up earlier and use your first (and best) 2-3 productive brain hours on your project then go to work. You'll use your best performance (refreshed, alert, not tired) for your project while still not being fired.
I really, really enjoy my sleep :). This is certainly very practical advice, but it requires that I'm disciplined enough to go to sleep earlier the preceding night. That's difficult but certainly possible.
> Non-practical advise is: screw work, if you're not happy, save money and do what you want.
It's incredibly tempting. The problem (that actually isn't a problem) is that I enjoy my full-time work as well.
Thank you for the advice!
Then work late and sleep in :-) I can't do a lick of useful work before 10 (which isn't great, since my job starts at 8:30), but I can cram 2-3 hours of good stuff in after my kids go to bed every night. Try different times to see when you're at your best. It's worth it to feel like you're making progress on something awesome.
And I've got to echo seiji - just get your product out there as quickly as you can. Let your coworkers look at it. Send it around. It may be that no-one wants to use it in its present form, but just looking at what you're doing may shake loose ideas and directions for the project that never occurred to you. Getting outsiders looking at your work is the difference between building something neat and building something great.
I show everyone that shows the slightest interest what I'm doing. I make incremental progress then, as a reward, work hard towards specific milestones on my nights off; my wife and I trade nights where we don't have to be a parent and get to go off and play and I often just go to a coffee shop and work on my side project.
My slow progress can be extremely frustrating but I try to offset that with the gratification when I achieve my milestones. I used to doubt that I could be this disciplined until this particular side project; now it's effortless because I'm doing what I want to do and it makes me happy.
And, ultimately, that's what decided it for me: am I doing what makes me happy? That's motivating for me. Not money, not fame. That's why that 6-9 family time is pretty inviolate and I tend to spend all my time with them on the weekends. Ultimately, my family makes me happier than my side project so they get the majority of my time and thought.
But that side project is always waiting to be worked on. ( =
I think most people can relate. :)
I grew up with 8AM class throughout my childhood, so waking up at 7AM was a life-long habit when I got to college. And then I dropped it completely — I started sleeping from after 4AM until noon or so whenever I could.
At some point that got balanced out by more 8AM classes (and 5AM coffee shop shifts, but that's another story), but after college I fell into the less-than-ideal pattern again.
What worked in the end was simply setting the alarm clock and getting up, even when that meant I was effectively a zombie for a few consecutive days. At some point my body started giving up and going to bed at 10PM became the norm. These days it's anywhere between 9PM and 11PM on average, with a 6AM alarm clock even on the weekends. I spend my mornings either at the gym or doing something else productive (like side projects). Evenings are reserved for relaxation.
I don't use my car to commute to office. It takes 25 minutes via public transport (one way), so I use that time and build all the complex logic/data structure/algos in that time for my hobby project.
Cooking doesn't break my mental loop. So I keep thinking & solving things regarding my hobby project while cooking. (I also cook for my office lunch almost daily)
Most of the labour work (putting up CRUD forms or repeatable things, some graphics work etc) I do mostly on weekends when I don't have to use much brain but just keep moving things which are important.
Things are much better now than before. Even still my hobby project is slow moving but I can see it moving further.
Currently listening to: Functional Geekery, Mostly Erlang, the Lean Startup conferences and Giant Robots Smashing into Other Giant Robots.
40 minutes on public transit getting working done or 30 min driving, completely wasted time?
I find I get some of my most focused, solid work done on the L.
I do enjoy thinking about the project while cooking.
Good luck on your project!
No one actually works 8 hours a day and comes home to work 4 hours sustainably. I couldn't see someone doing that for more than two months without getting burned out.
I feel like I probably have enough autonomy to do this, but it's tricky business.
The tyranny of the 40+ hour work week. Why is it that so few people are willing and/or able to negotiate working fewer hours in a week, for example 6 hours a day or 4 days in a week?
Is it fear of being fired for making such a request? Are the employers so powerful and the employees in such a weak bargaining position?
Or the fear of having to take a pay cut? Maybe people get used to too expensive life styles instead of keeping living frugally when the money starts rolling in. They're then in the fragile position of not being able to afford a slight reduction in income.
It's kind of sad that there is not a lot more individual variation in working hours, when people are simultaneously lamenting their lack of free time.
Frankly, yes. I would be literally the only person I know who has such an arrangement.
Have you negotiated reduced hours? If so, I'd be interested in hearing your experience.
Yeah, I guess the norm is too strongly ingrained, and employers like to keep it that way. If there was a "free" labour market you'd expect more variation, as it can't be right that the standard amount of working hours are perfect fit for everyone. Ditto with number of vacation days in a year, etc - in an ideal world it would all be negotiated based on individual preference. The status quo causes symptoms such as rush hour traffic, overly expensive flights and hotels as everyone goes on vacation at the same time, and people who are wealthy in monetary terms but starved of leisure time. It seems like this often leads to making up for it through overconsumption - to spend the extra income that the full time worker might not really need to satisfy his basic needs and wants.
Unfortunately I haven't made such attempts, and I'm currently a freelance contractor which already means I have more spare time when I want as I decide myself how many hours I work. I know about ex-colleagues who negotiated a four day working week for a commensurate reduction in salary, though that was in Norway.
Wish I had better advice, but it is a hard problem. If you only have 3-5 hours per week, perhaps you should consider going to meetups instead, and networking outside of your existing communities? You might get more results out of that, or find an opportunity you are willing to leave your current job for.
You see, when you are bootstrapping your revenue is contingent on making deliverables, getting customers (or in my case, donors), and otherwise doing time consuming work. Once you have depleted your savings and maxed out your credit cards, then you really start to feel the life-or-death, make-it-or-die pressure. At every given moment there is permeating risk that if you don’t push this update, if you don’t win that customer/donor, if you don’t make such a looming deadline, you will fail. And failure means the bank taking your house, losing all credit for 7 years, being unable to put food on the table, living on the street, and—let’s face it—owning up to defeat.
If that weren’t complicated enough, my wife started her second pregnancy at exactly the same time. Every moment that I was asking my wife how her day was, what the doctor had told her, playing with our other toddler, cooking dinner, or generally just being present was progress not being made towards that deadline, that customer, or a completed product.
There’s a pressure and a mentality here not too dissimilar from the gambler that keeps betting double-or-nothing with exponentially increasing risk, chasing the Martingale of success. Before long your entire life is on the table, and you’re rolling the dice. I made it to that point… and then rolled a natural 20. I got lucky. Sure, I “made my own luck” in the sense that a positive outcome was only possible because of all that work I’d put in. But possible does not mean probable, and the upward-trending outcome I am currently enjoying was very, very low probability. I got lucky, and I recognize that.
But a year ago? I was deep in a hole and doubling down, while totally ignoring other responsibilities and being unavailable to my wife, daughter, and newborn child. I was trading time now for an imagined future, at terrible odds. I think it was her who had more reason to wonder what kind of person she was married to, and I am eternally grateful that she stayed long enough to make it through.
We’re now well funded, making waves, and gathering customers. I’m pulling a steady paycheck and have wiped out the worst of my bad debt. I have a good comp plan with not insignificant equity. But with the information available to me at the outset, I don’t think I would make the same decisions again. I certainly wouldn't recommend someone else to do something so foolhardy. Some things are just not worth risking, no matter the reward.
Well, you might want to ask yourself if this project is really something you want to work on. That is, do you love it? If you'd rather be working on an art project, why not do that?
There's that famous Steve Jobs quote that goes something like, "you only make great things when you love what you do."
But here's what I'm starting to do now -- I set an alarm to make sure I remember to leave the office at 4:30 pm, instead of squeezing in that extra bit of work (or slacking off). That gets me a bit of a jump on the evening, instead of leaving work at 6:30 or so. Seems to be helping a bit.
Watching TV is passive, which means you can do it while doing other things. I watch it while cooking, cleaning the house, doing the dishes, and other similar manual and low-cognition activities. In fact, I can't just sit and watch TV for very long.
That is the wrong way to tackle the problem, and you probably know it.
Attempt to set aside 30minutes to an hour a night to work on it, but no more, and you have to stop yourself from working more.
This is the only way I found worked for me. You dont have to set time every day (that part just helped in my case, I need consistency to build a habbit)
If you have a hobby and part of the pleasure of the hobby is the end result, then I'd suggest carving time out daily to work on it like exercise. Even an hour a day and 2 hours on each weekend would triple the time you've put into it to date.
That said, if you enjoy doing other things more, I wouldn't sweat it.
I write code that can't be open sourced for work, but want to contribute to OSS projects. But dammit, at the end of the day or week of coding all the time for my full time job, it is hard as well to sit down in front of the screen again without going mad.
Life, kids, wife, non-coding hobbies, coding hobbies -- whirlwind of competition for my time. Ugh.
Good luck, start small, make a few commits.
Oh, and if not open source software, try getting minimum product out so you can feel that sense of obligation to improve and develop further
I just launched a game into the App Store. The journey was incredible, and filled with joy, sweat, and tears.
I've written about what I've gone through. It might be helpful for you. A small caution... these are relatively long posts, but hopefully they are enjoyable, insightful, and personally beneficial for you.
My experiences with what I felt while developing the game:
An older post that I wrote about work, embracing the grind, and driving through.
I wish you every success.
P.S. I figured I should do a TL;DR since those posts are even more epic in length than I realized, so I snagged some salient points:
1. You may look at your project and think, "I'm never going to make it. I'll never finish." Please, I urge you to set these thoughts aside and push through. Think about the analogy of building a wall. A wall is built one brick at a time. Watch a mason build a wall one day. You will observe that he or she lays one brick at a time.
This is how you have to view your project. Sure, it would be amazing to have an entire day, every day to devote to your project. However, the reality is that most of us simply do not have that luxury. So, strive to think of it as a mason: lay one brick at a time, and eventually the wall will be built. Every character that you type into Xcode, Visual Studio, etc. turns into a keyword, a variable name, etc... that subsequently turns into a line. Those lines build up, day by day, and before you know it, you have a program, and you look back and think, "Wow, why did I ever think I could not finish?"
2. You have to fight. This is paramount. I will say it again... you have to fight! What I mean here is fighting by engaging your Will. Engage your will to get up, to get moving. Engage your will to eat right, to exercise and go to bed on time so that you have the energy to get up and bring it.
3. You never know where your work will take you. Do not forget that, you have to dream it first in your mind before you can see it in your life. And to see it in your life, you must work. You may not be able to see things clearly now, but you never know what doors could open for you that you did not even know existed.
4. I find that I read this story at least once a month; it's just incredibly encouraging to me:
From your linked post:
> Even the people around you won't understand the mental suffering that you are silently muscling through; you, torn between two worlds as the aforementioned autonomic function pushes and strains you to your personal limits. You measure the day's progress in centimeters rather than meters. You will either summit, or freeze to death on the mountain in your boots; the summit in sight, but just out of reach. Which-ever event happens, you feel alone, either way, because no one is carrying the sheer weight of The Vision than you. It is all you. It has only ever been you. There is no one to save you.
I snapped and yelled at my girlfriend the other day because I felt like she didn't understand the work I was putting into the project and the stress it caused me. That was definitely a low point for me.
I understand. From my experience, the most important items here are:
1. Keep the lines of communication open in your relationship. Sometimes, these feelings and lack-of-understanding that she is expressing may be because you are out of sync with her needs (i.e., she may feel like your work is taking precedence over your relationship and her). I know that finding balance is easier said than done, but, I feel the secret may be in:
2. Strive to carve out time to work in the early-morning or late-evening, whichever works best for your relationship. That way, you can attempt to perform a, "separation of concerns", if you will, in your life. This will serve to reduce the impact of your side project on your relationship. You may find that she is more understanding if you have a set schedule of working that is balanced and low-impact on your quality time together. Plus, with a set-schedule, your focus, stress-levels, and output will be better, because you will be working in a more balanced way.
Hope that helps. I know it's tough for creatives like us to find balance, as we work during the day at the mine, then try to create time for our side projects while juggling exercise, relationships, family, etc.
You can upload the project to github and try to get people to help you for free.
I have had plenty of fun little side projects (some finished some not), but my main project is my salaried position. Aside from being independently wealthy, how can one create and maintain a long term open source project as a full time job. Consulting on the side? Donations? Something else?
P.S. Thanks for Redis :)
I really like the idea of setting up guard-rails like this to embody cultural values early on in ways that keep the organization accountable to them at scale and I wonder if something similar could help OSS. It's not hard to imagine a similarly structured pledge being adopted by companies and being popular with developers. It could be structured in hours or money, executed with developer time, donations, or hosting OSS developers like Stripe has done.
If I allow myself the thought exercise of what happens if something like this started to see adoption, I imagine we'd see projects beginning to license themselves favorably to companies who make this pledge in a variety of ways.
At any rate. That's roughly what I've been noodling around with regard to this problem.
 http://onepercentfortheplanet.org/ and I highly recommend Yvon Chouinard's book Let My People Go Surfing, which was where I was first exposed to the idea http://www.patagonia.com/us/product/let-my-people-go-surfing...
Interesting approach, but I bet those companies also aren't high growth tech startups/companies. The only goal at a growing tech company is reduce costs, increase revenue. They aren't looking for new ways to pay for things they legally get for free.
My favorite example is Redis at Twitter: Twitter has over 30,000 Redis servers deployed around the world using a total of over 500 terabytes of RAM (half a petabyte!), and they certainly have no interesting in paying for Redis. If Redis were typical "commercial software" licensed per-core or per-other-shennigans, they'd be paying over $70 million per year for Redis.
(Redis is a unique position because the core dev team of Redis has always been small so it's easier to measure the direct exploitation involved versus other projects with thousands of amorphous developers like Linux or Hadoop or Apache.)
Many open source projects are essentially corporate welfare. We work, make products companies use to make money/become more efficient/grow faster, the companies use the software for free to get richer, then nobody contributes back any of the gains.
The strange miracle of open source software is that when companies use something like Redis to make a lot of money, they end up investing in it, they contribute work to the project, and the community does gain from their contributions. In other words, the whole point of OSS is that exactly the thing you say never happens, happens all the time.
Most open source development is commercial.
To take an example from my day job: Bloomberg (the financial media giant) sponsored Andy Wingo (of Igalia, that guy is a genius) to contribute support for ES6 generators to both Mozilla's JS engine and Chrome's. An example of his amazing work:
Companies use all things to get richer. That's the operating principle of companies. The competing model to open source is commercial software, in which the company owning the software has a monopoly over it and uses it to get richer... and the companies licensing it still use it to get richer.
In corporate welfare, the money given to companies is taken from someone else's pocket. Open source software is cheap because it eliminates the artificial costs of copyright monopolies.
It's a matter of project scale too. Nobody cares about exploiting Hadoop because it's millions of lines of low quality code written by thousands of day-job developers.
But, if a project is clearly the work of, say, 2-5 individual developers, it's easier to see how those individuals are creating much more value than anybody is possibly compensating them for.
The main complaint seems to be "offering things for free then expecting good things to happen" doesn't work. So the only solution is "offer things for free and also provide support/services/hosting/accoutrement to companies with big pockets."
The trick is: how do you incentive companies to pay in the first place? There's the mongodb model: market, popularize, and aggressively sell broken software so people must buy support or else nothing works at all, or there's the RedHat model: target big companies and become their source of trust/knowledge for complicated things the buying company doesn't want to manage/understand themselves.
It can be difficult to sell highly popular, non-broken, simple software. It works, people use it, there are no problems, so, why pay, even when it runs your multi-billion dollar company (especially when the free support resolves all issues in less than 20 minutes anyway)?
I think this is true of anything worth doing.
I like your characterization of the mongodb model and the RedHat model. (I don't see anything wrong with RedHat's model, by the way. More power to them.)
But your complaint would have made a lot more sense fifteen years ago. Now there are a lot of other models. There are even other models that work really nicely!
There are consultancies, like Igalia. Some companies hire open source developers because they use the project and want to make sure active development continues (antirez's day job might be an example of this; at a guess that's why Google once hired GvR, the creator of Python). Some use OSS projects as a recruiting tool; smart ones use it as a signal of quality in hiring. If you selectively hire engineers with OSS on their resumes, you are unwittingly paying returns to OSS development.
Companies can also use OSS to reduce the cost of external efforts that are strategically important to them, and they can win a developer mindshare benefit from doing so. This is why Microsoft open-sourced the .NET platform (under a good license!).
I'm no VC but the bazaar seems healthier financially than it's ever been.
Well, it's the difference between getting paid (salary, fixed, no logical incentive to grow/improve) versus getting paid (percentages of benefit, the more benefit you create the more you make, growing non-linearly with your actual output).
All of this is really just complaining around the fact it's not easy to reap rewards proportional to the benefit of software without creating a company and all the overhead required therein.
Another great example: memcached. It's well known facebook uses memcached heavily. The creator of memcached doesn't see any benefit from their usage of his software. Modern high-growth, multi-billion dollar companies are built on top of the work of individuals they don't even attempt to compensate.
Some of these arguments also apply to modern exploitation of musicians a la spotify/steal-my-music-ify, etc.
It occurred to me this morning that even in theory, market economies don't pay to the seller a percentage of the buyer's benefit. They never do: it's not how they work. The full area under the demand curve, above the line indicating price, accrues to the buyer. Buyers that get a very great benefit (tangible or intangible) out of buying a pencil, a gallon of gas, or a computer generally pay the same price as those for whom the benefit is very slim; and there is no limit to that benefit.
This is mostly beside your point, I know. I just thought it was a nice idea, worth sharing.
As for size, NBB is the second largest craft brewer in the country and Patagonia is a very large player in outdoor apparel.
>The only goal at a growing tech company is reduce costs, increase revenue.
Right. Fuck that, because that's not actually (ever) really the goal. Money's always a means to some end, so another way of looking at this is to put a stake in some particular end that you want to share with everyone at the company. That's culture. Culture is shared values, and this is a way to make culture measurable and something the organization is held accountable for over time.
Yet another way to look at this is what happens if when Larry and Sergey decided on "Don't be Evil" someone told them "That's adorable, but why don't you think harder about how to turn this into something measurable".
In Twitter's case, we've also contributed to the Redis ecosystem via twemproxy: https://github.com/twitter/twemproxy
Twemproxy helps scale some of the traffic for the top websites in the world: https://github.com/twitter/twemproxy#users
The standard way society compensates persons for useful goods and services is by exchanging currency, not by bartering favors or by saying "look! we made a billion dollars using your software, here, have these free 40 lines of code as a bug fix. thx."
Unrelated note: every time I see these (needlessly?) optimized string compare statements, I fall out of my chair laughing and/or crying: https://github.com/twitter/twemproxy/blob/a36fdae2a8a3c166d9...
It doesn't seem particularly fair to say "here world, use my open source project for free," and then get mad that people use it for free.
And in fact, I don't think antirez is saying that. It looks to me like other people, who didn't build Redis in the first place, are the ones saying that.
Redis gets feature requests from companies all the time (implement X! It'll save us from lots of complexity and internal support time!), but they don't want to pay for it. Redis also gets support requests from big companies (where employees have already exited or sold stock back or are out buying Teslas), and I get to answer their questions for free too. I'm really happy Redis is running your multibillion dollar company and I'm certainly happy you see no irony in asking for free support when your company is visibly hemorrhaging idle cash. Sometimes you just have to say http://www.urbandictionary.com/define.php?term=fupm&defid=54....
cory doctorow has made a similar argument about copyright and the absurdity of one-size-fits-all:
> We're trying to retrofit the rules that governed multi-stage rocket ships (huge publishing conglomerates) to cover the activity of pedestrians (people who post quotes from books on their personal blogs). And the pedestrians aren't buying it: they hear that they need a law degree to safely quote from their favourite TV show and they assume that the system is irredeemably broken and not worth attending to at all.
You say "many", implying not all. What differentiates the "corporate welfare" category of OSS in your mind?
> We work, make products companies use to make money/become more efficient/grow faster, the companies use the software for free to get richer, then nobody contributes back any of the gains.
It seems more complex than that to me. I contribute to OSS, but I also owe my career to OSS. I learned to program using an OS language, an OS database, an OS editor, etc, and still use such tools. I never would have started learning if all that had cost money. So the "welfare" goes to companies, but also to individuals, who may come back and contribute.
Companies have also hired me based on my OSS contributions, which incentivizes me to do more.
"We give, they get" is oversimplified, at least in my case. I got, I gave, I got more, I continue giving.
Not only IT companies but VC's and startup entrepreneurs all rave about how fast and easy it is to develop and get a MVP out the door these days compared to year ago.
What % of their tech stock is OSS that they leveraging for FREE?! Not only that but if you run into a bug, you can even submit an issue ticket directly on github and get a dev to respond and potentially fix your issue for FREE!
Obviously, the pure technology is not the sum of startup execution, but I wonder how many of these people made huge $$$ without donating a nickle to the OSS projects that provided the backbone of their entire technology stack!
What's interesting is that most enterprises don't really want to freeride - they don't have the knowledge or legal will (indemnity) to go it alone, plus have esoteric requirements that usually don't lead to good open source projects and will pay for proprietary add-ins.
The main free riders are startups that couldn't afford a subscription anyway (until they scale and want help), along with service/cloud providers that are at such enormous scale and have such a large braintrust that they can go it alone. These are the organizations IMO (the Googles of the world) that really need to sponsor individuals and OSS foundations to avoid a tragedy (like GPG or even OpenSSL).
The good players that give back need to be recognized and praised.
[I honestly have a hard time understanding why bigish companies that use/rely on the software don't just give 50k to the GPG developer or sponsor OpenBSD etc. which can be great PR while they can spend similar sums on somewhat silly PR campaigns. I guess "IT people" generally don't have much input when it comes to PR...even outisde of signaling that you're a cool employer it's genuine good PR for (tech) companies]
It's a tradeoff between "stable" income and "potentially unlimited" income, and Redis is still in the "stable" column.
When you're depending on the software in question, it being underfunded might mean you're not getting the quality and features that would pay off in multiples for you. You could be sitting on a pile of bugs, or your dependency could be abandoned at your expense. These things happen all the time in open source land and it's a tragedy.
I'm not convinced that freeriding is really rational at all. I would however grant that it's both easy and lazy.
I actually think if everything out there was GPL'd, it would make it even more difficult to build businesses and make money from open source software, because you couldn't use open source in a proprietary project if you so chose.
I think instead we need a set of incentives in which it's a terrible idea to use software, open source or not, without sharing a fair slice of the value you're getting with the author(s). How to actually implement this is left as an exercise for the reader.
Yes, isn't that kind of the point?
So, if you set the cost of BSD/MIT code for each release enough for one sale to fund the whole cost of the release, it might work.
But anyway; in my limited anecdotal experience, I don't know that all companies would bother sharing the BSD/MIT code anyway. They tend to be occupied doing their own work, not redistributing whatever open source software components they got from somewhere else.
Some companies might; but the point is that, I think that, no, they would not necessarily pay for it and then share it with everyone else.
Sure, but BSD/MIT projects can sell premium proprietary derivatives and services to fund both the open source and proprietary parts of the project -- heck, a company planning to do the proprietary aspects could buy the BSD/MIT license to the project and contribute that to a community project, and then contribute some staff development time to the open parts of the project while also building a proprietary derivative (see, e.g., EnterpriseDB and PostgreSQL.) And, the people that are likely to do that are the most likely to spend money to get a BSD/MIT license for something with a free GPL license, since they would actually have a financial interest which would justify the cost.
It's a viable model for some things, like libraries; not so much for others.
Funding open source is a tricky problem. It is, in some ways, a 'public good' in the economics sense:
If everything was GPL'ed, there would not be any proprietary projects. Everything would be GPL'ed.
GPL projects "take" from BSD/MIT/Apache/etc projects (in the form of libraries, supporting software, etc) and only give back with conditions they can't accept.
You can say it's on them, for choosing the license they chose, they accepted that this could happen, but on the other hand, isn't that exactly what we're criticizing companies for?
The FSF is hostile to proprietary software and criticize liberal licenses because they don't provide these guaranties.
If you don't want people to use your code without making their changes available to you, license it under the GPL. That's what the GPL is for. Criticizing GPL projects for the fact that some projects are not GPL seems an odd way to spend your outrage budget.
And I don't agree that choosing a license means the authors are necessarily fine with their code being used in such a way - it might just mean they don't believe in using (copyright) law to enforce it.
And even if they are fine with my activity, that still doesn't mean I must be OK doing it. As an analogy, I wouldn't sell tobacco, despite the buyers actually wanting to buy it.
If someone do not believe in using copyright law and dislike those who do, they should act accordingly and not deal with proprietary companies at all. Those are the majority users of copyright law in the software industry, as the number of GPL law suits vs proprietary ones is several order smaller.
Sure. But that still doesn't resolve my dilemma, it just narrows it down.
Is it legitimate to take code published under a liberal license by someone who doesn't deal with proprietary companies at all and use it in a GPL project, knowing that it prevents the original project from using that derived code?
LLVM is a great project and brought the possibility of .NET/Java tooling to C and C++, but just check the amount of GPU shader drivers, Swift and some embedded compilers for examples of companies abusing BSD/MIT/Apache/etc projects.
Its not "abuse" to do something the license is designed to permit. Not everyone -- and particularly not everyone who chooses non-copyleft free software licenses for their projects -- agrees that the reciprocal obligations enshrined in the GPL represent fundamental moral obligations that exist without the GPL and that violation of them is "abuse" in the absence of a agreed requirement, e.g. contained in a license, to adhere to them.
LLVM is known for being rather ruthless with their API refactorings. This has the twin advantages of keeping the code quality very high, and giving people an extra incentive to contribute upstream (e.g. the PS4 compiler backend). I won't go so far as to say this is intentional, but it does represent a rather amusing way to discourage users from keeping everything in-house.
The code being available is only useful if you can use it, and my point is that projects under most FOSS licenses can't use GPL-licensed code, which only takes without giving back in a usable form.
I watch very little TV. I have only a couple of friends that I see every few months max. I don't go to meetups, I don't use social media and I don't play a lot of video games. I can hardly stand to see a day go by without creating something however small it might be.
I don't celebrate holidays and don't see family very often either. That helps a ton - I worked through Christmas and NYE last year while everyone else was partying... and then I switched to a side project on the weekend.
I also have a sleep schedule that makes most people cringe: go to sleep anywhere between 8:30 and 9:30pm, get up anywhere between 4:00am and 6:30am.
All that said, I think its incredibly important to switch off for days at a time every couple of weeks or months and break all the rules. Watch TV all day on a Friday or something.
Edit Sorry, I misread your question: "how can one create and maintain a long term open source project as a full time job"
That's something I have been working towards and haven't succeeded at yet. I'm leaving my comment up in case it helps anyone though.
I'm guilty of working Christmas & New Year, I'm guilty of ditching friends' parties to work on side projects. It rarely gets you further ahead on your project anyway, and can do more damage than you realize to friendships. You have to practice your social skills regularly, and friendships are harder to make the older you get. If you don't put in the time with your friends they'll eventually lose interest in you & move on. Neither of you will really understand each other.
Partying may seem frivolous (and it often is), but it's also a key way of getting to know people & bonding with them. Social media can also be a way to keep up with what's important in the lives of your friends and understanding their interests. Both have their uses.
Giving up TV & video games is a good idea, and if your friends are addicts or lazy or negative then it's a good idea to find better friends. But remember that things you create are ultimately for other people, and it's important that you understand people so you can create better things for them. Code is such a small part of any project, a lot of it involves wetware. Some of your best opportunities will come from the friends you make and the people you meet.
Apologies for the rant, but please take it from someone who's been there & learned a lesson.
The lack of family is imposed, not chosen (see above: left strict birth religion).
The lack of friends is somewhat chosen, somewhat imposed. my best friend and his fiance move to another country recently, another good friend started dating a celebrity and moved to the west coast, and most of the other people whom I considered friends sort of just faded away.
I do live with my girlfriend though (who is also a happy shut in - we met randomly on the internet a year ago) - so I'm not in complete seclusion.
> things you create are ultimately for other people, and it's important that you understand people so you can create better things for them.
This is an excellent point, thank you for it.
I have the same sleep schedule as you (I work in Cambridge, MA but live West of 495), although I'm not sure if I'd voluntarily choose it. Working alone in the mornings is quite productive though.
And I second the sentiment "it's important to switch off for days at a time."
I expect much of this will change when kids come along though. ;-)
Your side projects cannot become your main income if you have no side projects.
To make time for side projects, you need to weigh the importance of having them, to you, and trim out other less important things from your life.
This is a worthy exercise even if you decide to skip doing the side projects entirely.
I mean, I have a whole list of projects I would like to support in a meaningful way through a subscription for some service, but it seems finding a way to do this is itself a hoop to jump through. Even if I'm super benevolent maybe I'm not willing to do HR/accounting work in order to exercise my benevolence.
I know about Gittip and the like, but if you're a business (the only kind of entity with meaningful money to throw at this problem), you'd rather have a clearcut way to pay for a service, not a platform for dropping pennies.
I am still not convinced all ideas fit in that model e.g a mobile app shouldn't be open sourced because other people can release your product as well, yet a library/framework probably doesn't have a direct business model.
In the past few years, that's become the stable way of generating returns on open source software. But "OSS-as-company" is still a huge leap for any given single popular developer since it takes much more dedication (company+sales+taxes+accounting+employees) and long-term planning than just creating+improving+maintaining code alone.
Either way I don't think the problem is one of individual users not paying for their apps. I think the major problem is that of huge companies who get business value from the code use it to make money and give back nothing in return.
This is why most successful desktop open source desktop software, actually live from another sources of funding, but it hardly created the same changes as with developer tools.
People bought the paid version of xchat for some reason. Don't assume the customer is that smart.
On weekends I can often negotiate up to 4 hours to myself. Progress isn't too slow, and I keep my sanity.
EDIT: Btw current deployment is "ruby app.rb" + Apache mod_proxy. Not stellar...
EDIT2: Problem found, was running via WEBrick since Mongrel was uninstalled for error from the server.
If it wasn't one-offs and outliers, but just something that companies did as part of getting big, we'd have a lot less need for periodic emergency fundraisers, and fewer stories about "important software X that's about to lose its sole maintainer(s)."
I've started applying a bit of scrum in my own work where in I have a Trello board with my backlog, my plan for the current sprint, what is done and what is deployed (for demo). This allows me to focus and not jump around developing endless streams of features. I set a side a chunk of time (w/ adequate negotiations with my wife) where in I blitz through my tasks for the current sprint. It also helps that my wife is a project manager in her day job so she understands my Trello board.
I find that this setup is the most effective for me, of course YMMV. For my consulting work I normally have 1 ongoing project at a time and usually a few in the RFP type of stage where in I'm still in discussions with clients.
It is small, simple, and works great.
Ironically, the only "side-project" I've finished is a book and not code (https://kindlescout.amazon.com/p/M0X7KAS29H5Q) Makes me wonder if I'm cut out to be an entrepreneur or even an developer if I can't dedicate all my free time to coding.
Sure, these are boring things to work on, but in my experience these are what have let separate a mature project that I can see works from a less mature project that may introduce even more bugs and maintenance.
"There’s a myth when it comes to what we’ve been taught about focus. Doing only 1 thing isn’t focusing. It’s essentially just doing 1 thing. Following a course of action until completion is FOCUS" - Hodan Ibrahim
Interesting related read: http://www.psychotactics.com/blog/psychological-marketing-my...
I still spend around 40mins in stuff from my previous startup which I'm not officially in operations anymore, but still have to help with some things.
On top of all that, I created a side project and built a team to run it and will be doing only mentoring, and this can be a great help to my oficial project.
So, I'm not saying this is the ideal setup... Of course a lot will change once the company starts to grow and we are able to hire more people, but I can say at the end of the day I'm pretty happy with my production and already thinking about the next day of work.
Nicely edited, free, organized CS videos. I'm opening sourcing my education: https://www.youtube.com/watch?v=4nyzl3pVXp4
For example, if I am working at Google/Amazon/Microsoft. What side projects won't get me into legal problems?
Can I work on search, email, virtualization, etc. without being in conflict of interest?