In any state besides California and Illinois you will be forced to sign an IP assignment agreement to work for any medium/large companies. Open source projects will not let you contribute under such an agreement, and anything you do on your own is owned by your employer.
Anecdotally, I've worked in Colorado my entire career (17 years now, over half a dozen jobs) and have never signed an agreement like that, and have never been asked to sign one. I go out of my way to bring it up (in writing, even), because it's a deal breaker for me. Never been a problem.
And logically it doesn't make any sense. GitHub profiles can't be used as resumes if employment contracts prevent everybody from contributing to projects on GitHub.
For me, it's a significant attraction to working for the government - if I'm not in the office what I write is presumptively mine; while I believe at the state level anything I create at work is not public domain, I don't remember any IP agreement beyond the ordinary work-for-hire relationship.
This is 100% untrue. IP assignment is not enforceable if you do work on your own time and use your own equipment (including connectivity).
If you don't own a personal computer and your GitHub page is loaded with commits during your working hours, yeah you're going to have a hard time arguing it's not company IP. But for the vast majority of developers this is a complete non-issue, and insinuating the contrary is just FUD.
Even if there's some question as to the theoretical legal enforceability of an agreement, if you have to sign it to have a job, then it's not practical to challenge it. You'd have to have the resources for litigation as well as to make a living after being blacklisted.
It is true that people ignore their agreements (about IP, not to run a side business, etc) when they think the company will never notice. That's still a meaningful risk that exists that some day they will.
Also, posting bare links as replies is annoying. Please add some context.
“ anything you do on your own is owned by your employer.”
If you use their equipment or their office or their phones. But doing a software project at home on the weekend on your own computer is not going to be owned by the employer in the states I’ve lived and worked in (VA, GA, TN, NC).
Do you have a source for a state where this has happened?
I had an offer from a game company that went through my list of disclosures and said I would have to report my potential book royalties to them (why? Dunno) and that I could not continue to work for the local university. I was dumbfounded. I explained upfront in the interview I worked 5-10 hours for the school and the recruiter said that was great and that my new manager loves giving back. Unfortunately legal did not. I ended up backing out of the offer. I still kinda regret it because it was a stellar team working on neat problems.
All that to say I can see companies asking you to sign something that wouldn’t hold up if you had the means to challenge it. I suspect most people done have the privilege of paying $300-1000 to have their contracts reviewed / red lined.
I mean, I've never had a six-figure job, but I could pay that much to have a contract reviewed, if there was a point. But I don't think there is a point, because unless I literally had a bidding war going on for my services, I'd have zero leverage.
A few years back, I thought I'd figured out how to negotiate, because I tried a method when buying a car that worked very well. But it completely failed when negotiating a salary, because tying someone in knots and exposing their BS, no matter how politely, has no value whatsoever when you don't have an immediate alternative. If you're trying to buy a new car and there are several dealers in town with the same one, that's completely different from having a single job offer outstanding.
I've learned in my personal life too, it doesn't matter how inescapable your logic is, if you don't have any leverage and the other person is willing to jettison logic, it's irrelevant.
As I will keep saying it does not matter if companies follow up on their threat or not. It still has a chilling effect on people doing side projects which is the intended behavior. And a lot of people can't afford a legal battle even if they had a high chance of winning.
Just like you can't necessarily afford to engage in the legal system, the legal system can't be engaged if they don't have a signal that there's anything there to engage with.
And in interviews you can still use the experience and talk about your contributions without releasing the product/ identity to your current employer, and your current company is incredibly unlikely to come chasing after you years later on things with no obvious connection to your real name.
This is the exact opposite of what you should do. As soon as you start working on a side project that doesn't overlap with your day job, you need to tell your company to get it added to your contract's list of excluded projects (meaning they've verified it has nothing to do with them, and you're free to do whatever you want with it).
Issues happen when you leave your job and launch a side project not long after, creating a bit of a surprise. But if you had disclosed it previously, your previous employer is shit-out-of-luck.
And I mean hey, it's working isn't it? Can't show external evidence of your work and skills, now you're a bit more trapped here.
And I am sympathetic: those are completely unreasonable and anti-competitive employment terms, and I've had a past supervisor subtly imply they 'might own the intellectual property of all my thoughts', to which I can only offer the potentially useless advice of don't work there, or do work there but ignore/fight them.
They are not making the claim that choosing to hire someone better than someone else is discriminatory.
No it isn't clearly better. Note, I'm single but proposing that someone that lives code as being better than someone that stops to smell the roses of life is a bit too much.
You're also discriminating for people that may be horrible for the team. I bet that person with kids is likely better at conflict resolution than the programmer that never goes out to socialize.
That is what you're discriminating for/against. I'm learning a hobby on how to build some rather completely different things. Not only is it refreshing to think of computers as "just another goddamn tool" but to not need the things at all.
It is letting me escape getting into a rut in software only. But guess what, it means I'm not contributing to open source because I'd rather be doing something, anything else.
Working outside of work is mostly free training for your company. Nice for them, bad for you later on in life. I'd rather meet and make friends as I am growing older. Relationships are the thing I regret most for not paying better attention in life. I don't think as a society we should keep encouraging people to act like mindless drones.
> programmer that never goes out to socialize.
I never said that someone has to live and breathe work, only that they don't have anything _higher priority_ than work.
If I have social plans with my friends I'll likely cancel them if there's a bona fide work emergency. If I have family obligations I cannot and will not.
> I'd rather meet and make friends
OK, and I'd rather ski for an hour or two every weekday morning, then come home and shower and finally start working at noon.
I just don't see why I would expect the work opportunities available to me, and the compensation, to be no less than someone who doesn't have that requirement.
Having kids is a lifestyle choice that is at odds with other choices. If my preferred lifestyle is to be a starving artist/musician, or a ski bum, but I also want to have kids and so might have to suck it up and take a soul-sucking corporate job, no one is going to shed a tear for me.
But if instead of rocking out I just want to get the same jobs and paid the same salaries as people who are actually much more productive than myself, that's somehow not only reasonable but unimpeachable.
All it really is is another in a long line of examples of people with kids expecting special privileges and support for their personal lifestyle choices, not only from society at large (maybe reasonable) but from everyone, individually (not).
If you want society to subsidize having children, then the government should do it, not individual software teams.
What exactly does this mean? I prioritize A LOT over work. My back hurts, work can suck it. I get into an accident, again, work takes a hell of a back seat. If a family member is having issues, guess what, work may not be my highest priority. I'm a human, not a robot.
> Having kids is a lifestyle choice that is at odds with other choices.
That is self evident, what is your underlying non analogy point?
> If you want society to subsidize having children, then the government should do it, not individual software teams.
Software teams are a part of society are they not?
I'll be blunt, I'd rather generally have the people with kids on my team than the humans that think Arbeit macht Frei (had to be done, far too apropos in this specific instance). Having time off from work tends to mean you focus more on work when you're there. I love programming, but I have other things in life I want to pursue. It also means I can compartmentalize work for work, not "oh i was thinking of doing xyz at work, i should spin up a bunch of cloud instances at home tonight and test this shiny new thing out to make my job hopefully a bit easier in the week". That mindset is just doing training for work outside of work. Which is simply, more work, and the end result of that kind of stuff from what I have seen, is guys end up snapping and go insane or worse.
Sure, but those are unexpected and hopefully rare events. We're talking about things that take priority over work every single day.
> > Having kids is a lifestyle choice that is at odds with other choices.
> That is self evident, what is your underlying non analogy point?
What I mean to put it bluntly is that having kids means less time for other things, including work. Make that tradeoff if you want, but don't to make the negative consequences of your choice my problem.
> > If you want society to subsidize having children, then the government should do it, not individual software teams.
> Software teams are a part of society are they not?
Sure they are, what's your point?
Society should probably help out homeless people, but that means collecting taxes and providing services, not expecting individual families to invite them into their homes and feed and clothe them, etc.
> I love programming, but I have other things in life I want to pursue
Same here, but I'm not the one complaining that a team of people who don't share that requirement isn't hiring me, bending over backwards to accommodate me, and paying me the same as their top performers.
I also believe it can make you better at work, in ways you currently may not appreciate. Coding more at home can make you a better coder, but it's a diminishing return. At some point you will get more from being good at communications, making better choices, finding compromises, reflecting, seeing the whole picture, avoiding errors caused by constant typing with tired brains.
It's a great pleasure (for me) to work with people in 30s-40s, with children and hobbies: healthier environment, less stress, usually less ego and drama, focus on working smart and thinking twice before typing, less chance to see and clean shitty code, also, very interesting conversations at lunch.
"they don't have anything _higher priority_ than work" it's too much, man. It is not in the same league with coding at home, it's sacrificing your life for an organisation, shareholders that will never sacrifice their lives for you in return. In fact, they will not even sacrifice potential profit for you, and make you redundant despite your commitment.
Why wouldn’t I put many things as a high priority than work? I don’t have any equity in the company and even if I did, it’s statistically likely to be worthless if it isn’t a publicly held company. If it is a publicly held company, my contribution isn’t going to make or break it.
The company definitely doesn’t put me as a high priority.
Presumably, because you expect to get paid more than someone who doesn't.
Moreover you don't seem to balance your time prior out with others. Sure, time may have an effect, but what if this effect is marginal? This also gets down to something that bothers me about this line of thinking, which is the desire to create overly simplistic models of talent. Talent is incredibly multi-faceted, and hiring based on pithy narratives without actually looking at data is how we ended up in this situation where class signalling or age has become a substitute for talent.
I suspect you'd find it quite ridiculous to have to pick up my slack as I have to run at 5pm to practice with my bandmates, at least if you weren't paid correspondingly more for the extra effort. Change that to a PTA meeting or soccer practice, though, and suddenly it's how dare you suggest that I get paid less for not only doing less work than you, but doing some of the work I was expected to in the first place!
I suppose it depends what the context of "pick up the slack" means but, in general, I'd find it perfectly normal for a co-worker to take off at 5pm for an evening activity, family-related or otherwise.
I do tons of work-related travel and the like. I also don't do nights and weekends work day-to-day. Work emergencies happen (as do odd-hour conference calls) but it's rare I'll schedule evening activities around work when I'm not traveling.
Company A will pay me $400k/yr, but only if I make work my top priority
Company B will pay me $150k/yr, no matter what
Please explain why it's "naive" to choose Company A. I don't need "ownership" in the company to profit from this.
I don't see how the company's reaction to my death factors into the decision at all.
But that's not even close to the situation most developers are in. Most are getting paid somewhere around an average salary, maybe with a few probably-worthless stock options, and they're getting asked to sacrifice their personal time working for free to make founders rich. Working extra hard isn't likely to advance their career at all; it just gives them a reputation as somebody who is willing to take abuse.
If you're in a situation to make a crazy good salary by working hard, by all means, do that if you want. But understand that situation is very rare. And even if you're getting that deal, the person sitting next to you might not be in the same boat.
Working hard to make other people rich is a sucker's bet, akin to playing a slot machine. For a rare few, it pays off big. For a somewhat larger cohort, there's a modest payoff. For the large majority, it's just wasting their career and their time.
Second, if you want to dedicate 10 years of your life to work, make money and retire early - it's a reasonable choice for many. But if it goes into 40s - why do you need money, if you would not be able to enjoy it constantly working? Your money may go straight to doctors and psychotherapists eventually.
You also most likely reach your salary cap in 30s as a coder, so you'll get no ROI on coding more.
Suddenly, physical activities, rest, communications, hobbies make more impact on your work performance.
In the end, it's a matter of personal choice, and the choice is not black and white between work as a meaning of life and leisure skiing till lunch.
Umm. No?
I see nothing "clearly better" about someone just because they don't have any responsibilities.
You don't see anything better about hiring someone for whom the job will be their #1 priority, and someone else for whom it will be #2 or even lower?
I find that difficult to believe.
Besides, in my experience, knowing a specific technology from doing side projects usually doesn’t count as much to potential employees as having on the job experience unless your open source project is really popular.
"let them continue working on personal projects". How considerate of you to allow them to decide if they want to work long hours on their time or the company's.
Would an architect get denied employment because they didn't have a "pet project" skyscraper in their backyard to show off?
I found having some open source contributions was a positive for my resume. People knew I could ship something then. They could literally go online and check to see what I did.
I've done most of mine when I didn't have a job or knew I needed something to get the next job. So, it was not much different than investing time in interview prep.
Couldn't tell ya if I prefer leetcode or open source contributions. As for the last five years, I've mainly had to do leetcode every year cause no one gave much care to my contributions after a point. (leetcode is #1 in sv)
I haven’t done any side projects since 1994.
Hiring the trendiest is also a bit of an SV thing. I don't know if you're in SV or not but if your job searching doesn't involve any leetcode prep then I presume you're not in SV. (Less than 3 weeks on leetcode prep seems crazy to get a job in SV unless you practice regularly)
I will do “side projects” at work - low or no priority projects using new to me technology or voluntary to work on feature that would take me extra time because the underlying technology is new for me.
That has the advantage of getting feedback from coworkers, being able to work with a large infrastructure, and of course its “real world experience”.
I’m nowhere near SV, the last time I did anything approaching a LeetCode interview was my second job out of college and they really were doing some low level C coding so it was relevant for them.
Lastly, if I do jump through hoops, it won’t be for a job that just pays the median market salary that I could get anywhere. Now that I am moving toward working for consulting companies, yeah I will have to do the leetCode equivalent.
All my side projects have been done between gigs when freelancing, or while working in management roles where I can code as a creative outlet in the evenings because I haven't been coding all day.
I'm always slightly suspicious of people who claim to work a regular job coding and then put in similar hours on hobby projects. It's almost like "but if you can code in the evenings, what were you doing all day?"
How you react to this depends on your personality I think -- some people I know love this and are happy to sit in a corner desk and watch youtube videos for a paycheck. That won't work for me so I'll usually scratch and claw for something to do (establishing my reputation as a whiny non-team-player in the process), be given some task which often is a weird platform-specific bug that nobody else wanted, and I'll spend my time hunting that down, become emotionally drained in the process of trying to get anyone else to care about it, and then I'll spend my free time coding in order to make sure I'm growing as an engineer.
I figure this is kinda what life is like until you're a little more advanced in your career and from asking around other people at my level feel the same across many different organizations.
Hiring based on open source contribution isn't the only signal one can look at, it's just a very strong one (the strongest in my experience).
I'll add that not all developers with 15+ years of experience can ship software. Many have let their skills deteriorate or never pushed themselves to learn new things. It's yet another reason a strong personal portfolio is a good signal.
Is 'shipping software' the same when there are no angry customers who can burn up the support line demanding refunds and threatening to leave 1 star reviews on amazon?
I’ve actually “shipped software” that got put on production servers and people paid money for.
Yes.
(https://www.aia.org/pages/2696-continuing-education-aia-and-...)
There are wizardly devs who stick to a strict 40 hour week. There are equally astounding devs who live, breath, and dream code all day every day. We’d all be lucky to work with both.
I don’t see a way around the fact that a public resume is just an enormously strong and quantifiable signal for hiring managers.
And, if I'm being honest... I do a lot of writing as part of my job. If I'm hiring someone for a role like mine, you can be sure that I want to see some writing that they've done. If they don't have anything they can share? (Which seems a little off. But maybe it was all internal company communication stuff.) Well, they're going to have to write something because I'm not going to just take them at their word that they write well.
I’d be ok with using public projects / GitHub as a boost to get someone into the hiring funnel, but I’d never use “no GitHub profile” as a reason to filter a candidate out.
Me (who has written my share of Y): "Sure, that'll be fine. Y should be installed."
He proceeded to take 30 minutes to not produce anything resembling X or Y. It was agonizing.
But don’t ask me to code on a whiteboard. That’s not a real world scenario.
If someone hinted that they wouldn’t hire me because when I left work, I shut down my computer and didn’t think about software development until the next day, that would be a hard pass. I would move on to any of the dozen of companies that are looking for experienced software developers - and I’m not on the west coast.
That being said, for me as a manager, I like to hire people who demonstrate the ability to repeatedly ship products. It helps if they've owned that product from conception, through delivery all the way to support. That's a skill that is in great demand and I've never been disappointed when hiring someone with a great project portfolio on Github.
“shipping a product” involves knowing what trade offs to make, deadlines, working with QA, deployment strategies, documentation, not breaking preexisting code, etc., dealing with security and regulatory audits, etc.
Nothing about posting a pet project on Github gives a signal about shipping a product in the real world.
People that have only ever worked for a large corporation seems to know only how to deal with their own little bit of the stack.
The good news is that all of those procedures are more effective the less companies are using them. So unless you the entire field has a very centralized hiring market (as in 80% of the good jobs are in FAANG), there are good odds it things don't ever get bad.
IOW, a fair reading is that the parent acknowledges that the practice excludes people who aren't in a position to have a public portfolio. (For whatever reason: IP rules, family obligations, lack of interest in programming as a hobby.) And that would be a problem if everyone did it. But everyone doesn't so it's OK as long as just some of us do it.
Even contributing to open source efforts can become an issue because you're expected to ask for permission first and it can become a sticky legal issue of ownership. Companies expect and want people to work on personal projects but then don't give ownership of said projects to the developer.
Do you have any specific lawsuits in mind?
As a embedded software engineer, I've had specific language claiming rights to everything (one even called out "songs or other copyrightable works") I do while employed at the company at 4/4 of my post-college jobs.
This is a huge loophole for larger companies who can argue that everything you do may relate to their future business.
*if this sounds implausible, it might have been at the time that a spinoff was happening and employees were being "technically" rehired by the new entity. I don't remember for sure.
If the Nginx thing were happening in the US, I know which side I'd put my bets on. And I'd really like it, one way or another, because we wouldn't need to have this conversation.
The fact that they'd likely lose the lawsuit doesn't matter, it's the threat of legal action which we couldn't afford in the first place. Mind you, this was a company that had absolutely nothing to do with video games too.
How much OSS work do you do?
This is also helpful for people who haven't worked at big name companies or don't have degrees from elite universities. I'd happily hire someone with no experience and no degree if I can see multiple impressive projects they've built for themselves (I've done this, and it's worked out very well).
Yes, it works against people who don't like to code in their personal time, but it also removes a bunch of filters and in my experience works better than anything else for finding good candidates.