Agree with the rest of your message but this is really dumb and will hurt your career. You need to think about what you’re writing and determine if there is any reason the employer would be supportive of this.
Ive been in SWE management for roughly 20 years now and if you get labeled as “the person who wants everything open source”, you get put in a very limiting box. You advertise that your interests aren’t really aligned with the company and you’ll be treated as a mercenary.
This seems okay on the surface, but it will exclude you from working on critical business code that would be ridiculous to open source.
Totally agree with avoiding labeling yourself more generically, but having spent enough time in the sun... I just want shade.
I work to get paid, not get acclaim or friends. At a certain point your professional development stops being at work. Being a mercenary is an interesting way to consider that, actually. For yourself, nobody else will.
I'm not even a developer. I do SRE which kind of requires I play one while not being on the friendliest terms with the real devs: "oh, that guy again"
I guess my point is this: don't subject yourself to whims... but do be amenable. Just not too much.
It's easy to become the sucker. Don't accept working on business critical code without business critical pay. It's just a weird way to look at things.
Not if you do it right. Don't be "the person who complains about stuff not being open source".
I believe I have been pretty successful at open sourcing a lot of my code. Sometimes by convincing my management that it was good for the company, sometimes by manipulating them (I guess it would mean I manipulated people in your position :-) ). Not in a way that hurt the company at all: I never open sourced anything where it actually mattered for the company.
I see it like this: when given the choice between not open sourcing (no work needed) and open sourcing (some work needed), every rational manager will go for the former ("I don't care about it, so don't wait my resources for it"). I just adapt my narrative to make it sound like it is cheaper to open source, and everybody is happy!
If you're always banging on about it, then yeah, that will happen. But that is of course a bad idea, because always banging on about any topic is almost always a bad idea in almost any context.
How many people have had this work? Am I unusual in working at places that take an extremely restrictive attitude to their IP?
The fact that the parent comment is so upvoted is a reflection of what people dream of, not reality.
I can see that being the case among software developers. On the other hand, the organization I work for is so far removed from that world that my employer doesn't make any claims on most IP. If I decide to write a program to automate a task, the source is mine to do with as I please. They don't even lay claims on much non-software IP, stuff that ordinary businesses would lay claim to, since the attitude is more akin to the IP being "carpenter's tools" than the product of the job itself. (Granted, working in the education system helps on this front. The definition of restricted IP is rather narrow when the expected outcome is to share knowledge.)
Only if you understand it as "open source everything", it is a dream. But that is not what I say. What I say is that as a developer, you should try to open source as much as you can. Many times that's not nothing.
It's really mostly a matter of thinking about it and seizing the opportunities.
Related is also: don't be afraid to depend on copyleft libraries! As an employee, it's beneficial: it means that you have to contribute back (actually not exactly, but managers usually don't get the details so you can get away with it :-) ).
I would say that getting to a point where this sort of thing is possible requires a huge amount of out-of-bounds culture and technical work though. Probably outside of the commitment range of folks who just want to work as an employee and not think about work outside of your paid hours
I thought that was a pretty cool thing. My job is essentially subsidizing some open source projects without ever getting the credit for it (or the potentially negative publicity, from their perspective, I guess)
Statistically, almost nobody.
No.
Because you open source it does not mean, AT ALL, that you need to spend time on it. I like Cap'n Proto as an example: it is a great open source project, but don't think of contributing to it: you will probably be ignored (unless you find and fix a very important bug, but good luck to find that there). And that's fine: the fact that it is open source is already great! Who would I be to expect the maintainers to work for free on top of open sourcing great work?
Your employer allows you to open source something? Push for a copyleft license and no CLA.
Your manager says that "we could consider open sourcing it"? Take this as a yes.
Learn about licenses, what they mean, and think about IP at work. Many times the employer does not get anything from not open sourcing the code. It's just that they don't care. If you do, you can push them towards doing it.
I am not saying that it will be bad for the employer! It may actually be good. I am just saying that it is better for you as a developer, so you should push for it.
My buddy Slim seems capable of it and has built up quite a portfolio of "ready to go" solutions for common problems over the years.
It's a matter of degree, obviously, but every time you do this it's likely to count as IP infringement. Generic libraries? Probably nobody will ever notice or care. But if they do, it could be expensive for you.
Most code written by most companies has been written a thousand times already, and there is nothing illegal about recreating a library which behaves the same as something you wrote at a company.
And I don't think anyone really would have benefited from open sourcing the application either. The code wasn't all that brilliant, it was hard to run, had a lot of assumptions that would only ever be true for us, and we didn't really want to spend the time fixing/optimising that. Tons of other things to do. Practically we would also have to scrub the commit history, do an audit to make sure we really don't have anything sensitive in there, and stuff like that.
One reason I open sourced this stuff was just enlightened self-interest by the way: it enforces "clean" library-oriented programming with clean separations. When I joined there was stuff like "email parser module" which in principle would parse RFC2822 messages, but then would also call models to do a few database things, and nonsense like that. It was all pretty messy, and this hugely improved things.
Maybe that's true for your employer. But it's bold to generalize. Certainly not true for the company where I work. And a quite sad view.
In the 2 decades I have worked as a Software Engineer, I met numerous people, in numerous different companies, that said those words, exactly.
All of them were eventually proven wrong. No exceptions.
I live and work in EU (and lived in other places) and I'm pretty sure corporate culture in EU, Japan, Russia is very different from that. There are pros- and cons- sure, but this easy-in/easy-out seems like a very US/Anglophone thing from my POV.
What a coincidence. Me too :)
The former is still fairly easy, and just has some process involved, the latter much harder unless gross misconduct can be demonstrated.
It's absolutely true the the UK/EU/etc. have much better rights than the US in this regard, but perhaps the higher pay in the US (at least in tech) pays for that.
I'd be interesting to see over long periods of time and many people who leave first, the employee quitting or employer firing/laying-off.
My anecdotes tell me more people leave than get fired, especially the ones with options.
Sure, but that's not the original point. The original point is that the company won't make you any favour if they get a better deal by firing you. So you should do the same and leave if you find a better deal somewhere else.
I'm old enough to have heard this about a very large number of companies and it's always wrong in the long term.
Like all aspects of work/life balance, it is a risk/reward balance that you need to monitor and adjust as circumstances develop.
In reality, the power dynamic inherently favors the employer. Once an employee has invested their time and energy, the company holds all the leverage. There's little incentive for the company to uphold their end of this unspoken "deal."
Leadership changes, company priorities shift, and the "family" narrative can quickly fade when faced with financial realities or strategic decisions.
"it's profitable" hides a world of problem though. "it's profitable" over what timeline - just because an employee isn't doing something profitable this week, doesn't mean they won't be next week. It costs a lot to fire someone even in "at will" countries where you literally just tell them to F-Off
Contrast this with the presumably US situation of a reported Google firing by email, instantly gone forever, can’t even say goodbye to colleagues.
https://news.ycombinator.com/item?id=40944098
The (nation-)state you work in matters a lot.
Unless they consider that it is still profitable because they will stop paying him after those 2-3 months. Which would not be stupid.
How do you know that? Even if so, how do you know that it won't change in future?
I'd say this is true for all for-profit companies, by definition.
Perhaps there is extra cost that makes it not worth it - laws, contract rules, etc. All the more reason to have that in place.
If the company is not privately owned without investors, it doesn't really have control over the actions.
It's true for all employers. Your job as a business owner is not to provide jobs to your employees, it's to keep the business afloat and maintain your income. There are limits to how much of a good person you can be, those limits are set by the economic system we exist in. Ignoring these limits will cause your business to fail.
It's a sad view and it's not entirely accurate but it has better predictive power than the rose-tinted glasses you and possibly your employer may be wearing. Profitability is the baseline requirement, all else comes after. That's how a market economy works. If you remain at a stable net-zero that's great as long as nothing ever changes but it means you're extremely vulnerable to any disruption.
To be clear: I'm not even talking about shareholders. This is true for private businesses too, maybe even more so. Profit means reserves, reserves mean being able to survive dips and downturns. But when the market changes you need to adjust and adjustment means the value of an employee can change drastically and it may be better to replace someone who was a great fit for the old market with someone who's a better fit for the new market. Sentimentality is a competitive disadvantage.
You can balk at the morality and decency of this and I'd agree with you but you shouldn't be upset about the persons, you should be upset about the system that is requiring those persons to act this way in order to stay afloat.
1. They expect the company to be not profitable in near future and they are taking advance steps.
2. They think the workers add nothing to the top line or bottom line and cannot think of anything else that would gainfully make use of their talents.
3. They think the market would like it if they lay people off and hence it is in their selfish motive to keep laying people off.
1 requires a crystal ball and 2 is just incompetence. 3 seems the most likely answer for these layoffs.
If you were running a company at a loss to pay people, you are not running a business, you are a charity. At the same time, if your profitable company wants to move the payoff from labor to shareholders in increasing percentages, your company is detrimental to the society.
> you should be upset about the system that is requiring those persons to act this way in order to stay afloat.
How would you change the system or modify the current situation in order to define new limits that are more, let's say, humane?
In the article, there is an example of an ex-Google employee that got fired via email, he couldn't say "Bye" to his colleagues after 20 years of working with them. That doesn't seem like a system with reasonable limits.
Until there is a system to easily weed out the people that go ballistic when being laid off, cutting off access is completely fine.
If you want to keep in touch with people outside of work, exchange personal emails.
There’s literally whole continents where this isn’t an issue. If it is an issue in yours the problem is not the layoffs.
Until there is a system to easily weed out the people who carry dynamite in their asses, anal cavity checks are completely fine.
The economic forces as painted here are very real but cruelty is optional. It is not very expensive to give an employee the time to say goodbye to colleagues.
Sure but he had a good reason to conflate all forms of democracy as if there were no difference between them or ways to give more power to the people in, say, UK's form of democracy. Replacing first-past-the-post voting for example wouldn't require abandoning the entire system of government.
> The same for capitalism.
Sure but again there are important differences between laissez faire capitalism and a social market economy and yet this is used to justify reforming the latter into closer and closer approximations of the former. This also ignores that while the economy at large is clearly some form of "capitalism", communities otherwise operate on more non-capitalist patterns of behavior (e.g. buying rounds at the bar among friends, borrowing tools to your neighbors, BYOBs/potlucks).
Even interactions involving currency (remember markets and currency alone don't define capitalism) don't have to be transactional or profit optimized or be defined in terms of ownership and servitude. Of course things like the gig economy, consumerism and "hustle culture" are built around "capitalism"-ifying those non-capitalist interactions by reframing them as transactional or business opportunities - the most blatant example probably being the widely ridiculed genre of blog post a la "what breaking up with my partner taught me about being a hiring manager".
It's just how it is: your employer is not your friend. It's a contract.
"In the market economy the worker sells his services as other people sell their commodities. The employer is not the employee’s lord. He is simply the buyer of services which he must purchase at their market price."
Likewise, when someone owns a factory, they don't just own the physical tools and material inputs of production (which they would rent to workers), but they own (control) the whole social structure that is needed to produce, all the human relationships (workers - management - owners - customers) required for the factory to work.
That was Marx's main point, and that's why sane countries have labor laws that regulate this relationship. (But even if everybody was truly selling a service, "free market" would quickly collapse into oligopolies, as it usually does.)
Ayup. That's why when you run a small business an early lesson is that your competitive advantage isn't your intellectual property (because any larger company can come along and find a way to copy that legally) but your business relations and reputation.
This quote completely ignores real-world power dynamics and distribution of resources. The employer has capital, the employee does not. The employer can be a Fortune 500 or a mom and pop shop. Even the most highly paid employee can not exert as much political or economical power as Jeff Bezos. At a certain point wealth stops being about what you can buy and starts becoming about what decisions you can influence.
This is the reason unions exist. A Fortune 500 company's board members already engage in collective bargaining. It's only fair for its employees to do the same. And this works at almost any scale, even if at the mom and pop shop the employees may not need to formally unionize because there's few enough of them that they can organize directly.
Employee here. There's nothing wrong with that. In fact, I think it is healthy for both the employer and the employee to recognize this as a base of a good professional relationship.
Why would you agree? A business is people voluntarily getting together trying to make money. If it fails to do so, why should other people have to step in and pay?
Sooner or later we're going to have to take a look at that definition because the evidence strongly suggests it's doing more harm than good.
There have been other more humane models, even in corporate America.
My understanding is that there are a lot of very similar economic systems. There are pros and cons to each of these systems. I don't believe one system or government as truly figured it out.
Folks on HN and reddit like to use other systems as a better system, but they always have some subjective negatives that are pushed aside.
Interested in your opinion about the following: Should employees get their salaries adjusted by inflation once per year?
Why yearly, not monthly? Also what if there is deflation, do people get pay cuts?
A lot of these issues are very easy to criticize on the surface, I don't think many here have ever tried to employee people and work on profit margins.
can be monthly, should be put in a contract.
> Also what if there is deflation, do people get pay cuts?
Yes, put it written form in a contract too.
What I suggest (employer and employee explicitly negotiating inflation/deflation terms) could be better than the standard song and dance we all are used to suffer.
Output and effectiveness towards market needs has to matter or eventually the system collapses under its own weight. Churn has to happen, or ‘deadwood’ builds up through inertia.
And when the system collapses, it’s like a forest fire with a massive amount of dead wood - it burns everything to the ground, not to grow again for a generation. As compared to periodic wildfires that may suck, but for which sprouts pop back up again in the spring.
Currently "the market" is literally just a betting shop for shareholders, which seems an odd way to be making important strategic decisions.
Using FAANG as the example for all jobs is not useful even though this is HN.
I’m not talking about the stock market (which is built on top), I’m talking the actual economy.
Of course, command economies exist (and may again), and those tend to shortcut many of the niceties eh?
Command economies like corporations?
Other command economy examples - gov’t, the USSR, the US during wartime, Russia right now, etc.
Aka when someone in a position of authority says ‘money gets spent here and this way’, regardless of any natural market tendencies (and sometimes with little regard to solvency or pesky things like quality of life).
Obviously the caveat here is that the "market tendencies" aren't defined democractically. It's very much "voting with your dollar" where the voting itself is limited to what options the market provides and the dollar is limited to how much money each market participant has. In that sense monopolization is very much a natural market tendency although most people in favor of "letting the market decide" over government control/intervention would argue that monopolization is bad and actively harmful to a free market.
There are some clear examples like wartime economies, planned economies, ‘chaotic flea market’ like many Chinese markets, US food markets, etc.
That's literally begging the question. There's no intrinsic need for a system to allow for the centralization of wealth to the same extent our present system does, nor for such widespread commodification. It's entirely possible to imagine a system with a different conceptualization of property rights for example -- because we know that property rights have changed over time and were different in different societies. Copyright alone is a great example for how arbitrary property rights are given how drastically it has changed over time.
I’m talking about all economic systems, including the USSR, China, US, European markets, etc.
Fundamentally, for an economy to exist it connects those who produce/have with those who consume/want, mediated by some exchange of value (though in command economies that last part can be remarkably performative).
And fundamentally, if there is no connection to people’s actual needs, and no clearing of old/non-competitive ways to meet those needs there is going to be a very, very bad time. Eventually.
Joking aside I know, personally, business owners who have consistently acted with integrity and managed to maintain a successful, profitable business over the course of 30+ years, adjacent to the real estate market, surviving 2008, etc. so it's not like they've never faced had time or tough competitors. In that time they have never had layoffs. They've had to cut pay and reduce benefits in lean times, but providing gainful employment is a core value (above profit!!) and it has worked.
It's a job offer, not a marriage vow.
It's great if there can be rapport in a public company (as opposed to private) but that culture is a luxury trim at best.
(Disclaimer: I'm not a business person, so I have no idea what the correct fancy terms are for any of these things.)
If the company had to choose between survival thanks to firing someone ("recovery to positive" predicted after all legal unemployment stuff has been paid), vs loyalty keeping people on payroll risking bankruptcy[1] if the current trend continues, then I would expect them to choose fire-now-and-secure-survival, rather than don't-fire-because-i'm-sure-it-will-all-work-out-somehow-if-i-stay-loyal.
After all, as an employee, I would also choose assured survival (moving companies) over loyalty (staying in the same company) the second I realize staying at the current company isn't beneficial for me (i.e. what the company pays me vs cost of living, not enough for savings, too little time to spend with family, always way too tired, etc).
If your company would choose loyalty over being profitable, then that's interesting for sure. (EDIT: Though there's some companies that just run at a loss off the founder's savings, so it could be possible. I'm not denying your claims, just find them unusual.)
[1]: Either because company is already on negative profit ("debt"? no idea if that is the correct word), or because current profit isn't enough to please VC and risks losing their support which would then put them on a negative profit situation.
The regime I'm currently under genuinely seems to value me and the others around. I've been afforded quite a lot of understanding with regard to unplanned time off (and sometimes missed deadlines) due to dealing with some personal issues and looking after ill family (damn near lost the old man a couple of weeks ago, scariest day of my existence thus far). Admittedly there are some things that I have a very low bus count on, so they can't just easily kick me out or risk irritating me to the point where I chose to go, but it is more than just that.
Of course if it came down to me or the whole company I'd be dropped quickly as is only sensible, so there is a limit to how much I can count on such loyalty (or if it _isn't_ loyalty, their feeling that they need to keep me around).
Previous regime¹ was quite different. I wouldn't have trusted some of them enough to lend them a fiver³, and when I got news of the current lot coming in I was very close to telling them to fuck off⁴ in most unprofessional terms even though I didn't have anywhere lined up to jump directly to.
----
[1] I've effectively worked for that same entity for many years², though there have been a couple of complete changes of ownership & company name, the usual staff turnover overall, and changes to the product line-up.
[2] due in part to a shocking lack of ambition :)
[3] At one point I found out my line manager was leaving the day he did, via an email to the whole company about leaving drinks, management had known for at least weeks. Also working piles of unpaid overtime on a project then being bitched about by the CEO for not being present at 0900 on the dot one morning, was a good indication of how much my efforts were respected (I started working to rule at that point, in at 0859, out at 1731, no overtime without agreement up-front it would be paid for).
[4] What had stopped me some days earlier was the brexit vote: that implied potential economic uncertainty which, to my many risk-averse personality segments, demanded I be a little more cautious for a time.
I don't do it because I am helpful, but because I'm paid to do so.
I was merely noting that they are not paid for that. They are paid to [solve problems] (which I expressed as "write code").
It benefits the coder, it benefits society, and the company gets that sweet temporary window of profitability over their competitors as they always have since time immemorial.
It depends on the codebase obviously, but you would have to prove that. On the other hand, if you open source it properly you may get contributions, which is valuable for the company.
Of course, if the open sourced project becomes wildly popular it's great for your CV, but that doesn't typically happen.
Also, just flinging the code out in the open isn't enough. The company needs to be a good steward of your open sourced contributions. At my last job I left a few reusable open source Django components which I thought were very nice (and others are using it), but nobody felt responsible to take care of the project, so it languished. Now it is several Django versions behind and has bug reports which aren't being fixed. This was rather disappointing to me. I had really expected better because my colleagues in general were typically pro open source. I'm not using Django anymore, and I'm not inclined to put any personal time into it to keep the project alive.
What's the worst case? The code just gets unmaintained and dies. That's not a problem at all.
Why would your colleagues want to maintain your pet project instead of making their own? Most open source projects live or die with their main contributors, if you expected the company to spend money maintaining your project then that’s the wrong expectation in my opinion.
The projects in question were Django model field types, which I used in the larger projects I was working on. I made them available on PyPi so they're re-usable by others, and for easier installation. Maintaining these should be in their own interest, as the projects in which they are used are mission-critical systems for their customers.
Presumably they haven't upgraded their Django in ages, so they didn't need to do any maintenance on these packages. But still, a) they may hit these bugs themselves sooner or later and b) the projects exist under the company's GitHub profile, so it makes them look bad.
I think it’s more that we hate dealing with any kind of bureaucracy?
I managed to open source a lot of code just by convincing managers (sometimes in a manipulative way, but that's the game: they do that, too). It did not imply any bureaucracy.
The problem is that employers make this process as toxic as it possibly can be, using every trick in the book of emotional manipulation, making you feel like you're blackmailing them and literally destroying their life. Adds a lot of resentment on both sides every time regardless of outcome and it just accumulates.
1. The employee was a vain troublemaker who had over-value what they were worth in the market. Firing them would not only remove an inefficiency from the system (as they were likely not to work as hard if they believed that they were underpaid), but it would also helpfully remind the other developers that they were all expendable.
2. The employee was a 10x developer who was vital to the company processes and could command a much higher salary somewhere else. Even if you gave them a raise today, they could be hit by a bus tomorrow. The best course of action was to simply rip off the band aid. Fire the employee, have security immediately escort them from the building, and begin triage to ensure that the critical systems that they wrote/managed could be handled by the next resume in HR's pile.
The line I will always remember is: Developer are like eggs. They are heavily undervalued, but also will crack under too much pressure. Thankfully, like eggs, you can buy them for cheap in packs of twelve, so it doesn't matter if you break a few.
1) This policy is known and communicated to current and future hires.
2) The company has found a way to pay each person the current market rate and makes efforts to adjust accordingly.
Otherwise why would anyone stay?
The founder was very public with other companies in the area about both his policy of firing 10x developers and hiring any warm body that could put a resume in his hand. He told stories at local business meetings of the various people he hired who couldn't find a computer and were fired on the same day. So, when you found out what the corporate culture was like after about a month on the job, you had two options.
1. Stay on for a year. This cemented to every hiring manager that you were a 1x developer (because you kept the job), but absolutely not a 10x developer. You might get a junior developer position somewhere else, but never more than that. 2. Immediately quit the job. You now had a one month stint at the firm on your resume. Every hiring manager in town knew that 5% of people with a short stint were good developers and the remaining 95% were people who just finished "COBOL for Dummies". You'd best just leave the gap in your resume if you didn't want your resume in the trash.
It doesn't mean that you have to hate your job. Just stop and reflect from time to time, and make sure you are being compensated for what you do. If not, you need to change something (ask for a raise, look for another job, work less, ...).
As developers, IMHO you should always push for open sourcing as much as you can, ideally with a copyleft license and no CLA. Because it is beneficial for you personally: it means that you can reuse your code after you leave, and if you manage to make it copyleft and accept external contributions, it will force your employer to keep distributing the sources after you leave.
I really don't get why developers sometimes go out of their way to help their employer keep their code proprietary, it should be the other way round.