ASK HN: How do you motivate a lazy co-founder? - <AUTHOR> Hi, I'm new to this board.
I have a question about motivation. I'm running a mobile start-up and we just moved into our new offices. We started working on our spare time putting in time whenever it was available. Now, my co-founder and I are dedicated full time to the business and we've hired a couple of interns.
The problem however is that while I show up daily at 9 AM, my co-founder (the engineer, I'm the business guy) shows up every morning in the PM. We've had several discussions about inappropriate this is and how he's degrading office morale (mine and the intern's) by showing up so late every day. He stays late hours to try and compensate this tardiness, but it's still really poor presentation and incredibly unprofessional.
I have no recourse because we split the venture 50/50 (no vesting). If I want to continue on the project without him, he can block it. I've tried buying him out and he insists he's committed and will not sell under any circumstance. My only recourse is to quit and block him from taking the idea and running with it. Neither of these are admirable outcomes and I'd rather run the business as far as it can go with a lazy co-founder than end it in such an ugly fashion.
What I really want is a decent fucking co-founder who can show up at 9 (or 10 AM if he absolutely needs an extra hour of sleep) and be a profesional. Does any one have an idea on how to motivate him to do this?
Thanks, Vignesh <comment><USER3> Change your standards (really).

In my experience with start ups, developers rarely come in early. Some of the best developers I work with come in at lunch. This is because they are night owls and work better at night.

 _Not understanding that pure-bread developers work differently is denying the basis of your product._

It sounds like, on a personal level, that you want your co-founder (who is technical) to be more like _you_. Well sorry, that's not going to happen. You need to understand that you wanted to work with him in the first place because of who he is and what he is capable of, not what time he gets up in the morning.

As a little background, I am a developer. I _do_ however, wake up at 6:30, and I'm at my desk at 7:50am. This is before any other developer (and more times than not before anyone else has even shown up). I'm not like most developers, this is my personal choice, and I understand that.

Demoralizing him and berating him will further his cause to be dissonant to "business." This includes coming in later and later over time, not wearing "professional" clothes, or being hard to work with.

My heart-felt advice is to apologize for being a _prick_ to someone so important to your product, your business, and your success, and set a road map for _increasing co-founder communication and understanding_. You chose him because he was different. If he had the same skills as you, you wouldn't need him.

So first apologize to yourself, forgive yourself for being close-minded. Then apologize to him, and the interns. It takes a big person to be able to do that. It won't be fun.

Then have a candid, non-confrontational conversation with him. Figure out where the communication ended (I guarantee this is your issue). Remember, _you're in this together._

If he doesn't come in early enough for calls or presentation, do it without him. Ask him to give you the materials or knowledge you need to do it well. Maybe do some of the things you think he should. Try to _help him do his job better_ , which may not be looking professional, having sane work hours, etc. If hes an engineer or developer, his job is probably _building the product_.

You may be surprised that the cool helpful guy you met is actually still there.

<comment><USER4> EDIT: followup - <http://news.ycombinator.com/item?id=1469271>

Old post:

I think the OP should be thankful his dev doesn't walk. If I partnered up with some biz guy who demanded I show up early for no other reason than appearance I'd assume he's an empty suit and leave. (9am is early in this industry, I've never had a job that demanded I show up before 10:00).

OP: You're a 2.5 man closet startup and you're asking your other half to be less productive for the sake of appearance. Are you sure he's the one with the problem?

All this talk of being "unprofessional" is a joke when it's two guys who just scrounged up enough capital to rent a cheap office trying to impress a fucking intern. Jesus Christ.

On second thought, I'm certain I'd bail if the OP was my "partner." The lack of thought put into this, the fact that you've considered trying to oust him instead of confronting him, the fact that you seem to lack the ability to look at your company critically (again: 2 dudes and some interns == 9-5 IS NOT A BIG DEAL) all shows a severe lack of biz sense or even common sense. You're obviously insecure (cares too much about appearance to some teenagers), ill- informed (does not understand developers or managing developers) and not equipped for a leadership position (talking to HN instead of the one person in the company who he should be talking to).

I hope the "partner" you're treating like an employee reads this thread and bails. You reached out to a forum instead of talking to someone who's your other half. I can't imagine how you'd run an actual company.

It sounds harsh but it's a harsh industry.

<comment><USER5> I've been in an interview where they bluntly said "8:30am - 6:00pm are the required hours minimum".

<comment><USER6> But they were upfront about that.

I "work" from 8:30 a.m. to 5:30 p.m, but in fact I'm very unproductive, especially in the morning, and I get only a few blocks of 2-3 hrs where I am productive (maybe 5 out of the 10 hours total in a good day).

I was a lot more productive with other time arrangements (and space, I'm in an open office with 7 other developers, which kills my chances of being "in the zone" unless I wear headphones).

</comment></comment></comment></comment><comment><USER7> Let's try an experiment: \---

Hi, I'm new to this board.

I have a question about motivation. I'm running a mobile start-up and we just moved into our new offices. We started working on our spare time putting in time whenever it was available. Now, my co-founder and I are dedicated full time to the business and we've hired a couple of interns.

The problem however is that while I consistently develop our product, my co- founder (the business guy, I'm the engineer) shows up every morning at 9 AM sharp, and demands I do the same. We've had several discussions about "inappropriate" this is and how I'm "degrading office morale" (mine and the intern's) by showing up "so late" every day. We're supposed to be partners, but he continues to demand that I show up at 9 AM like he does, every day, with no regard for my opinion or how well I'm building our product.

 _..._

What I really want is a decent fucking co-founde who understands that products aren't build only between 9AM and 5PM, and who can be professional and courteous during his conversations with me. Does any one have an idea on how to motivate him to do this?

</comment><comment><USER8> Welcome to startupland. You're fucked if you think you're going to find a good engineer that wants to work 9-5. "Compensate this tardiness" == LOL. Half the point of a startup is avoiding that lifestyle. At any startup I've worked that went anywhere, the engineers all worked noon - midnight. Good luck.

</comment><comment><AUTHOR> Hi everyone! Thanks for all the helpful comments and suggestions!

I've learned a lot by reading through your posts and I applaud alttab for recognizing that communication (rather than hours of operation) might be at the core of the issue.

For the sake of the discussion (and to help advise me on how to proceed), I'd like to clarify a few points.

First, we have an intern who does work 9-5 (by his own choice, I told him he could set his own hours). For the first 3 hours of the day, he comes to my office asking when my tech-partner will be here so he can resolve some issues. The reason the office hours is such an issue is because he's not being there for the intern. Also, we're hiring more interns that start this week who will also need face time with him in order to advance their projects.

Second, and this is the most important point, because it's come up again and again in the comments, he is consistently missing deadlines and has failed to be very productive. His work is of top quality (why I selected him), but his progress is disappointingly slow. And for the record, he sets his own deadlines and repeatedly misses them.

Third, if he actually was spending his time outside the office working, I would have never made this post. He spends some spare time on the weekend working on the project. The rest of the time he stays up late and gets drunk/high with his girlfriend. He is constantly distracted by a partyboy lifestlye. I didn't want to mention that initially in case my identity is exposed, but at this point, its too relevant of a detail to ignore. I can't control what he does in his spare time, but I know he can't do those things in the office.

I would like to note that I have learned a lot from this post and I now recognize the insistance on timing his schedule is doing me a diservice. I am going to try to sit down with him and have a heart-to-heart about the work progress and abandon discussion about the hours. I have been giving him a convenient excuse to be unproductive by coming off as a prick. I need to focus more on producing and less on the particulars of when production occurs. Despite what many posters have said, I like to think of myself as open-minded and have no problem abandoning my prior philosophy in favor of something that works. Startups are always a learning process and I appreciate those who have helped me learn by sharing wise words of advice. Thank you once again posters!

<comment><USER9> You're right to forget about the strict hours, but it does sound like there's some latent problem here. I disagree with the siblings that you're "fucked". Your cofounder says he's interested in the project still, so it's worth figuring out what the real issues are and addressing them by talking with him and cooperatively fixing them. He might not know right away and need some time to figure them out, but it's important to get the discussion started.

First of all, people are _terrible_ at estimating how long something will take. You'd be better off noticing the patterns in his misestimation and adjusting his estimates accordingly in your own head. If it always takes 2x what he says it'll take, then just double whatever estimate he gives you.

Secondly, not being in at the same time as the intern always shouldn't be a big deal. If your intern really needs _constant_ handholding, he's probably not good enough for your project. He should be able to make progress on his own and send an email to the boss if he has a question, or just work on some other task until the guy gets in to ask for help. This is just a normal part of working with other people and everyone has to learn how to do it. We can't all be at the same place all the time, and hell, some teams _never_ see each other.

You might also want to remind your cofounder that drinking creates significant sleep debt, even if you get a full night's sleep, and sleep debt leads to higher distractability and subtly worse problem solving/thinking. It's possible that he's in a cycle of stressing out about work -> drinking -> not being at 100% mentally -> performing poorly -> stressing out more. In that case it'd be important for him to stop drinking and make sure he has enough stress-relieving leisure and breaks, time when he doesn't feel obligated to be thinking about work. Remember that software is a creative field, not a rote field, so the quality of his thoughts are what matters, not the hours spent at his desk.

So anyway, I suggest you treat your partner as a _partner_ and start a discussion to work _cooperatively_ to figure out why he's not being productive, or not appearing productive. It's very important to show him respect and show that you see him as an equal partner, and that you're not just condescendingly bossing him around. After all you want him to _want_ to correct himself, not begrudgingly keep up appearances.

<comment><USER10> Note: interns who need more than a few minutes of hand-holding each day after being brought up to speed on the project (which _is_ an initial significant cost) are non-starters in a startup that's got one full time long term technical employee.

One of the major objectives of many internships is to learn how to do a job, any job. It doesn't sound like a company of this size can afford interns of this nature.

BTW, who's idea was it to staff up with interns? Are they going to leave in August? December/January?

<comment><USER11> Good point. It's totally plausible that he's coming in late so he doesn't have to deal with the intern.

</comment></comment></comment></comment><comment><USER12> It seems like you are acting like a jerk. You're a startup,why act like a big company with these kind of silly rules? It doesn't matter when he comes to work as long as he works the hours and is being productive.

With this attitude, my prediction is that your startup is likely to fail. I just can't imagine any good developers can stand a co-founder who has such kind of bad attitudes and false beliefs about how things should work.

</comment><comment><USER13> Where did you find this "co-founder"? It really sounds like what you want is an employee you can boss around. Did you ask around for a geek you can give requirements to like so so many other "business guys" do who think they have a great idea for a company? You've got a co-founder, not a lackey you can tell they're "allowed" to sleep in an extra hour in the morning, if they absolutely need it.

Read what the top-rated comments here say, then read them again. Then read Michael Lopp's book "Managing Humans". Luckily for you, you asked his question in the right place. You're getting real advice here that you absolutely need to take to heart if you want to avoid a whole raft of problems and probable failure.

Good luck to you if you get your head on straight and good luck to your co- founder if you don't.

</comment><comment><USER14> You just stated why you are a terrible CEO. If you want to succeed doing a startup, unlearn everything and try to be more like him. At the least don't make things worse for him. If he is your 50% partner, he has as much right to decide the office timings as you are.

In my last job, I used to crash in the office most of the time (9 AM to 3 PM), skip most weekdays, work all night and all sunday. I never had any complaints and was considered quite good at what I do.

My last job was at Google.

<comment><USER15> "In my last job, I used to crash in the office most of the time (9 AM to 3 PM), skip most weekdays, work all night and all sunday. I never had any complaints and was considered quite good at what I do.

My last job was at Google."

In a company like Google, there are enough people in the office during normal business hours to compensate for the time you aren't there.

I can sympathize with the poster. If he (his co-founder) is the only person working on the technical side of the project, he should be there in the office during normal working hours.

When they do need to meet a client at 9am (because most businesses in the US are 9-5), will the developer be able to be there without falling asleep at the meeting?

It also shows me that the developer lacks discipline. The poster made a mistake in making him a co-founder. He probably should really be an employee.

I also get a sense that the developer wants to just hack away at the code on his own time and not have to talk to anyone about it. This is a recipe for failure. I've worked on many projects like this and what usually ends up happening is that the project gets finished with little or no input from customers/other people besides the developer and it fails.

<comment><USER14> "In a company like Google, there are enough people in the office during normal business hours to compensate for the time you aren't there."

Not really, there are several projects and average size of a team is quite small. In my case we were five people working on a quite large project and no one could compensate for my time. I knew I had to get something done in a week time and I will figure out how to do it. If needed, I had be there 24 hours, but otherwise I am my own boss.

<comment><USER15> "Not really, there are several projects and average size of a team is quite small. In my case we were five people working on a quite large project and no one could compensate for my time. I knew I had to get something done in a week time and I will figure out how to do it. If needed, I had be there 24 hours, but otherwise I am my own boss."

Somebody needs to meet with the higher ups at the company during regular working hours. It just wasn't you. It also depends on what your project entails. If it was all internal, you can easily get away with working on code all day without having to discuss it with customers.

The situation with a startup is different.

<comment><USER14> I had happily come to office at 7-8-9 AM to meet an higher up or attend an important meeting or whatever. That doesn't happen everyday.

In an startup, quite contrarily, I had want my co-founder to schedule meetings taking my timings into account. When not possible, I had come happily.

<comment><USER15> "I had happily come to office at 7-8-9 AM to meet an higher up or attend an important meeting or whatever. That doesn't happen everyday.

In an startup, quite contrarily, I had want my co-founder to schedule meetings taking my timings into account. When not possible, I had come happily."

I think coming in late is fine, as long as you can handle the early meetings when needed and the work is getting done. It doesn't seem like this is happening with the co-founder here.

</comment></comment></comment></comment></comment></comment><comment><USER16> Is he _really_ lazy, or is it just the committing hours that is bothering you?

His committing hours can change significantly than your hours particularly if he is facing challenging software implementation problems. When you get such problems (and they come one after the other in a startup) the important issue becomes fixing that royal problem rather than when or how much time you are spending on it. Those become the details. If he focuses %100 on the problem fixing, _when_ you commit definitely tends to become less and less important.

You may say, we have some communication to do in the same hours, well sometimes also it even helps to cut communication so he can figure out and finish the job.

This is for someone who is really committing his efforts though. If he's not solving any problems then best thing to do is fix the business rather than your co-founder (i.e. quit or make him quit)

</comment><comment><USER17> Developers are creatures of odd schedules. If he's got the skills to pay the bills, and gets the work done...let the schedule slide. Programmers work with computers and data which know no schedule. A tremendous number of them are traditionally nocturnal, and do their best work in the wee hours of the night.

If he's just lazy (as in, not getting things done) then there's a problem. But, your post doesn't seem to indicate that he is - just that he doesn't show up on _your_ schedule.

At a previous job of mine, developers particularly were given flexibility in their scheduling. At one point, the management were looking to lock this down for many of the same reasons that you were - they had the perception that business only happens between 9 AM and 5 PM, and expected that if developers weren't making things happen in that timeframe, there was a problem. One of my colleagues told the manager in charge of the change "I'll show up at 8 AM if you want, but I'm not going to be productive until 11 AM anyhow. I'll clock out at 5 PM after getting 5-6 hours of work in, rather than clocking out at 8 PM and getting 8-9 hours in". The management let her keep her schedule.

If your partner needs to be working with external contacts during business hours, or if he is expected to perform customer service duties and be available when people are calling the phones, that's one thing. If he's the guy writing the code, maintaining the hardware, and making stuff happen, _leave him be_. Just because his schedule doesn't coincide with your schedule doesn't make his schedule wrong. How would you react if he asked you to conform your schedule to his?

Something you probably don't realize is that he's likely working around the clock - not just during office hours. You get to clock out at the end of the day and go home and not worry about the job until 9 AM the next day. A technical co-founder never gets the luxury, really - we're always watching, working, monitoring, and fixing. If something breaks at 2 AM after we've been asleep for a half hour, we get up to fix it. If we're having scaling issues, we work 36 hours straight to get infrastructure optimized and stable. A technical founder's job conforms to no schedule, recognizes no business hours, and takes no holidays.

If you want a happy tech partner, give him leeway in his schedule insofar as it doesn't actually negatively impact the business of the business. If he's not available for collaboration, is failing in his duties, etc, he needs to change something, because he's not doing his job. If it's just "morale", then honestly, get over it. If you make his job about showing up and having his butt in a chair from 9 AM-5 PM, then that's what you're going to get a - <USER2> butt in a chair. Established companies can afford that. A startup can't.

</comment><comment><USER18> Well who died and made you all-knowing?

Let me guess. You're an MBA. You've probably spent lots of time polishing your presenting skills and becoming a good salesman, and polish and presentation are important to you.

Here's the thing - all that polish and poise is useless unless you actually have a product to sell. In order for that to happen, someone has to be creating something of value.

Welcome to how the other half lives.

Is he getting the job done? Do you have a product? Is it progressing? If you can answer yes to these questions, then please get over yourself. You're _one_ of the founders - not _the_ founder. No offense, but suits have a tendency to be seriously arrogant and think that the entire company revolves around them. It doesn't. Stay up until one in the morning trying to work around an obscure, undocumented bug in an unstable library sometime, and _then_ see how you feel about coming in later in the day.

Also, at the risk of wandering into dangerous territory, from the name I gather you're Indian, and I'm going to guess you're Indian in the sense you actually where born and grew up there.

Guess what - you're not in India any more. Business is done differently around here. Unless someone is working in sales or customer service, or works hours so incredibly bizarre that they can't communicate with _anyone_ face to face _ever_ , there's absolutely no call for this overbearing, you-will-work-when- i-tell-you-too attitude.

He's a programmer - an educated, trained technical professional - not a floor sweeper. Treat him like a programmer.

You have an opportunity here. Please do the world a big favor and _don't_ become yet another prick CEO.

See Also: <http://paulgraham.com/makersschedule.html> and <http://paulgraham.com/opensource.html>

<comment><AUTHOR> Nice guess, but I'm not Indian and Vignesh isn't my real name. I'm also not an MBA. The real question here is, who made you all-knowing? ;)

I'm not a prick, I'm just an ambitious startup marketer trying to learn about how to improve relations with my dev! Instead of being hostile (and racist), try to be understanding and sympathetic. Who knows, maybe your prick CEO will promote you!

<comment><USER19> Stop seeing him as just a "dev", give him his due respect for being co-founder of a company and see things improve!

</comment></comment></comment><comment><USER20> Does he get the work done? If the answer is yes, what's the big deal?

The hours you work don't define your professionalism, at least not this century.

</comment><comment><USER21> Is he not getting his share of the work done? That should be the measure of laziness--lack of performance--not at what hour he sits down at his desk.

I'm not aware of any studies showing that programming performance peaks between the hours of 9-5. What's the reason why you want to set this schedule for him?

</comment><comment><USER22> I'm pretty surprised he hasn't quit already judging by your tone etc.

Is he really lazy in terms of productivity? Or does he just not behave in the way that you want him to? I'm betting it's the latter.

Developers rarely show up at 9. They often _appear_ lazy. But guess what? While you're long gone, they're often working through the night.

It sounds like you just want a corporate worker drone developer who shows up in the office 9-5 and files his TPS reports.

You sound like an absolute nightmare to work with.

</comment><comment><USER23> Assuming your co-founder is a capable techy, there is no reason why you find issue with when he works.

I work in a tech startup with 8 people and me being 1/3 of the tech team.

I come in to work at 7AM sometime, because I can't wait to see some ideas in code. Most days, I walk in at 9, when the regular check-in time here is 8:00. But, I also make sure that I put in my 8 hours on average IN THE office, so that I do not give an impression of being slack to my non-techy co-workers.

I also do couple of hours of work after going home, depending on the intensity of work and my own inclination to tinker with alternate ideas and technologies.

My boss knows this and appreciates this fully.

Just like you expect your co-founder to earn _YOUR_ trust, you should also earn _HIS_ trust by understanding what truly motivates him.

Unless you are doing some mundane corporate job, where everything is already predetermined before it lands in email box, having the flexibility to work whenever you want is a necessity.

This is typical Indian behaviour. Expecting "employees" to turn up on time. Let go of it. You are not running a manufacturing company. I sense deeper communication and trust issues here. If you are the "business" guy, $deity help you both.

</comment><comment><USER24> "I have no recourse because we split the venture 50/50 (no vesting). If I want to continue on the project without him, he can block it. I've tried buying him out and he insists he's committed and will not sell under any circumstance. My only recourse is to quit and block him from taking the idea and running with it. Neither of these are admirable outcomes and I'd rather run the business as far as it can go with a lazy co-founder than end it in such an ugly fashion."

I'm sure someone here would absolutely love to work with your "co-founder". Hell, they may even give him some common human dignity as well as an interesting project.

</comment><comment><USER25> I think you need to reassess what is truly good or bad for morale. The "ass- in-seat" mentality belongs in mega-corps and does more damage than good in a small team. As a founder, your goal should be to create a culture that encourages highly productive, self-managed individuals. You want to create a team that does more with less which requires trusting individuals to manage their time (ie. working hours).

Your question is regarding your co-founder's motivation but based on your tone and concerns, I would question if you have the motivation (or DNA) needed to run a startup. Not to say you are lazy; it seems your "values" are more in line with those of Big-5 Consulting or a Mega-Corp manager.

</comment><comment><USER26> Don't judge him on how professional he is.

Do judge him on how the product's coming.

</comment><comment><USER27>
      What I really want is a decent fucking co-founder who can
      show up at 9 (or 10 AM if he absolutely needs an extra hour
      of sleep) and be a professional. Does any one have an idea
      on how to motivate him to do this?

Honestly, I think you're as much at fault as he is. First, if you wanted to dictate each others hours, you should have made an agreement about that before hand. Sounds like you assumed he would keep to your schedule and he had different ideas. That's a communication problem that should have been resolved earlier, but wasn't.

That said, there's nothing unprofessional about him showing up at 10:00 or 11:00 or 12:00 or whenever.. AS LONG AS:

1\. He's pulling his share as far as delivering results.

2\. His physical presence in the office isn't _specifically_ needed for something, such as a meeting. If there's a meeting or something on the schedule and he shows up late, then yes, that is unprofessional. But if he's meant to just show up and sit in a cube|office and write code, it really doesn't matter.

You're acting as though your personal standards for professionalism and punctuality are somehow objectively "the truth" and should apply universally. Guess what.. you're wrong. You can't just impose your standards and your will on everybody around you.

Sounds like you guys really just need to sit down and talk, maybe with a mediator of some sort (nothing official probably, maybe just a trusted 3rd party or advisor) and see it you can reach a mutually acceptable agreement.

</comment><comment><USER28> This reads as if it were just written to troll HN. I sincerely hope so, for the sake of both hypothetical co-founders.

</comment><comment><USER29> Increase your patience level. Lower your unnecessary expectations. Have a playful environment. Respect everybody's style. And agree that world doesn't move at your pace.

Step back a little. See if there is something you can fix in you rather than fixing something in other people.

I've gone through this situation, and I've come across this problem by letting the steam off, trusting people, and giving there own space as long as I'm making progress on product front.

</comment><comment><USER30> What are you talking about!!! You call yourself a startup, you call your partner a co-fouder and at the same time you are bashing him. This means things are not well at your end. If you are soo disturbed with his attitude then the best way would be to seperate yourself from him otherwise not very sure how good your startup is going to be at the end. I think co-founder is one of "the" most important factors in a startup and you should start only when you actually find one and finding one means being totally in sync with his behavior and not going mad over it.

</comment><comment><USER31> First, never ever ever do a startup without vesting and without a buy/sell agreement (I've always liked the shotgun clause: <http://en.wikipedia.org/wiki/Shotgun_clause> ).

Second, is he not working hard or just not showing up on time? If the latter, let him work the hours that he wants. If you didn't agree with the 8-6 expectations from the get-go, you've no right to impose it on him now. People work odd hours in startups. A lot of people are nocturnal.

If he's not working hard, trying to "run the business as far as it can go with a lazy co-founder" is a ridiculous plan. Negotiate a split. Agree to something like the shotgun clause or being bound by arbitration and get it done. A freeloading co-founder is too poisonous and a startup is too fragile.

</comment><comment><USER32> I had a recent experience that was similar in some ways to Vignesh. Being the business guy, I hired a developer (employee level not co-founder) to write a software program for me. I ran into some of the same issues as Vignesh like lack of motivation from my developer. He had taken the time to educate me about how difficult it might be to estimate how long it would take to get the software built and so I understood that it wouldn't be reasonable to judge performance based solely on results. I also didn't care what time of day he worked. However, where we ran into issues was that he was never motivated enough to put in at least 20 hours per week like he originally agreed to. Instead he would give me a maximum of 10 hours in a week and often only 5. It was very frustrating because I was expecting on him to at least meet this standard, one which he had control over. That frustration came across to him at times and only made his motivation level even worse. The relationship only got worse and worse over time and we finally ended up parting ways.

The one thing that I am very grateful for is that before I got too far with working with him, we had a written agreement signed and in place that stipulated what would happen in case of certain eventualities. This made parting ways a lot less messy than it could have been.

One other lesson that I learned is that it's critical to understand what motivates the other person. If you can't understand his motivations and what's important to him, then you shouldn't be working with him. It's a big, big problem to have a co-founder or a key employee who lacks intrinsic motivation to get stuff done.

As a related question to the HN crowd, how many hours per week is it reasonable to expect a developer to work? Is 20 hours per week too much?

</comment><comment><USER33> "What I really want is a decent fucking co-founder who can show up at 9 (or 10 AM if he absolutely needs an extra hour of sleep) and be a profesional"

and therein lies the problem ... he's the technical guy, you're the business guy, you're setting the same standards for him that you do for yourself, which is inherently wrong.

does he meet his targets??, if the answer is YES, then the problem is yours, not his.

</comment><comment><USER34> Don't you think that there is a chance that your co-founder reads HN and that there is probably more than enough information in your post to identify yourself?

You might want to consider the term "professional" - I really don't think it means what you think it means. Posting this kind of stuff to a popular forum is far more unprofessional than anything you have accused your co-founder of.

</comment><comment><USER35> Agreed with what everyone else is saying. A startup is not just a corporation writ small. In a startup, the only think that matters is results. Your complaints about morale and "presentation" don't belong in this world.

Let me ask you this: would you be willing to accept a much lower quality of work just to have him come in at 9am? If not, then why are you pushing the issue?

</comment><comment><USER36> It sounds to me like you are a manager, and your co-founder is a technical person/hacker. You need to read these:

<http://paulgraham.com/makersschedule.html>

<http://paulgraham.com/gh.html>

Honestly, you are trying to manage your technical colleague, and you don't understand him. These articles, if you study them, will give you insights to help you firstly understand, and secondly to work effectively with him.

That would be a win for you both.

</comment><comment><USER37> \- I agree, it looks unprofessional: then hire some other guy to do the morning show.

\- As a night owl myself: I can work in the morning (at least just enough to look professional), but it's like asking you to wake up in the middle of the night and work. At 3am: are you efficient? I guess not.

Contrarily, when I'm on my own schedule (awake after 10pm), when I get in the zone, it's like adrenalin in my veins. Can't be compared.

Don't be that guy, there is no compromise here.

</comment><comment><USER38> Unprofessional is a weasel word to say "I don't like this behavior but I don't have a good reason."

</comment><comment> clark-kent Don't give your developer any schedule, let him work the way most comfortable for him. A developer is a creative person, you can't schedule their productivity. A developer can go 3 days with no productivity and then spend one night finishing all the work. Just keep up with him to make sure his targets are suitable for you and the business. Then just let him flow.

</comment><comment><USER39> We're also in the early stages of being a start-up and there's also a big discrepancy in the personalities and working styles of all the founders. The thing is you just have to accept it and push through it.

The only thing that matter is the results. If you have issues with your partner, deal with it in a way so it doesn't interfere with the operational aspect of the business. For instance, myself and my one partner have a significant personality clash; we used to live together last year and we'd clash a lot. We came to a great arrangement - when tension reached a point where debate wouldn't work anymore, we'd fight it out. Not a real fight, but a physical tussle none-the-less. No punches where thrown but there were bruises and scratches afterward. However all our tension would have been defused.

I'm not saying you should wrestle with your partners, but find a lateral way to defuse the unnecessary retardants that are limiting your overall productivity, or in your case, the company's morale.

</comment><comment><USER40> First of all Vignesh, imho you posted this in the wrong site. Has grammaton so eloquently put: you´re a suit, you´re in the other line. You should seek advice in a suit´s portal or whatever.

Don´t get me wrong guys, there great advices in here. And I learned and confirmed some of my believes with you. We, for instance, hired a developer and we work objective oriented. The only thing we ask is, somewhere in the day, everyone comes by the office for planning and helping.

I´m a designer, and work closely with developers and it works great , because our set of minds are very close (creative to creative). I mean, there are and always will be friction between production and marketing/sails. I guess I was hoping that Vignesh, as a minority in here, would be treated with a little more respect (troll? Prick?).

For those who truly helped, I apologise this rant.

Peace. :)

</comment><comment><USER41> If your only standard for be a professional is showing up, maybe you should reconsider why you started your own company instead of working for MegaCorp.

If you are the "business guy", It is your job to build the reputation, and his job to build the product.

</comment><comment><USER42> Flagged. This is a troll. (yes, there are people who are this stupid, but no, they don't post messages like that to this board)

</comment><comment><USER43> Honestly, I don't mean to be rude, but maybe you should get out of the startup world - or work really hard on getting away from the 9-5 mentality. Startups are about ultra-productivity period!

</comment><comment><USER44> Why does showing up in the AM matter? Is there something that has to happen in the AM vs. the PM? If he puts in his 12 hour day starting at noon does it really make any difference?

</comment><comment><USER45> There is nothing in your post that suggest he isn't doing a great job or getting a ton done.

Assuming there isn't a problem with performance - perhaps he enjoys working half of his hours when you are not there. So he can productively get through code without constant startup issues.

I mean this with no disregard to the importance of things other than coding - but from experience these issues can make it tough to stay on schedule and get through the mountains of coding necessary.

A schedule like his could balance these items out.

</comment><comment><USER46> Set deadlines and monthly targets. Also for the interns. If he meets them, everyone will see he is productive, no matter when he shows up and morale will not be affected.

<comment><USER45> Measure progress by what has been accomplished, not by what is easy to measure.

(product and business dev, not the timeclock)

</comment></comment><comment><USER47> You're making the assumption that not showing up at 9 means the guy is not motivated - which clearly is probably totally unrelated. Help him strive by staying open-minded.

Something that will be beneficial to you: learn about Non-Violent Communication (<http://www.amazon.com/exec/obidos/ASIN/1892005034>). You're clearly making a lot of evaluations/interpretations, instead of checking the facts.

</comment><comment><USER48> The funniest part of all this is that if he would've posted on an MBA forum everyone would agree with him and bash the hacker!

</comment><comment><USER49> Devs work weird hours. As much as I want to be in the office at the same time as the other devs in our team, I cannot impose my own hours on other people.

How about just agree that all of you guys would be in the office 4-5 hours (e.g. 12nn-5pm) at the same time everyday? That way, there is flexibility on the work schedule.

</comment><comment><USER50> Is the objective for him to come in on time? Or for the work to be done? I guess you are having buyer's remorse. Do you guys have a way of seeing progress in the product? That would be the first thing I would do. This way you can see if the working habits need to change or not.

</comment><comment><USER51> You asked this in the right place. I hope we don't come off as hostile, or simply defending a fellow hacker. This truly seems like a misunderstanding of personality types. Try communicating better with your partner, and focus on what is _really needed_ for success.

</comment><comment><USER52> Don't feed the trolls.

</comment><comment><USER53> Lots of good advice already given. If you can't get over yourself, just pretend he is working a second shift.

</comment><comment><USER54> Either work with his style or fire him. It's that simple.

</comment><comment><USER55> How does showing up at 9 am make one more motivated?

</comment><comment><USER56> It sounds like Vignesh's 2010 is going to as successful as BP, Tylenol, and Blockbuster

</comment><comment><USER57> You can't.

</comment><comment><AUTHOR> Also, for the record, I'd like to note my hours are 9-9 not 9-5.

<comment><USER58> What is it that you do for 12 hours (genuinely curious)?

<comment><USER19> trolling :)

</comment></comment></comment><comment><USER59> The tone of your post ("or 10 AM if he absolutely needs an extra hour of sleep") indicates to me that you might have an unhealthy perspective on sleep. Sleep is incredibly important to the consolidation of memory, and research indicates that the vast majority of consolidation might occur around the very last REM cycle! In other words, his creativity, intelligence, and memory will all be improved through extra sleeping.

</comment><comment><USER60> More advice: if you do part ways, I woudn't worry about or do any fighting over him "taking the idea". In all honesty, despite what the USPTO might have you think, nobody can own an idea. Lots and lots and lots of people have been independently coming up with about the same exact ideas for centuries. The trick is execution, and timing, and luck, and polish, and firing on all (or enough anyway) cylinders. I have dozens of notebooks full of ideas --- sitting on a shelf, and therefore worthless. There's a very very high likelihood that there is somebody already out there executing on the same idea as you are now. They might be a little ahead or behind, or a little different in various ways, and you will never escape that contextual reality. The trick is what you do, and what you make of things.

Fighting over ownership of an idea will just lead to more grief for you, for him, and for the community -- except for lawyers, because they'll _love_ the billable hours thank you very much!

</comment><comment><USER60> I know pg is an advocate of 2+ founder teams, and that there are some arguments in favor of it, and I respect his experience, but in my mind and from what I've observed in life this post is like a poster boy example for why the ideal is to have only 1 founder.

Just start with 1 founder, with 100% equity. Then incrementally grow it out from there, see if you get traction, etc. If you need to raise cash, exchange it for equity but still retain as much equity and control as you can. It's ideal to always have a single "benevolent dictator" who has final say in all things, for cases exactly like this. As soon as you start bringing in a 2nd person, a 3rd, more equity partners, especially big ones like in this case, all kinds of seemingly intractable problems can arise.

Can 2+ founder/partner startups work? Of course. But this situation is a classic example of what can go wrong with it.

<comment><USER61> I think you may both be right. Would pg fund this team, or would he be picking 2+ teams after filtering out all the ones that don't work together well?

</comment></comment><comment><USER62> Vignesh- I think you're jumping the gun by assuming he's lazy. As you're reading here, a LOT of developers are not normal when it comes to hours. Instead of jumping to conclusions, why don't you work out a dev schedule that you can both commit to and judge him by that alone. I suspect you're making the morale issue out to be more than it is. You are being too self-centric and not really understanding how developers live. Give this another chance and do some serious self-reflection, and ask yourself if he's truly lazy or if you're just being inflexible and anachronistic in your assumptions about work time and productivity.

</comment><comment><USER60> first impression about what might be wrong here:

1\. just moved into offices, now you have a burn rate and clock is ticking, increasing pressure. maybe should have stayed working at home/Starbucks

2\. have an intern and one who needs guidance. why this early? the more people you have the more complex things get, and in the case of your tech co-founder sounds like a greater burden on him. he may not like coming in now when the intern is there because the intern will interrupt him and so he'd prefer to work at home or at later times of the day

3\. he's your 50% co-founder and main tech guy, NOT your employee. if I were in that situation, I'd consider myself as not really having a boss. at best, a partner. it's true he needs to deliver and you need to have a mutually trusting relationship or it's going to fail. there are many downsides to a startup but one upside is the ability to have no bullshit, no bureaucracy, no boss, and work whenever and wherever and however you want, as long as the work gets done and you move ahead at a sufficient rate. If you really and truly think he's not pulling his own weight then the earlier you can part ways with him the better. None of us here can truly know enough details about your situation to say for sure whether this situation is your fault or his fault, but if the trust is gone it may be best to bail.

</comment><comment><USER5> If the dev is getting the job done, let him work 1 hr a day if he wants that. If he is slacking off a lot then don't hire interns have him pick up his slack and show you why he can't get the job done and needs help.

If the dev is really not being effective, try setting deadlines, and giving him more interesting problems to solve. Don't require any hrs, in fact let him know that if he can meet the deadline with 30 minutes of work per week then he earns himself a vacation for the rest of the time. However make sure his estimates are reasonable. Basically become a "slave driver". Note: DO NOT MICROMANAGE. Give him a "what must be done this week" thing, and check up at the end of the week, or before you leave every other day (and by check-up I mean ask him if hes on target, facing problems, etc, 5 minutes max).

If all does not work, cut your losses.

Regarding the intern and yourself. Question yourself/intern as to the interaction needs between everyone. If you all need to be together at the beginning of the day to discuss something, then ask your developer if he can teleconference in the morning, then go back to sleep (if possible). Let the intern work whatever hours he/she wants if its also development work and not client-related. Remember measure productivity VS hours. I find that I can be more productive in 1 hr on the TRAIN with my DINKY NETBOOK AND NO INTERNET than 5 hrs in the office or even at home. And usually after the train ride anything that I haven't solved is already well discussed in my mind and 20 minutes of google + typing solves that when I get home. I can't mention this enough, if the productivity is not suffering then let him be.

Have you considered flipping the work day? Would you be happier coming in in the PM?

The only time anyone needs to be in the office is for people to communicate, and to keep track of people, if minimal communication is necessary there is no need for fixed hrs especially in a startup.

</comment><comment><USER63> Simple suggestion, have the interns show up in the pm the same time as the developer..</comment>


Smart software; dumb hardware - <AUTHOR> http://dangoldin.com/2013/04/24/smart-software-dumb-hardware/

<comment><USER2> "Hardware doesn't need to become smarter, it just needs to be able to sync with our phones which can do the heavy lifting."

General purpose computers are quite good at what they do, however, there are a large number of tasks that you want done but don't need or want a general purpose computer, or a user, in the loop, which is what "smart" hardware is there for.

<comment><USER3> Good point. I'd argue that this was a more significant issue in the past when computational capability was lower and components were more expensive. Now that sensors are getting cheaper and phones are getting more powerful it makes sense to offload more work to the phones due to the benefit having it done via software provides.</comment></comment>


Google reverses course on cutting off Works with Nest - <AUTHOR> https://www.cnet.com/news/google-reverses-course-on-cutting-off-works-with-nest/ <comment> ng-user Here's a direct link to Google's update: [https://blog.google/products/google- nest/updates-works-with-...](https://blog.google/products/google-nest/updates- works-with-nest/)

</comment><comment><USER2> How is this backtracking?</comment>


CSLA.Net move to MIT license - <AUTHOR> https://github.com/MarimerLLC/csla/issues/532 <comment><AUTHOR> I remember using CSLA.Net back when I was into windows, .net and C#. The books [0][1] were great resources for learning about application architecture and did a good job at explaining the author's rational in respect to some framework design decisions. Also I found it easier to understand and use than entity framework.

I think it's great that the less restrictive MIT license is being used now.

I see they have already begun a javascript implementation [2] as well (not much activity there though). I think implementing CSLA.net with node.js or dart(lang) would be nice in depth familiarisation exercise with both languages/platforms.

[0] [http://www.amazon.com/Expert-Business-Objects-Books- Professi...](http://www.amazon.com/Expert-Business-Objects-Books- Professionals/dp/1590593448)

[1] [http://www.amazon.com/Expert-Business-Objects-Experts- Voice/...](http://www.amazon.com/Expert-Business-Objects-Experts- Voice/dp/1430210192/ref=dp_ob_title_bk)

[2] [https://github.com/MarimerLLC/cslajs](https://github.com/MarimerLLC/cslajs)</comment>


Europe's digital chief: PRISM fallout could cost US cloud industry billions - <AUTHOR> http://www.zdnet.com/prism-fallout-could-cost-us-cloud-industry-billions-warns-europes-digital-chief-7000017712/

<comment><AUTHOR> 1\. Avoid _any_ cloud, not just the "US cloud", whenever you can.

2\. Use applications that let you store your data _locally_ and that work peer-to-peer, in a decentralized manner, and without any central server.

That is where the Internet needs to go.</comment>


Show HN: We turned the Google Shopping API into a game - <AUTHOR> http://cityposh.com/contests/apple-tv-25-for-itunes/price_pickers/new

<comment><AUTHOR> It's not perfect yet, but it is fun if you like price is right style games :) I'll probably be deploying a bug fix right after this comment, but thought you guys would dig seeing an alternative use of the Google Shopping API. Made by a few HNers. Hat tip to bcroesch for a lion's share of the work.

EDIT: Oh, you guys might dig this too. I would think there's some Sodoku fans on there. We made an image based Sodoku all in html/css/jquery. [http://cityposh.com/contests/apple-tv-25-for- itunes/poshokus...](http://cityposh.com/contests/apple-tv-25-for- itunes/poshokus/new)

<comment><USER2> Loved it. Of course I'm biased since I'm in the 'gamification' space. I'm definitely horrible at this game, but every time I was about to quit I just had to click try again to prove that I could actually get one right.

I finally got up to about 800 points :)

<comment><AUTHOR> Awesome thanks! Oh IActionable.com is very interesting. Gamifying Salesforce sounds like a great idea! I'll check this out too.

</comment></comment></comment><comment><USER3> Could be fun, but needs titles of the products with the pictures or half the time you don't even know what you're looking at and touching "hint" goes to the website.

<comment><AUTHOR> Right, understood. But that is also a big point of what we are doing with Cityposh. It's a promotional tool for businesses after all. So traffic back to their website is very much desired by companies who want to use Cityposh to promote them.

<comment><USER4> What can possibly be done is to open a in browser popup which shows the details of the product with an option of viewing them later. If i am playing the game with the intention of playing its not very likely that i would pause to buy before returning to the game. You can add whatever items were clicked for in a list below and when the game ends show the items that the player showed interest in.

<comment><AUTHOR> Yeah, that's a very interesting idea. Thanks for that. We'll chew on something like that for sure.

</comment></comment></comment></comment><comment><USER5> Nice work. This taps straight into a game mechanic most people already have ingrained into them. Really addictive for a marketing game.

Two suggestions:

\- Size up the images to be a greater percentage of the containing space. With a high resolution people are going to be squinting to figure out the products.

\- After the user loses, show them what they got wrong - it's pretty unsatisfying not to see where you went wrong, and it's the behaviour people expect from the "price is right" mechanic. From your point of view, it's also an addition time to plug links.

<comment><AUTHOR> Awesome suggestions. Thank you so much for these.

</comment></comment><comment><USER6> It's clever, and you can make at least as many variations on this as the Price is Right. Separate games for electronics, homewares, etc...

The ranking game is annoying me though. Some suggestions:

\- if I fail to put them in the right order it should tell me how many are in the wrong position.

\- if I ultimately fail after n tries it should reveal the prices. Right now I just sit there frustrated and unenlightened as to what I did wrong.

\- audio cues for winning / losing. Really important for a game like this.

<comment><AUTHOR> We hear you for sure on these points. Audio is the top of the priority list for polish we need to add to all of Cityposh. Thanks for checking it out, and helping us with this.

</comment></comment><comment><USER7> Sweet and addictive.

Complaint! When I click correctly on something, a red box shows up around the object for a second and then a little alert says "1 out of 2 tries" above the items. Below it tells me if I got it right.

This is confusing. The red box and the 1 out of 2 tries makes me think I picked wrong. But then the text below says I chose correctly. It's not immediately clear if I did well or not as I'm playing.

<comment><AUTHOR> Agreed. I had the same kind of thing happen, and felt the same way. Thanks for bringing that up.

</comment></comment><comment> misuse-permit Nice creative idea here. I think its pretty fun.

A few things:

1\. Sometimes I have no idea what an image is showing. Text would be really helpful.

2\. What is the purpose of hints? I know people could just google search, but why make it so easy?

<comment><AUTHOR> Thanks misuse! We are debating text over here. Text would make it easier to bot I think. Please don't bot this fellow HNers just because I mentioned this! :) Please! So a way to fix the bot problem here, is to force the optical character recognition to be the way to have to crack it. And Text descriptions would thwart that. So the purpose of hints is basically so you don't have to have text descriptions but still have a way of going over to the site to see prices. It's not perfect of course. Maybe the hint could be made a bit harder, like we send you to a search for "Macbook Pro" instead of the exact item. Thanks for the feedback on this and checking it out.</comment></comment>


We don't own our digital lives and it's time we started caring about it - <AUTHOR> https://www.androidauthority.com/digital-tenancy-1120084/ <comment><USER2> Misleading title. It should be "We don't own the digital services or products we use online even if we paid for using them...". There is no "digital life" aspect to it. Still intersesting lawsuit against Amazon, can't expect any better from them.</comment>


Ask YC: Favorite email parsing library? - <AUTHOR>

Any recommendations on a good library for parsing emails in mbox format? I'm pretty agnostic as to language (I don't know Python, but if the library is that good, I will learn it). I mostly care that it takes care of all the language encoding business for me. I've been using the Perl Mail::Box suite, and language encodings with that is just a mess.<p>Thanks everyone! <comment><USER2> leave the parsing to someone else and use plan9's upas mail file system

<http://doc.cat-v.org/bell_labs/upas_mail_system/>

<http://www.quanstro.net/plan9/nupas.pdf>

now available for plan9port on Unix

we don't need no stinking APIs and Libs, give us grep awk sed and cat

</comment><comment><USER3> Best parser I've found for PHP is the Pear mimeDecode library. Takes a bit of time to figure out the header parsing but it's pretty decent at handling the UW torture test.

</comment><comment><USER4> rmail for ruby totally rocks for parsing emails. I haven't used it for the mbox format but I think it can handle it.

</comment><comment><USER5> hmm, i've parsed email before. is there something specific to email encoding than general files? such as parsing the "encoding" header thingy? anything else?

</comment><comment><USER6> upasfs(4) <http://man.cat-v.org/plan_9/4/upasfs>

Edit: Damn, skwiddor beat me to it :)</comment>


U.S. spy agencies mounted 231 offensive cyber-operations in 2011, documents show - <AUTHOR> http://m.washingtonpost.com/world/national-security/us-spy-agencies-mounted-231-offensive-cyber-operations-in-2011-documents-show/2013/08/30/d090a6ae-119e-11e3-b4cb-fd7ce041d814_story.html

<comment><USER2> Obama stated that if any nation conducted cyber attacks against the USA that such attacks constituted an "act of war."

[http://www.forbes.com/sites/reuvencohen/2012/06/05/the- white...](http://www.forbes.com/sites/reuvencohen/2012/06/05/the-white-house- and-pentagon-deem-cyber-attacks-an-act-of-war/)

Funny how the double standard rears its ugly head from time to time...

</comment><comment><USER3> >"The Department of Defense does engage" in computer network exploitation, according to an e-mailed statement from an NSA spokesman, whose agency is part of the Defense Department. "The department does ___not_ __engage in economic espionage in any domain, including cyber."

Why not? It would be effective.

<comment><USER4> You're assuming they're telling the truth.</comment></comment>


Ask HN: What are some open source projects that a beginner can work on? - <AUTHOR> Please link to the GitHub pages or the repo page, and also mention the prerequisites. <comment><USER2> The answer is "all of them!"

ESR wrote "Every good work of software starts by scratching a developer's personal itch." You'll be much more effective working on a program that you use and want to make better, compared to a beginner-friendly project that you have no interest in.

Instead of looking externally for projects, look inwards. Think about the software you already use, and how it could be better: that stupid annoying behavior, or that obvious improvement, or your idea for a cool feature. And then set your sights on that!

An example: I was a big fan of the game Angband, which I played on Mac OS 9. When OS X came out, I wanted to play Angband again. So I "carbonized" it, so I (and others) could play it on OS X. I had never carbonized a program before, and that's how I learned.

I apologize for not really answering the question, but I have known aspiring programmers give up because they got bored. "Not being bored" is really important, more important than "not being frustrated."

<comment><USER3> This is seriously not true.

I've had experiences of projects I tried to get involved because I liked the software but where the maintainer had zero interest in involving any new people. It's lovely that developers scratch itches and create cool software - there isn't anything that implies those same people want to work with other new people.

I'm glad you had a good experience and maybe I was unlucky or whatever but I don't think mere interest in the software is enough, the project has to be in a state where the developers want other programmers involved (lots of projects would like some testers and documenters but nothing else and to an extent understandably).

I mean, I'm not sure why guidance towards accessible projects is a bad thing.

Edit: Oh I knew I'd get reactions. Counter-arguments? A lot of professional software teams have a hard time adding new people. Why would any old open source project be easy to get involved with?

Edit2: I love the idea of open source, I want to get involved again in a larger project when I have time but the "no problems" guidance approach seems itself a problem. Lots of projects are even infamous for problems. There's clearly more to what project you'd be a fit for than "what you love" and just leaving that as the advice seems like a characteristic problem of open source itself.

<comment><USER4> Well, the idea is that if you start working on a project specifically because it is noobie friendly you are likely to burn out quick since you don't have that itch you are scratching.

I think the parent is correct in that you should try to work on projects that scratch an itch. If it turns out it is a hard community to work with then fork it or move on to your next itch.

<comment><USER3> _If it turns out it is a hard community to work with then fork it or move on to your next itch._

Some people might unlimited energy to program and infinitely thick skin. I think a lot of people find putting energy into a project that rejects their efforts to be somewhat traumatic and something that can impel them to give up rather than bounding on to this next adventure.

I agree that getting involved with a project that interests you should be one factor in choosing what to involve yourself with. But the OP said "any of them!" concerning what project to get involved with where as I'm arguing one should be selective and that people involved in Open Source already should be giving some guidance on the question beyond just "whatever you want".

<comment><USER5> I think this is a bit of a non issue. Wouldn't a bad community or developer become evident when you started looking around at how to help and contribute to the project?

Just recently I decided I was bored with my routine at home and wanted to challenge myself. So I set a task: pick a public repo that I don't already maintain (preferably that I use), find a bug I would like to see fixed (emphasis on would like to see the bug fixed), and to fix it.

I ended up choosing a program that I use but is written in a language I'm not familiar with. Regardless, I jumped right in.

First I looked around for any mailing lists or chat rooms where development discussion is carried out. I joined and asked how I can help, and was directed to the bug tracker and told to go nuts. I can see how this can be a daunting task, but I found the easiest way forward is to put those feelings of being overwhelmed aside and to just start. I cloned the repo and grepped for a tag I hoped would get me to the code I needed, luckily it was a good guess.

I spent the weekend reading the code for no less than three different projects and learning a lot about erlang, and by yesterday evening I had a patch created and a pull request submitted. And I feel fantastic for it and am looking forward to setting a similar challenge next weekend.

My point is that I think part of looking around the project and bug tracker should help you figure out what the attitude of the Dev team is like. I don't doubt there are sour devs our there but IMO they are few and far between, more likely is the unresponsive maintainer who lost interest in the project but still has the keys to the kingdom.

What's the worst case scenario? You create a patch and the project maintainer refuses to merge it? If he doesn't provide good reasons for not wanting to merge it, he looks bad. If he says your code quality needs improvement you can ask for specifics and learn some new tricks. If he says he just doesn't want that feature then leave your code up on github and see if other people start advocating for having your issue merged. This seems like a tempest in a teacup to me.

<comment><USER6> When you are just starting out, you don't know what is normal and you can't tell whether the project is poorly run or whether you are just bad at programming and should give up.

<comment><USER5> I think if you don't know what's normal yet, set the bar.

What I mean is, when you're trying to contribute, how do your interactions with that project and the developer(s) make you feel? At the end of the day, if you're not enjoying yourself and what you're doing, drop the project and find something you enjoy. Might be a different more-receptive project, but it might be a different hobby too, I would encourage you to try multiple project before giving up though.

<comment><USER6> > "if you don't know what is normal yet, set the bar"

What do you actually mean by this? I'm pretty sure I'm misreading you here.

What I'm reading is "when you come into a new organization and you see people doing things that make you feel bad, force them to change their culture." However, arguing against that feels like arguing against a strawman because it seems obvious to me that you can't effectively change an organization as a random novice and that trying to do so is going to make people really dislike you. Even if it would happen to work, doing it requires being the sort of person thats willing to be called an asshole.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I strongly recommend trying to contribute to a project that you personally use. Once you've been using it for awhile, you'll be better equipped to make changes to it + you'll maybe find bugs that you can fix. While you're doing this, mark yourself as a watcher of the project on Github, that way you can see bug reports come in and maybe fix them.

You can try to contribute to just any project someone here suggests, but I find it hard to get motivated + be skilled enough in that language/project to just start contributing. Can you talk about your current skills and what kind of languages/libraries you're using now, or are interested in learning?

<comment><AUTHOR> I know C and also Javascript/jQuery/CSS/HTML and I want to work on a project, so as to apply what I've learnt into something that is actually useful.

<comment><USER8> I strongly agree with MaxGabriel. I find it difficult to make meaningful contributions to projects which I don't use or have some familiarity with. I am significantly more motivated to make contributions to projects which I have invested my time in.

My advice is to start small. Look into making documentation updates and fixing bugs you find in projects you currently use. Expand your open source toolset as you build more and repeat the process.

</comment></comment></comment><comment><USER9> Does anyone have a good writeup on the workflow for contributing to open source Python projects? I often fix small bugs, but it's a pain because I usually install via pip, then when I realize there is a bug, and fixing it myself is the fastest way to resolve it, I have to go out of my way to do so. I have to remove the pip package, fork the original repo, clone it into the repository of my current project (where I would rather it not be) and load it directly as a module. Then I can edit the source code, find the bug, fix, commit, and pull request. But at that point my project's code depends on its own local copy of the buggy repo until the upstream repo finally merges the fix (if ever).

If anyone has a better workflow for fixing ad hoc bugs you discover while integrating an open source library into your project, I would love to hear it.

<comment><USER10> If you have a public repository anywhere (e.g. you've forked a project on github) then you can add a specific git commit to the requirements instead of pypi version.

See [https://pip.pypa.io/en/latest/reference/pip_install.html#vcs...](https://pip.pypa.io/en/latest/reference/pip_install.html#vcs- support)

<comment><USER9> Exactly what I was looking for. This is why I come to HN. Very clever. Thanks.

</comment></comment></comment><comment><USER11> The Servo project[1] has a constantly maintained list of bugs and features appropriate for new contributors, and several people willing to mentor if needed.

There is so much low hanging fruit building a new browser engine, that there is plenty of stuff to work on even if you aren't yet an expert on browser engines.

Also, you get to use a new programming language :)

[1] [https://github.com/servo/servo](https://github.com/servo/servo)

</comment><comment><USER12> I would look at the list of projects Google has accepted for Google Summer of Code ([https://www.google- melange.com/gsoc/org/list/public/google/g...](https://www.google- melange.com/gsoc/org/list/public/google/gsoc2015)). They should all be mature enough to have established protocols for newcomers, and with luck they'll be friendly enough for you to feel welcome. (Drupal is on that list, and as a contributor I can certainly vouch for it in both those areas.)

<comment><USER13> Even better, I would recommend looking at the Google Code-In organizations. Those communities are specifically set up to deal with new inexperienced contributors whereas many GSoC orgs simply are not: [https://www.google- melange.com/gci/org/list/public/google/gc...](https://www.google- melange.com/gci/org/list/public/google/gci2014)

The GCI orgs all have loads of tiny tasks spelled out that can be completed in less than a day too.

</comment></comment><comment><USER14> I have an online friend who contributes to firefox. They are fairly beginner- friendly, though you probably need to have some C++ skills.

[https://www.mozilla.org/en-US/contribute/](https://www.mozilla.org/en- US/contribute/)

<comment><USER15> I contributed to Firefox. The Mozilla guys are awesome.

But if you are used to Github/PRs their Bugzilla/Hg-Patches workflow feels like going back in time... way back to the old days.

<comment><USER16> Ignore anything about MQ. They have old docs on using MQ that we've been trying to wean them away from.

Modern hg is far better than MQ, and in some situations, better than git. You can edit, you can rebase, you can amend, you can evolve.

<comment><USER15> MQ?

<comment><USER16> Mercurial queues. I thought that's what you meant with "patches".

<comment><USER15> Ah yes. MQ was the plugin used to create those patches, now I remember.

They stopped using? Even on the main Firefox repo?

<comment><USER16> Like git, Linux, Mercurial, and gcc development, they have a patch-based code review flow, but MQ is not needed to produce the patches that they expect. You can do the same without MQ, and they will never know the difference on their end.

I actually rather like email-based code review. It's really easy to keep editing and rebasing your patch while people comment on it. If Mercurial Evolve picks up, this will be an awesome new way to work, especially if Kallithea or Bitbucket grows the features to support it.

However, current Mozilla development, AIUI, is moving towards ReviewBoard, although I have heard a growing mutinous group in Mozilla who just wants to chuck all homegrown solutions and slap all of their code on github like everyone else.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> [http://www.openhatch.com](http://www.openhatch.com) A website for ongoing opensource projects in python.

<comment><USER18> They're a great resource, not limited to python projects though. Besides providing help on choosing a project, they also coach you on how to approach an open source project and what to expect in the open source world. They have a bunch of talks regarding the same which are worth checking out.

</comment></comment><comment><USER16> I find Mercurial very easy to work with. You just need to know some 2.x Python.

Here's the repo:

[http://selenic.com/hg](http://selenic.com/hg)

And here's their list of easy bugs:

[http://bz.selenic.com/buglist.cgi?keywords=easy&list_id=5790](http://bz.selenic.com/buglist.cgi?keywords=easy&list_id=5790)

Contributor guidlines:

[http://mercurial.selenic.com/wiki/ContributingChanges](http://mercurial.selenic.com/wiki/ContributingChanges)

If you're interested, I could mentor you through some of it.

Edit: Oh, and this appears to be our April Fool's Prank:

[https://www.youtube.com/watch?v=qtAuQXeQrMQ](https://www.youtube.com/watch?v=qtAuQXeQrMQ)

</comment><comment><USER19> Ned Batchelder has a good page with "Kindling projects" [http://nedbatchelder.com/text/kindling.html](http://nedbatchelder.com/text/kindling.html)

</comment><comment><USER20> The Assembly ([http://assembly.com](http://assembly.com)) community is a great way to get involved in building products. The community builds businesses together, and everyone shares ownership based on what they've contributed. (also, it's all open sourced under AGPL).

It can be a great way to expand your skills as a developer and also to gain experience working with designers and solving problems around growth, product positioning, pricing, and all sorts of other things.

[disclosure: I work at Assembly -- happy to answer any questions: firstname.lastname@example.com]

</comment><comment><USER21> Ruby gems are a good example, especially gems that provide hooks into an API.

Even if you're just adding another parameter to an existing endpoint (which is largely a copy/paste exercise), it's a great way to learn the structure of a gem, learn your way around API documentation, and check out others' best practices and unit tests. I contributed to the official Instagram gem during my first few weeks of learning Ruby.

[https://github.com/Instagram/instagram-ruby- gem](https://github.com/Instagram/instagram-ruby-gem)

Prereqs: Ruby, API basics

</comment><comment><USER22> Start with a project you use or depend on in your own projects. It's probably best to start by enhancing or adding a feature on that project.

Other things to look for is a project that is managed by people who a receptive to pull requests and have accepted them routinely. Also look for projects that have lot of issues open and closing on a routine basis--this will mean the project is in active development.

This will keep you motivated and provide you with some good mentors who may accept or suggest improvements to your pull requests.

Along the way you will probably learn about forking repos, writing good commits, sending pull requests and most of all, contributing code.

More mature projects have a lot of tooling such as running unit tests, adhering to coding standards, etc which can create hurdles to entry bfor beginners but if you do venture forth with these you'll develop some great habits.

</comment><comment><USER13> The open source projects that participate in Google Code-In (GCI) cater to beginners with little to no experience: [https://www.google- melange.com/gci/org/list/public/google/gc...](https://www.google- melange.com/gci/org/list/public/google/gci2014)

For GCI, they have to maintain lists of tiny tasks that can be completed in just a few hours. You don't have to be participating in GCI to work on those tasks. They will also have people in their community interested in helping you.

Source: I'm the admin for one of the GCI orgs.

</comment><comment><USER23> I am the author of pgcli. ([https://github.com/amjith/pgcli/](https://github.com/amjith/pgcli/))

It is written in Python and it is being actively developed.

You can find some notes on getting started with development here: [http://pgcli.com/develop](http://pgcli.com/develop)

It is a command line client for Postgres database.

I'll be more than happy to answer questions or help you get started. My email is amjith.r [at] gmail.

Feel free to get in touch.

</comment><comment><USER24> Mozilla.org is always looking for web developers to contribute and beginners are always welcome. This wiki page gives an overview of how to get started and a list of "good first bugs."

[https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org](https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org)

</comment><comment><USER25> If you read something in Pro Git that could be better, or if you find a mistake, we're taking contributions at [https://github.com/progit/progit2](https://github.com/progit/progit2). The only requirement is that you agree to license your contribution under the CC BY-NC-SA license.

</comment><comment><USER26> [https://www.openhub.net/](https://www.openhub.net/) it's a great site to search projects in any language

</comment><comment><USER27> This Hacker News app for Android is relatively small and readable, plus it would be great to get some more contribution going.

Look into it.

[https://github.com/dinosaurwithakatana/hacker-news- android](https://github.com/dinosaurwithakatana/hacker-news-android)

</comment><comment><USER28> [http://www.freesbd.org/](http://www.freesbd.org/) A fun open source operating system.

Some C knowledge required.

<comment><USER29> You say some C knowledge required when we are talking about a complicated UNIX kernel.

right..."some"knowledge is really required...

<comment><USER28> There is a userspace too, if you find kernels scary. In reality though, the kernel is simpler than userspace in some ways.

The website could also use work. That's HTML/JS, you don't need kernel or C experience.

</comment></comment></comment><comment><USER30> For GitLab we have a list of items that are marked 'accepting merge/pull requests' on [http://feedback.gitlab.com/forums/176466-general/status/7964...](http://feedback.gitlab.com/forums/176466-general/status/796455)

There are more than 180 items, including things that should be relatively easy for a Rails programmer. For more information see [https://gitlab.com/gitlab- org/gitlab-ce/blob/master/CONTRIBU...](https://gitlab.com/gitlab-org/gitlab- ce/blob/master/CONTRIBUTING.md)

</comment><comment><USER31> [http://www.codetriage.com/](http://www.codetriage.com/) lets you view projects by the number of open issues. I'm not sure how to gauge the beginner- friendliness of the projects.

</comment><comment><USER32> We are building a collaborative platform for creating open educational resources, called Crowducate. We have many ways to get involved such as testing, planning new features, outreach, translation, and a few JavaScript tasks.

Our sourcecode is on Github:

[https://github.com/Crowducate/crowducate- next](https://github.com/Crowducate/crowducate-next)

Planning documents are on Hackpad:

[https://crowducate.hackpad.com](https://crowducate.hackpad.com)

</comment><comment><USER33> I sometimes put a `help-wanted` tag on GitHub issues I think are especially well-bounded items someone could contribute. It looks like other people use that tag, too: [https://github.com/search?l=&p=2&q=state%3Aopen+label%3Ahelp...](https://github.com/search?l=&p=2&q=state%3Aopen+label%3Ahelp- wanted&ref=advsearch&type=Issues&utf8=%E2%9C%93)

You can further filter that by language, or other criteria.

</comment><comment><USER34> My first experience with an open source project was just a small github repo for a library I wanted to use. I noticed some TODOs in the code and fleshed them out. Even now, the repo only has four contributors, but the others were quite helpful when I had questions.

I have yet to move onto a big project, but it was a nice introduction to that kind of distributed coordination needed for open source repos.

</comment><comment><USER35> I strongly recommend taking a look to bugs ahoy maintained by some amazing people at the Mozilla Foundation. It's a great way to start contributing to a large codebase by solving some "easy" bugs. Check it out [http://www.joshmatthews.net/bugsahoy/](http://www.joshmatthews.net/bugsahoy/)

</comment><comment><USER36> One thing a lot of people don't realize is you don't have to be a developer to work on open source products. You can do design work (logos, branding) and lots of other stuff. Documentation is endless, and not just technical documentation there are a lot of features that just need to be explained in plain English (or plenty of other languages as well)

</comment><comment><USER37> I'd suggest projects based on Javascript or a similar easy to learn language, which lowers down the barrier to entry. You may want to check Countly ([http://github.com/countly/countly-server](http://github.com/countly/countly- server)), a mobile analytics and push notifications platform.

</comment><comment><USER38> I agree it can be difficult getting into the social conventions of a project.

I try to keep a list of places that people can contribute effectively in the readme for my project. [https://github.com/Semantic-Org/Semantic-UI/#places- to-help](https://github.com/Semantic-Org/Semantic-UI/#places-to-help)

</comment><comment><USER39> If Python is your thing, I found the code for the Graphite software easy to browse through and understand. [https://github.com/graphite- project](https://github.com/graphite-project)

As a bonus, it's a tool that will come in handy for future projects, whether as a nice-to-have or as a core part.

</comment><comment><USER40> I've had a lot of fun working with Code For America brigades. It's social, low pressure, very newbie friendly, and a great way to meet other people who are passionate about tech.

[http://www.codeforamerica.org/brigade/](http://www.codeforamerica.org/brigade/)

</comment><comment><USER41> I was asked this same question awhile back and I recommended Fluentd:

[https://github.com/fluent/fluentd](https://github.com/fluent/fluentd)

It's in ruby, very easy to understand, and also extremely useful.

You can also extend it with plugins, which is simple for a beginner to pick up.

</comment><comment><USER42> I'd first learn git basics and start my own 'testing' repos. Then, I'd start contributing to certain frameworks, libraries, modules/gems I use in my own side-projects.

Regardless, the rule of thumb is to not be afraid of contributing. As a beginner, that's usually the biggest issue.

</comment><comment><USER43> Web2py Python framework was in fact originally created by a professor to assist in education. I'm a total novice and my contributions have been welcomed warmly.

[https://github.com/web2py/web2py/](https://github.com/web2py/web2py/)

</comment><comment> andrey-p This could be a pretty good idea for a recurring post, a la Who's Hiring. Probably less regular I guess.

</comment><comment><USER44> If that is something that interests you, I would recommend Django and it's "easy pickings":

[https://code.djangoproject.com/query?status=!closed&easy=1](https://code.djangoproject.com/query?status=!closed&easy=1)

</comment><comment><USER45> [https://github.com/kevinohashi/php-riot- api](https://github.com/kevinohashi/php-riot-api)

Like League of Legends? Enjoy PHP enough to contribute? Right now it's a very simple wrapper, there's few outstanding issues. It could use better documentation, examples, a global rate limiting queue and more functionality could be added. It's mainly just me maintaining it, I get a few contributions here and there. I'd love more developers who are interested in building LoL sites to use and help extend/maintain it.

</comment><comment><USER46> GovCode helps you find US Government open source projects at [https://www.govcode.org/](https://www.govcode.org/)

You can filter by language and see open issues.

</comment><comment><USER47> If you have some knowledge of web-apps, you can work on:

[https://github.com/autolab/Autolab](https://github.com/autolab/Autolab)

</comment><comment><USER48> Anyone interested can reach out to us at Taiga.io, we've built an Open Source, Free agile project management tool. We were named lat year as one of 2014's top Open Source Tools by opensource.com ([http://taiga.io](http://taiga.io)) and our Github repo is here: [https://github.com/taigaio](https://github.com/taigaio).

</comment><comment><USER49> Is there a reason you want to work on an open source project?

If you're a beginner, why not start your own project based on something you personally need?

</comment><comment><USER50> What are you interested in? What languages have you used before? What OS do you run on your desktop?

</comment><comment><USER51> Come and work on mine. Realty Manager on Github

</comment><comment><USER52> hedgewars.org

<comment><USER51> So many years of fun from this game.</comment></comment>


Wolfram Alpha Brothers Bring Computation to the Document  - <AUTHOR> http://blogs.wsj.com/tech-europe/2011/06/07/wolfram-alpha-brothers-bring-computation-to-the-document/ <comment><USER2> This time, we have some examples (finding object edges in a bitmap). Sounds like it does for a larger variety of data sets what spreadsheets did for tabular data.</comment>


Tor in the Amazon cloud - <AUTHOR> https://cloud.torproject.org/ <comment><USER2> If anyone is wondering about the risk related to running one of these tor cloud instances. The bridges are configured to only accept and relay traffic to and from other tor nodes. The exit policy is reject everything. These instances will never be the last hop of a tor circuit...

<comment><USER3> So, we'll have plenty of relays, all fundamentally under Amazon's control.

But exit nodes are a problem; how can we get people to run those?

<comment><USER2> Do you run an exit node? If not why?

<comment><USER4> I would, but here in Germany I can be held responsible for any illegal acts that are commited through my connection ("Mitstörerhaftung"). I don't want to lose all my computers and face an expensive legal battle because someone posted some child porn through my node.

</comment></comment></comment></comment><comment><USER5> I wrote a tutorial back in June on how to setup an ec2 exit-node for the Tor Challenge (<https://www.eff.org/torchallenge>). It also includes an automatic shutoff when you've reached the data limit of the free usage tier. I've only received one DMCA in the past 6 months I've had it running.

[http://bryogenic.com/eff-tor-challenge-amazon-ec2-free- usage...](http://bryogenic.com/eff-tor-challenge-amazon-ec2-free-usage-tier/)

Edit: After reading through the site it looks like they basically did the same thing I did but created an AMI that you can just 'clone'. Either way, good for the Tor community.

</comment><comment><USER6> If a large enough group of tor servers resides on Amazon's network what is going to keep Amazon (or the government) from being able to reverse the anonymization? Isn't this exactly why Tor asks people hosting multiple machines to label them as in the same "family" to prevent them from directly communicating?

<comment><USER7> 1\. The US government can discover the user, but won't know what the user is doing, unless the user('s client) also chooses US exit nodes reliably / recurrently enough that a successful timing attack or somesuch can be mounted.

2\. Presumably, the people who need bridges the most are in countries where Tor relays are censored (China, Iran, the Seychelles?, Cameroon?), and Amazon isn't in those jurisdictions, nor would the US government want to deanonymize them.

But yeah, if you're in the United States and have something to hide from your government, don't use Amazon Tor bridges.

<comment><USER2> The Seychelles? I did not realize there is a big human rights problem in the seychelles. A quick scan of the wikipedia page seems to indicate that the seychelles government ranked second for human rights in african countries.

What's going on in the seychelles?

<comment><USER8> [http://www.seychellesweekly.com/May%209,%202011/top31_seyche...](http://www.seychellesweekly.com/May%209,%202011/top31_seychelles_democracy.html) More island politics then human rights, not to belittle the issues.

</comment></comment></comment></comment><comment><USER9> That's a clever use of the free tier of EC2. I wonder how long it will be before someone on 4chan makes a DDOS AMI.

<comment><USER2> A cloud DDOS would not scale that well. Even if amazon did not shut down instances because of ToS violations how many free accounts do you think could be created? Compare that with the ease of renting botnets...

</comment></comment><comment><USER10> Awesome idea.

I spent 5 hours at a Tor hackfest once, and was extremely impressed by both the pragmatism and creativity of those folks.

This is just one more elegant dent in the right direction. Their "Tor Browser" project is another nice one.

</comment><comment><USER8> Amazon cloud is not the only cloud service out there, I think spreading the bridges over multiple company's/countries that have similar products would make it more sustainable.

</comment><comment><USER11> This is truly amazing.

</comment><comment><USER12> With Amazon kicking out Wikileaks out of EC2, how are they going to like Tor?

<comment><USER2> Why is amazon going to care about computers relaying traffic back and forth? As I already posted the nodes are configured as relay nodes only no exit traffic.

But more importantly why do you assume that amazon will think tor is bad and/or why do you assume tor is bad?</comment></comment>


I will pay $1,000 to the person who finds me a better job - <AUTHOR> http://techno-anthropology.blogspot.com/2014/02/i-will-pay-1000-out-of-my-first.html

<comment><USER3> I heard that recruitment consultants usually get 10%.

"I'm also a decent programmer, in a cowboy crazy way." The second part of that scentence contradicts the first part. Or it does to me.

<comment><USER4> To me it sounds like "I am a decent programmer, but I cant work in teams".

Hope he gets a job tho :)

<comment><USER3> There is no real evidence of him being a good programmer. The two things he claims about his programming ability is that he is crazy cowboy style - <USER2> programmer in most professionals book, and he can quickly build something that fails at a task.

</comment></comment></comment><comment><USER5> So you're asking for someone to essentially land you the perfect job, and at best you're offering 2.5% the first 40K. Good luck with that.

</comment><comment><USER6> I will pay $1 to the person who finds me breakfast.</comment>


JRuby on Rails on Google App Engine - <AUTHOR> http://olabini.com/blog/2009/04/jruby-on-rails-on-google-app-engine/

<comment><USER2> App Engine might just be the push that JRuby needs for larger adoption within the Rails community.

</comment><comment><USER3> Thanks alot for this!</comment>


Ask HN: Does anyone want to know the results of a print and online NYT article? - <AUTHOR>

	My company, Irrational Design (www.irrationaldesign.com), got featured in the small business section of the New York Times two weeks ago, both in print and online and then had a follow-up piece last week.
I was thinking about writing up something about the effects that the article had, but wasn't sure if anyone would care or what exactly people would be curious about.
So I thought it might make more sense to just ask here whether anyone would like some detailed info about the effect of the article. Happy to share anything. Graphs, numbers, whatever. <comment><USER2> Yeah, that sounds interesting; in particular, I'd like to see how many people came to your site from the print mention, how that compares to the online mention, and whether there's any significant difference in their behavior.

For what it's worth, I remember coming to your site through the online article :)

<comment><AUTHOR> Let me try to dig that up. It's a little hard to tell as people coming from the print version are indistinguishable from other people just typing in the url, but I can generalize based on the date they came.

I can say off the top of my head that I got about 2x to 3x more emails and calls from people (not too many turned out to be worthwhile) from the print version, which I found to be interesting.</comment></comment>