Hacker News new | past | comments | ask | show | jobs | submit login
My tiny side project has had more impact than my decade in the software industry (zwobble.org)
701 points by mwilliamson on Aug 1, 2021 | hide | past | favorite | 189 comments



I'm a CS associate professor. I teach a course which consists in contributing to a free software, in third year at my uni. A few years ago a couple of students decided to make a contribution to GNU ls. The change was to have the output color independent of capitalisation (it is based on filename extension). Their code was accepted. It was a tiny tiny contribution, but it's probable that these few lines of code are and will be executed a few thousands times more than all other contributions my other students made.


That's great to see this course -- there aren't enough good courses materials on how to contribute to free software, and it can be quite intimidating the first time. Yet, it can definitely be one of the most rewarding development work...

With others from a few large free software projects & communities (Open edX, OpenStack, Framasoft, Mines-Telecom...), we are in the initial stages of producing an online course / MOOC about contributing to free software. If you (or anyone else reading this :) ) are interested in contributing or joining the project at this early stage, please let me know. : ) My email is on my profile.

Presentation site (draft): https://larrybotha.gitlab.io/mooc-floss/ Repository: https://gitlab.com/mooc-floss/mooc-floss


Yes I know about this project. It was launched by Marc (from Mines-Telecom) who is a friend of mine and took the idea from my course (I originally asked him to teach it with me as he is quite involved in open source through the Inkscape project). I'm really glad he went through with it!


That's great! :) Hope to see you around sometime - we have regular meetings, feel free to pop in anytime :) (this is true for anyone else, too!)

https://gitlab.com/mooc-floss/mooc-floss/-/issues/40


That the best way of teaching CS! Bravo! I wish the US professors have the same attitude like yours.


Man I wish my college offered courses like these. I don’t regret getting my degree but I sure didn’t get much out of it besides the piece of paper that made me hire-able in some people’s eyes.


That's so cool! Are you able/willing to share the course name/a course page?



Glad to see France promoting meaningful experiences for CS students.


That's great! Did you guide them through the process? Did you motivate them in any way?


Sounds like an amazing class.


I work in finance. About 5 years ago I started building a FIX library on my spare time, out of curiosity. Over the years it has been countless fin tech start-ups as well as big companies reaching out to me about the library, suggesting fixes and features. Since then I have long lost the interest in the technology which enables connectivity to financial exchanges to automate trades, but I keep working on the library for the benefit of others and just the joy of creating something. But what’s the actual impact? Enabling companies getting richer? Greed?

https://gitlab.com/logotype/fixparser


I've been a user of your project and it's fantastic. I think you're being too hard on yourself.

The proliferation of marketplaces and assets to trade (and all type of projects, automated trading, market making, etc... that your project enabled) can been seen as a net positive, as a win win for all parties involved and more.

From a microeconomic perspective, your library enabled access to startup using js and with relatively simple tech stacks access to a tool that would otherwise be relatively complicated and time consuming and for which they would not necessary have the resouces. By doing so you lowered the cost of entry and allowed new entrants to challenge the status quo.

And from a macroeconomic perspective I think it's one of the reason access to capital has been simplified and has lowered in cost, it's one of the reason for the low cost of mortgages and the relative resilience of economies during covid (central banks interventions are useless without bank and other financial intermediaries participation, it would be like pushing on a string).

Don't be fooled by the contemporary contempt against finance. It's still the most important reason that explain the constant improvmements in prosperity and peace of recent years, and the best thing one can do is to make it less arcane and open it to more people. One of the achievements of your tool.

You can be proud of your work.


> Don't be fooled by the contemporary contempt against finance. It's still the most important reason that explain the constant improvmements in prosperity and peace of recent years

I think the contempt comes from the fact that financial instruments have a tendency to concentrate those benefits in small proportion of the population. Low-cost mortgages are an excellent example: these have enabled wealth gain for those who were able to get them at a certain time. But that gain has come almost entirely at the expense of those who weren't able to (or simply didn't) get them, who now face greatly increased rent and house prices.


It isn’t financial instruments doing that - it’s people.

Be thankful that it allows this to happen somewhat transparently and peacefully, rather than at the hands of pinkertons, criminals, or the military - which is how historically it has happened.


The financial instruments (and the underlying rules of the economic system) are the enablers here. You're probably right that it's probably better than what came before, but that doesn't mean we can improve on the system we have.


Of course we can improve it - by identifying where people’s behaviors and systemic effects are causing undesirable behaviors. That probably doesn’t happen if we blame ‘finance’ for it though?

Every system has exploitable loopholes and will become unbalanced once enough people start gaming it. Some of them (especially new ones) are easier than others.

It’s easy to say ‘this is terrible’, but that can easily turn into rejecting a known system with adjustments and corrections for bad behaviors that isn’t perfect into a system that gets gamed even easier by bad actors and turns into an even worse (but different) mess. See 90% of all revolutions ever.


Judging from how utterly close that was to a well-worn idiom, I'm guessing what the GP meant to write was "that doesn't mean we can't improve..."

Just so you guys don't get into violent agreement.


Ha, yes I certainly did mean that. Sometimes I type HN comments too quickly.


Haha, for sure.

That’s it! Handshakes at dawn it is!


The new Russian-roulette-ish form of dueling: Handshakes at dawn -- without hand sanitizer.


> It isn’t X doing that - it’s people.

That's quite a silly argument since you can very literally replace X by anything and get a true statement.


Definitely not true.

Wildfire burns down your house (assuming no intentional negligence?) - fire burned down your house.

Tsunami happens and wipes out your village? That was a tsunami, not people.

Neighboring countries army invades? Yeah, that’s people.


Anything man-made, as should be obvious.

Example: It isn't democracy doing that, just people. It isn't autocracy doing that, just people. It isn't socialism doing that, it's people. It isn't capitalism doing that, it's people.

Therefore democracy = dictatorship, and socialism = capitalism. It's all the same, it's all people in the end, so it's no matter.

Patently absurd.


If you replace ‘finance’ with another system, I guarantee you’ll end up with another disaster soon enough. The only way you get halfway decent stability in any human run system is to build in expectations of human corruption and add in methods for self interested (aka greedy) people to get payoffs by tackling said corruption.

The problem is that people are involved, and you’re not realizing what that means - people inherently are corrupt, self interested, short sighted, power hungry, etc.


>If you replace ‘finance’ with another system, I guarantee you’ll end up with another disaster soon enough.

>The only way you get stability in any human run system is to build in expectations of human corruption and add in methods for self interested people to get payoffs.

So which is it? Systems don't matter, or we need to build better systems? x) It seems these two sentences directly contradict each other.

>you’re not realizing what that means - people inherently are corrupt, self interested, short sighted, power hungry, etc.

I'm pretty sure I've noticed this before, actually. Why the condescension? Precisely what I'm defending is that we need systems where the greedy and the powerful cannot run steamrollers over the weak.


Systems matter, 'finance' (whatever that even means here) isn't a single system. People matter, and if you whack specific individuals here (if you can find them), entirely different ones will spring into their place.

near as I can tell, these kinds of messes happen - period.

The reason for the condescension is you seem hell bent on assuming 1) there is such a better system that exists, or can exist, that doesn't make an even bigger mess, but don't seem interested in giving a pointer to it 2) that there were specific individual actors that 'did this' and can be identified, and that can be nailed down without new ones popping up in their places. Aka, there are specific bad guys who made this happen, and if they had been stopped, it would not have occurred.

Which near as I can tell, if they exist, even they didn't know they were those people at the time.

It's a never ending cycle that can be improved but not eliminated, and most of the improvement is after the mess has occurred.

If you go after the people involved with a purely punitive mindset like what you seem to be advocating, it also makes everyone hide everything they are doing everywhere even more (good or not, since they can't tell how it will turn out in the end and be retroactively judged), so it is even harder to figure out you've got a problem somewhere until you have an even bigger smoking crater. There were definitely people acting in bad faith and committing clearly criminal actions. There were also the majority of people along for the ride. There were also huge market forces, including all the normal folks signing up for insane mortgages.

Blaming it all on 'finance' is just silly.


The financial services industry is focused on helping those with the most wealth accumulate even more wealth. You can try to spin this any way you'd like, but this is their raison d'être, it's the business they're in. Don't try to pretend they're actually helping us all, especially after 2008 has revealed their true nature to the wider public.

All you're saying would be correct if we had a sane system of property rights, (which we don't); then finance would be truly benefiting everyone. But that's not the world we live in.


> The financial services industry is focused on helping those with the most wealth accumulate even more wealth.

Every business is focused on making money, and that usually means serving the people with the most money because, well, they have the most money.

> Don't try to pretend they're actually helping us all, especially after 2008 has revealed their true nature to the wider public.

2008, where it became clear that the banks had screwed over their wealthy investors (and each other) to help chumps get mortgages they couldn't afford? How does that show what you're claiming it shows?


> (central banks interventions are useless without bank and other financial intermediaries participation, it would be like pushing on a string).

Yes, the only thing financial intermediaries would be missing is the actual funds (largely paid by the middle class) to bail out corporations for the second time in less than twenty years.

> Don't be fooled by the contemporary contempt against finance.

There has been contempt for greed and corruption for a long time, and for the same reasons that finance continues to earn it today. If the middle class didn’t constantly bail out the banks and their related parasites, you would all be bankrupt.

Frankly I don’t want to hear any advice from anyone in the financial industry until you demonstrate the ability to pay taxes and save enough to make it through the next crisis without crawling to the capitol building with your hand out.


Pretty sure you’re blaming the wrong people. I’m not now and have never been in finance - but blaming banks or traders for the Fed’s actions is prima facia ridiculous.

And throwing in the whole ‘greed is good’ stereotype doesn’t help.


Did the fed lobby for the end of regulations and then immediately tank the world economy with a pyramid scheme?

Blaming the fed for the bailout is like blaming firefighters for putting out a fire instead of the arsonist. That’s a pretty strange understanding of accountability.

While the world economy burned to the ground and families went hungry, the financial industry awarded their executives with billions of dollars in bonuses. If that isn’t greed, what is it?


Which ones exactly and how did they pull off this apparent massive conspiracy?

Near as I can tell, Greenspan pumping trillions of near free credit into the economy is nearly if not more culpable than the loose underwriting at these banks - after all, if they didn’t loosen them, they’d lose their market share in near free credit environments.

And what about the borrowers that were signing up for these completely unrealistic loans? How do they fit in?

And the poor bastards bidding crazy amounts trying to get a house, any house, and also way overpaying in any real sense because of these crazy bidding wars?

It’s easy to blame amorphous entities, it’s hard to really nail down what was actually happening - and point out that everyone in the US was playing a part in a spiraling out of control mess.


> Which ones exactly and how did they pull off this apparent massive conspiracy?

Most of those details are in the findings of the Financial Crisis Inquiry Commission [1]:

"More than 30 years of deregulation and reliance on self-regulation by financial institutions, championed by former Federal Reserve chairman Alan Greenspan and others, supported by successive administrations and Congresses, and actively pushed by the powerful financial industry at every turn, had stripped away key safeguards, which could have helped avoid catastrophe. This approach had opened up gaps in oversight of critical areas with trillions of dollars at risk, such as the shadow banking system and over-the-counter derivatives markets. In addition, the government permitted financial firms to pick their preferred regulators in what became a race to the weakest supervisor."

...

"In the years leading up to the crisis, too many financial institutions, as well as too many households, borrowed to the hilt. ... [A]s of 2007, the leverage ratios [of the five major investment banks] were as high as 40 to 1, meaning for every $40 in assets, there was only $1 in capital to cover losses. Less than a 3% drop in asset values could wipe out a firm. To make matters worse, much of their borrowing was short-term, in the overnight market—meaning the borrowing had to be renewed each and every day. ... And the leverage was often hidden—in derivatives positions, in off-balance-sheet entities, and through "window dressing" of financial reports available to the investing public. ... The heavy debt taken on by some financial institutions was exacerbated by the risky assets they were acquiring with that debt. As the mortgage and real estate markets churned out riskier and riskier loans and securities, many financial institutions loaded up on them."

...

> Near as I can tell, Greenspan pumping trillions of near free credit into the economy is nearly if not more culpable than the loose underwriting at these banks - after all, if they didn’t loosen them, they’d lose their market share in near free credit environments.

None of the firms told Greenspan to stop. They pushed for more and more deregulations and continued to take the money.

> And what about the borrowers that were signing up for these completely unrealistic loans? How do they fit in?

> It’s easy to blame amorphous entities, it’s hard to really nail down what was actually happening - and point out that everyone in the US was playing a part in a spiraling out of control mess.

No, it's pretty well documented. Calling the financial industry "amorphous entities" is... well, just kind of humorous. It's your choice whether to hold the industry that spent decades eliminating regulations for themselves accountable, or the people the industry took advantage of once they were free of oversight.

In line with your argument, if our financial elite don't know more about finance than everyday citizens (why else hold them equally accountable), and they're too incompetent to regulate themselves (else they would have corrected the Fed's behavior), what is their purpose? Wouldn't it be cheaper for everyone if we gave practically interest free money directly to businesses that produce actual goods and services?

[1] https://en.wikipedia.org/wiki/Financial_Crisis_Inquiry_Commi...


Your documentation literally backs it up as a wide scale failure of an industry resulting from many contributing factors slowly building up over time, not an explicit conspiracy, or caused by concrete players who had all the cards and knew the whole situation or had any historic examples that could show where what they were doing would go.

You can certainly go on about all the folks who didn't stand up and say 'Stop!' - but really, we've got a bunch of those brewing in tech, and no one listens to anyone saying stop there either. There are a million apocalypses predicted every day - and it's rare if any of them ever ACTUALLY happen.

In retrospect, you can find those doing it in Finance back then, but they couldn't stop this mess anymore than anyone else - and plenty of people easily papered over the possibility of the crash, the same as we paper over a million other issues in tech.

The regulators were in on all this too.

So you can blame 'finance', same as someone could blame 'tech' for the election. But it doesn't really mean anything and it won't change anything, because it doesn't provide any useful information or potential corrective action.


> Your documentation literally backs it up as a wide scale failure of an industry resulting from many contributing factors slowly building up over time, not an explicit conspiracy, or caused by concrete players who had all the cards and knew the whole situation or had any historic examples that could show where what they were doing would go.

> You can certainly go on about all the folks who didn't stand up and say 'Stop!' - but really, we've got a bunch of those brewing in tech, and no one listens to anyone saying stop there either. There are a million apocalypses predicted every day - and it's rare if any of them ever ACTUALLY happen.

They built models on the basis that house prices do not go down, counter to lessons I learned in a 9th grade economics class about boom and bust cycles. They lobbied to remove regulations designed to reduce risk and over leveraging, and the risk increased and they became over leveraged. They continued to repackage bad loans from predatory lenders as AAA investments well after they understood the consequences. That's why the major firms offloaded those financial instruments to anyone they could find, even if it meant wiping out the life savings of millions of people by saddling pension funds with negative equity. It was not an apocalypse. It was history repeating itself.

> In retrospect, you can find those doing it in Finance back then, but they couldn't stop this mess anymore than anyone else - and plenty of people easily papered over the possibility of the crash, the same as we paper over a million other issues in tech.

It looks like we agree that they are incapable of regulating themselves. If they aren't competent enough to understand the regulations they dismantled, or to take boom and bust cycles into account for financial planning, what is their purpose? If they can't mitigate risk or provide liquidity in a crisis, what function do they serve in the economy?

> So you can blame 'finance', same as someone could blame 'tech' for the election. But it doesn't really mean anything and it won't change anything, because it doesn't provide any useful information or potential corrective action.

Nations like Canada did not remove the regulations, and did not have a similar liquidity crisis, although they did suffer economically because the US financial system crash was so severe. There was a wealth of information on the effectiveness of regulation and firewalls between banking institutions, and many economists predicted another financial crisis before Glass-Steagall was effectively repealed after decades of lobbying from the financial industry. Canada was able to apply this useful information and take corrective action which kept them out of the crisis.

Similarly, there was plenty of literature on why placing social media outside the regulatory environment for all other media was dangerous well before the election and QAnon. The tech industry could do something similar, but you and I both know they are lobbying to keep regulations out. They are purposefully avoiding corrective action, despite the severity of the consequences, because it means they may make less money and have more competition. They want all the profit from their monopolies, but they don't want to spend any money to moderate it or comply with regulations. It's nothing but greed and hubris, and it is just as contemptible as the same motivations in the financial industry.

The solution is not mysterious or unknown, it's effective regulation. Your hypothesis is that no one in the tech or financial industries are capable of understanding the effect of their actions, or accepting accountability for them. I believe they do understand the effects of billions of dollars in lobbying activity, and know that if their scheme fails, they can avoid accountability, keep their profits, and still get bailed out. In either case, the "potential corrective action" is the same: effective regulation.


My hypothesis is that when a system is large enough, you run across so many counter-examples and ‘that shouldn’t work’s that do for everything that it’s easy to lose the forest for the trees and have large scale systemic problems that seem simple in hindsight but no one has the ability or will to pull together or change at the time - until it blows up. Most of the firms Originating the shitty loans never lobbied Congress. Most of the people signing up for these impossible loans had no idea the rules changed, and just wanted to be rich(Er), and thought they had a sure thing.

You’re 8th grade economics class also probably didn’t cover some very real scenarios where prices don’t and can’t go down - hyperinflation.

It’s easy to say Effective Regulation, it’s harder to do it - especially when everyone is getting rich (including the average homeowner who sees the value of their home skyrocket). I lived through ‘08. I was in the market to buy due to life changes in ‘05 and it was already out of control. Of the literally hundreds of co-workers, investors, other buyers, etc I interacted with, only one other one actually didn’t get involved and avoided problems. Of the dozen friends who I’m close with, a quarter of them got in over their heads buying during this time (others sold, or wanted to buy but were priced out). I ended up buying in early ‘10 for literally half the price. Keeping a steady hand through the run up of prices literally had me crying myself to sleep a few times. It isn’t realistic to expect all but a tiny portion of people to see what is really going on in such a mass psychosis event.

And Canada has been having a similar crisis for a decade+, it just hasn’t blown up yet - see the Vancouver, Toronto, etc. housing markets. These are impending financial crises in the making - or not. They may not have had bank crises in ‘08, but a lot of investors still lost a ton of Money.

And you keep insisting on everyone getting rich off bailouts - when what really kicked off the collapse was when firms were allowed to implode to set an example, everyone lost massive amounts of money on their investments, banks were nationalized, and an entire industry (mortgage origination) went through a nuclear winter. The gov’t bailouts (that in many cases were forced on solvent firms so the few that were in trouble didn’t get pushed into bank runs) got paid back, with interest. Someone made money, but someone always makes money. On a whole, they lost way more, and if everyone knew it was going to play out this way, very few would have kept doing it.

That not every single financial firm went bankrupt is indeed a thing. That we didn’t enter a Great Depression spiral because of it is also probably a good thing for everyone. Unless you’re saying you are a ‘debt is evil’ person, in which case be aware the hangover from implementing THAT in the modern economy would make the Great Depression look like a blip.


The financial industry is a necessary evil because our entire financial system is so fucked up. I recognise that a certain amount of cognitive dissonance is required if you work in the industry, but I think saying it is a primary driver for social improvement is really taking that way too far.

That said, if you write cool software that is cool. It doesn't need to have a huge social impact as long as you enjoy creating it, which appears to be the case here :)


Thank you!


There is a common refrain in charitable organizations that are focused on helping the poor:

"Sometimes you have to feed the greedy to get to the truly needy."

In other words, the greedy will always take advantage, but that doesn't diminish the help you give to the needy. There is simply no way to totally filter for the greedy.

This doesn't really apply directly to your situation, but at least for every greedy company that benefits from free products like yours, there are a lot of jobs created and benefit to society as a whole when these companies create useful products.


I do find this aspect of human morality interesting... people get REALLY upset at freeloaders, to a degree that is not proportionate to the cost they add. We choose to spend a ton of resources to prevent freeloading, even when the amount we spend to stop them is more than we actually lose to the freeloaders.

I guess it kinda makes sense as social creatures, but it can be frustrating at times when you are trying to help people.


> We choose to spend a ton of resources to prevent freeloading, even when the amount we spend to stop them is more than we actually lose to the freeloaders.

Is it also more than what we would lose to freeloaders if we did nothing against them? If yes, then it's indeed not rational. But if no, then it's just indicative that what we are doing is working.


Yeah, that is part of why I said it was interesting… it is hard to figure out how important that behavior is for social stability.


I imagine if we stopped doing those things the number of freeloaders would increase.

So the net benefit is negative now, but it’s still better than the cost of not having the measures at all.

Also, yeah, it shouldn’t be easy to freeload. Make them work for it!


Your comment made me chuckle because it started "I imagine" and then reached a "so" as a "therefore".

Virtually every time you integrate anti-freeloading measures, everyone pays the price to catch a relatively small minority of people abusing the system. It does not at all follow without study that the suffering these measures cause are better than the alternative of allowing some level of growth in the abuse of the system to make everyone else's lives easier.

Every organization should do its own studies and reach conclusions based on what actually happens in its domain and location of operation. Anything else is likely harming people and more drum beating than solid work.


The null hypothesis is that parasite load will increase until the organism can no longer bear it. Freeloading will increase to the point of institutional collapse. Both people and systems need immune systems to survive.


Wouldn't the null hypothesis be that nothing will happen if you allow free loaders, and the hypothesis be that freeloading will increase?


> Anything else is likely harming people and more drum beating than solid work.

I don’t necessarily disagree. But I think people are happier while being harmed by the measures than by the freeloaders.


I'd probably offer some sort of support/consultancy services and prioritize the work of the paying users, making it clear when filing github issues and pull requests. This could easily sustain you in a passive income way so you can spend most of your time working on things that matter more to humanity.


Yeah, I think especially in finance companies would be willing to pay for support and feature development. There has to be a way to monetize the project and make it so at least it pays for your time.

There's nothing wrong with a labor of love, but the companies using your software can afford to pay for your time.


But then it's a job and he/she probably won't like it anymore.


That's okay, it doesn't need to be a full-time job, but more like a "4 hour work week" mini-job that pays the bills with minimal ongoing effort.

The rest of the time could be spent doing other more interesting things that just bring joy and/or benefit humankind.

They'll probably also have further potential for monetization, and so on, sustaining a life of leisure and doing meaningful work.


I don’t think you have any obligation to continue supporting the software, but give yourself more credit! You’re making dozens (hundreds? thousands?) of developers lives significantly better. You’re helping bring the finance industry out of the stone age. You’ve created something useful and valuable, which is no small feat.


Isn't FIX messaging part of the stone age problem?


Well, baby steps and all that :^)

At least it’s not a hand-rolled, “enterprise-grade” (read: extremely verbose with unnecessary abstractions) pile of spaghetti. I’m slightly scarred from my brief stint at a large finance firm.


This is amazing. I now work in consumer SAAS web development, but I worked for a long time in finance and for 7 years of that exclusively focused on FIX, writing a real-time, highly performant market interface. I would have _loved_ to have had something like this while I was working on it. Have you thought of commercializing it? Do you get to use it in your day-to-day work?


Huh! You left out the most funky part: you wrote a FIX parser in Typescript.

What are people using it for? To make web apps and just not have to roll their own wrappers around FIX/FIX-derived data? (That is, if all back ends are used to speaking FIX, it’s nicer to have the front end and web serving tools also just speak it?).


People use nodejs in finance backends too. Its async operators make it easy to munge different data streams together and fan in/out results.


oh this is something to say louder for the people in the back: there is no reason that finance and computational finance gravitated around python

there is nothing inherent about that language aside from people not having made some libraries in other languages

javascript especially nodejs is fine for most people's finance cases


It's true there is nothing inherent. Because all these non-statically typed garbage collected languages with Algol-like syntax are basically the same language. Given that it makes sense that the decision is made based on libraries, community, inertia and whim.


> Huh! You left out the most funky part: you wrote a FIX parser in Typescript.

What's odd about that? Typescript is a boring middle-of-the-road language from the last ~10 years, it's a pretty reasonable default language (although structural typing is a bad default if you ask me).


Are your users compensating you well for this? Sounds like the impact you're having is making fintech serious money, so I hope you're getting some of that.


0 USD :)


I'm trying to find niches where positive feedback loops have a nicer effect on society (right now trying to help courthouse daily duties for instance)


It would be nice to make a list of such niches. Things that wouldn’t take more than a couple of hundred hours to make (at max) and are tremendously useful, especially to vulnerable populations like old people, people with limited internet connection, physically challenged people etc.

These need not be super polished, optimized etc. They just need to work correctly and solve a problem quickly and easily


old people are a special demographics (I encounter a few of them regularly, for IT reasons or not)

the obvious fields in the list:

- education

- healthcare

- justice

someone on HN showed an app for people to find good workers for home rework, this kind of stuff could be tremendously useful, and more generally the organization layer of society is very lacking. This also match the issues at the courthouse, basically making people well informed, and communicating issues/info smoothly (instead of waiting days to get a fake answer by someone shady)


Physically challenged people are another group that could use a lot of help. One of my friends has cerebral palsy, until I met her, I had zero idea about the problems they face.

These groups of people aren’t served because there is not much money in it :(


I'd gladly help people with those issues. I'm gonna seek them (no idea why I never thought about that).

The reason I put elders aside is that their motivations and emotions are very different from younger people. There are lot of fear, loneliness driving their need for help, and often they don't really want to own the knowledge, it's more a little bit of emotional support; which is cool, but not as motivating as, say, a younger handicapped person, who has more skin in the game.


There was a language website that connected old people with youngsters who want to learn languages. They practice their language skills and help the old people with loneliness. This is a very good idea.


indeed, those bridges are great


There's a lot to be done to address digital divide especially for the elderly.

The other week I witnessed first hand how multiple 50-something folks who own smartphones struggled with something as easy as filling a form on a website for making an appointment (in this case for getting a passport) and confirming the appointment by clicking an email.

Or think about the thousands of vulnerable/old people who will die of COVID-19 because they failed to schedule their vaccinations even though they could otherwise access it. A friend who works in Berlin on radiotherapy for cancer patients said lots of them aren't vaccinated because they just can't sign up for it and their doctor doesn't do it for them.

Anything that requires using technology, even as simple as using a browser and getting a confirmation email should be probably be also made available by more familiar/accessible tools such as SMS/whatsapp/facebook or a call center.


biggest problem in digital anything is the amount of bs and randomness

non tech saavy people rely on rote learning at surface layers, and every year comes a new way, new look, new lingo .. they feel it's yet another big knowledge gap to learn when in fact there's almost nothing new under the sun (algorithms are as old as civilisation, logic doesn't change much)


Are you seriously asking that question about people who want to automate trading in the stock market?


if you want to erase billions and stop the richness just remove the library, or better yet add a typo :D


Quite a few years ago as a (very) junior FE dev I used mammoth.js to automate the generation of a biennial report. Three months had been earmarked for the task as this is what it had taken in previous years (due to bad tools and lack of expertise). I had it done in less than a week by using mammoth. Mike was also very accommodating with questions I'm pleased I cant remember as I'm sure they were embarrassingly simple.

The project still took three months as it was one of those special type of organisations, but it wasn't due to the HTML generation :)

Thank you for mammoth.js!


Your story and mammoth's origin story really highlight how the Sisyphean corporate world is seemingly at odds -- or at least tangential -- to progress.


In the interest of full disclosure it was a government org. Your point still stands though.


> government org

Governments and corporates function incredibly similarly.


Government is a corporation at extreme.


I'm just thinking about how mammoth.js is being developed for free but is being used by corporations to make money. In a way, he's working for free by making this open source. Something is off about that.


Then again, a lot of us have paying jobs because of companies that are leveraging open source software. So... I guess it's some kind of altruistic strategy that helps us devs survive better in aggregate?


This is true for most popular open source projects, fwiw


Corporate does not care about the job, or the client. Corporate only cares about billable hours.


Predictability, revenue per employee, and predictability of revenue per employee ;)


Companies isolate devs from customers by using Product Managers. PMs interview customers and then decide what to build. By the time the tasks get to the dev it’s hard to understand the motivation and impact. The best companies I’ve worked at put the engineers and customers in close contact so they understood the impact and shortcomings in their work. Alternately you need to foster a culture of shared purpose where you have “faith” that your work has impact.


I've seen more engineers completely disinterested in anything customer related (and even calling users stupid!) more than I've seen PMs isolating devs. Every time I ask a PM if I could interact with a customer (not asking for permission, but to hook me up) they were delighted. Every single time.

Another way to solve this problem is to have engineers on customer support rotation of some sort. This way, engineers get to see how their software is used in the wild and interact with customers, and PMs get to see how unrealistic expectations and deadlines comes back to bite you in the ass in a form of your engineers being busy fixing half assed crap.


I agree about PM/dev/customer part but disagree on dev/support rotation.

This sounds great in theory, in practice working on any non-trivial software means there are parts you know little-nothing about. Having spent time on support duty I'd end up pinging team members for help (disturbing people without having a sense of priority since I don't do support), budding into other people's stuff without the capacity or desire to follow it up long term.

The best way I saw to get devs into customers shoes is to let developers be involved in client rollout - like ship then on-site and see how people use the feature they wrote.

But frankly even then, devs shouldn't be making a lot of these ae user facing decisions, send the UX guy.


I think it depends on how teams are organized already and the size of the company.

Few things I noticed that made this work in practice:

* Engineers pair up for few rotations with other engineers who are experienced in interacting with customers, triaging issues, troubleshooting issues across the system and identifying which internal service is causing issue and ping the team that supports it and/or move it to their support queue.

* The goal is not to fix every single bug or issue in the queue. Prioritize incoming tickets and gather as much information as possible before moving it to some team's backlog. Solve only problems that you think are manageable within the length of your support rotation.

* One engineer per team or owners of a set of services should on the rotation (this again depends on how teams are organized already).

* Pair with customer support or customer success agents when dealing with difficult customers, situations or need help communication-wise in general.

* Bring in these bugs to your team and make sure stakeholders are aware of them. This is important especially when the team ships something and moves on to the next thing thinking they have 100% capacity for the new project. This is another feedback channel that PMs should be aware of.

* Engineers on support rotation are exempt from their team duties while on support. Again, this communicates what capacity the team will be operating on in the next week or two.

I learned so much about other parts of our product and APIs, how users interact with it, and most importantly (for me at least, since that was the new part) working with people in the company who are not in engineering or product!


> disagree on dev/support rotation

I've worked (as a dev) in a customer-facing industry where devs are generally divorced from customers. Working in support has helped me understand the codebase better (because yes, you usually don't know it all that well if you just fix bugs and build features) and helped me to (at the time) connect with the value some people get out of it. That was nice.

What was less nice is dealing with the angry minority of customers. That was I would say significantly more unpleasant than dealing with the happy minority was pleasant. For that reason I would not recommend interfacing with customers for anyone. There is a reason support agents have such a high turnover.


The best PMs I've worked with have very clear understandings of customer workflows and needs (or work towards developing them) and communicate those to the dev team. They also make sure to share customer feedback, whether constructive criticism or excitement/thanks.

It's really motivating to hear customers are happy and I don't know why a PM wouldn't share that good news.


It is valuable to have someone for the customer to talk to that is on their wavelength (often less technical and sometimes more domain knowledge), and who has more soft skills than you might seek in developers. Calming down an angry customer is a useful ability and that's not what you hired me to do.

However, sometimes the problem is just technical, and every game of telephone makes it worse. I have had two week back-and-forths which were eventually resolved by the agreement that OK, this nerd who does our implementation (me) can be on a teleconference with your nerd who does your implementation so long as us grown-ups are also in the call - and then it takes maybe five minutes to get to "No the digit five. Not the word five, the digit five." "Oh! Oh Wow. I never considered that. Sorry. Yes, it works now." and we're done.

I really valued time spent shadowing people using my software, one of our tools was for call takers, and I could see that the thing they're all kinda used to but have to keep working around is a thing I can fix with a CSS tweak, whereas the change their manager tells us should be prioritised is going to take months. I can land the tiny improvement next week, and make their lives better while their manager argues with my manager about whether the big piece of work is P2 or P3 and so on. The role I'm in theory taking next (if they get their act together and issue me a contract to sign) is more user contact again, and I look forward to being able to make people's lives better directly.


Yeah, it’s sometimes a bit distressing to interact with the users directly if you haven’t done so for a while, because you find out they spend hours a day on tasks you never even considered and can literally take away with a few minutes of work.

Asking them to tell you next time doesn’t always work since they just cannot imagine that the thing that takes them hours a day can be fixed in 5 minutes, forever. I think they unconsiously don’t want their hard work devalued like that.


They also don't have any idea where complexity lies in an opaque system. More than once I've heard about users wanting more control over how a certain view sorts records. Users will pitch strange ways of getting some kind of stable sort. When you realize they want a field tracking creation order or update time they think you invented the idea. (Good PMs can figure this out, too)


Outsourced operations like contractors are often neglected in the feedback loop. So are SRE’s and parts of the business that are less customer facing. This can lead to lack of purpose. Good companies make sure everyone knows their contribution to the whole.


Documenting and communicating motivation and impact are often pretty high up the priority list for PMs, otherwise you're just a context-free ticket factory, which typically results in subpar products.


Not in my experience or maybe large companies have so much hierarchy that the PM gives kudos to the dev manager that never trickles down to the individual devs


The project I'm currently the "lead developer" on never had a PM, so we directly communicate with users/customers. Often we are able to implement changes and make them available in a test environment within the hour - people are amazed, because they're used to everything taking days at the very least, usually weeks or months, with a lot of stuff never being fixed and so on.


just be careful, without a PM you can end up building lots of little features for each client, making individuals happy, but then you end up losing sight of what problem you were trying to solve, and suddenly your product feels very "heavy" for everyone...


Why do you need a PM for that?

That’s what a good tech lead with a robust roadmap is for.

PMs sprung out of the notion that engineers are anti-social and need someone to keep customers/internal teams at bay so eng can focus on coding.

Of course in reality there are plenty of highly competent tech leads who can both negotiate with customers on a roadmap and build it.


It’s true, there are plenty of engineers who are capable of dealing with customers. PMs, however, did not come from an idea that engineers are antisocial, you’re making assumptions. PMs have long existed in other industries where the very same is true as software; the people building the product are often capable of talking to customers, but don’t.

The reason PMs exist is because it’s a full time job, just like most roles. Being an engineer and/or tech lead is also a full time job. In larger companies, we tend to split out full time jobs. Often in small startups, people have multiple roles. So in a small company you might see someone talking to customers and engineering. In a large company, it’s far more likely that the engineer and the PM are two different people.


The work involved in keeping up with a roadmap, convincing execs that the roadmap is worth investing in, communicating it with the marketing teams, content teams and support teams, tying it back with customer demands and needs, and all that really ends up taking most of your time as a tech lead, and you no longer have time to work on tech design, architecture, training, reviews, coding, testing, etc.

That's where you'd want a PM brought in, the tech lead ideally would work together with the PM on the roadmap, in that technology must be considered when designing a roadmap, feasibility, effort needed, technical complexities, needed tech dept pay backs, needed redesigns, infrastructure upgrades, security considerations, etc. As well as being consulted for what can tech realistically provide as means to solve problems, etc.

That's why I think a PM is needed, so the tech lead can focus on leading the technology, while the PM focuses on capturing requirements, getting funding, coordinating the launch, and all that.

Ideally, there's also a separate dev manager, so the tech lead doesn't have to worry about employee resourcing, project allocation, hiring, compensation, promotion, needs/wants, vacation time, performance, etc.

For all these things, the tech lead should be consulted and have a voice, but freeing them from all this work is definitely a plus, why have your most experienced developer do all this management work?


I think we'd call them PMs once the job gets big enough to need that work done (almost) full time.


Keeping up with the technical side, keeping up with the product side, and keeping the rest of the team informed is usually too much for one person.


I am not sure if it's correct, but I have heard that Apple does not PMs in their main product because of that?


This is an interesting and thoughtful piece but I think Mike (the author) does rather underestimate his impact.

I never worked with him directly but we both overlapped at Redgate for several years. During the time I was there he wrote code that was integrated into Simple Talk (https://www.red-gate.com/simple-talk/), which is/was Redgate's website for publishing content, articles, tutorials etc., useful to SQL Server and .NET professionals. I believe he also worked on https://www.sqlservercentral.com/, which remains the leading community site for SQL Server professionals. The old Simple Talk site is several years gone now, sadly, but Mike worked on it during its growth phase and (guessing somewhat here) most successful period.

These are sites that are used and useful to hundreds of thousands of SQL Server and .NET professionals every month. Yes, they are also promotional vehicles for Redgate and its products, and a core part of Redgate's marketing strategy, but it is possible for them to be both marketing and useful.

Mike is an excellent engineer, and very much cut from the get (valuable) things done mould - which mammoth.js firmly underscores. I have no idea what he's doing at the moment but, if you get the opportunity to work with him, you should jump at it.


Similarly, I've been writing respectable software for decades but I'm fairly certain that my most widely used piece of software, by a wide margin, is a mildly pornographic app (http://driftwheeler.com)

This app, published in 2017, has a continuously growing population of users from all over the world. I get email every day asking whether soft1 is the only server, thanking me, suggesting improvements, etc.

It's ironic, and there is a lesson to be learned here.


It's just a numbers game. The total number of people who consume porn is probably many orders of magnitude larger than the audience of your respectable software, so even if you're tapping into a very small niche of porn consumers, it can be enough to overtake your other software.


I think many devs have that feeling...

But often simple things have a very big effect - in my first job I made some simple scripts which imported data from machines into an ERP System.

I also made some bigger projects with feature rich GUIs at my first job.

The simple scripts probably sill import data every workday and automate a task previously made by humans since multiple years, some of the GUIs weren't even used daily before I left that job...

So I feel like the simple scripts will be there for a long time and save many work hours while some of the feature rich GUIs probably weren't necessary...


My most used program was a 7 byte .COM I wrote with debug.exe. It made the machine reboot. It took about 15 seconds to write. A friend who worked at the college ended up using it in their scripts. They had a way to do it before but it wasn't as reliable as my little program. That college's infrastructure was used as a model for the rest of the district and so my little program spread to the other colleges.


jmp f000:e05b

Between fiddling with debug.exe and discovering that fixed address, that put me on the path to demystifying technology (or at least understanding everything is approachable).


I feel like everyone has an ah-ha moment when software's facade of magic gives way to a genuine feeling that nothing in software is inunderstandable.

I was helping my brother through some CS classes, and he had to use some sort of graphics library, and things just weren't clicking. I opened the source of the graphics library so he could see what was going on under the hood and he was like "whoa... It's all just... Regular code..."

Demystifying indeed.


I remember when a friend and I, both with barely any experience at all, tried building our first SaaS.

We went crazy over access control, roles, etc, wondering how operating systems and databases did it, driving ourselves mad over how to implement it at the lowest possible levels so the rest of the stack couldn’t possibly go around it…

We were pretty certain there was some highly complex dark magic behind it all.

A few years later, I worked on a project where we built a SaaS MVP for a client, with access control.

Turns out most people apparently consider ABAC overkill and will go with a few simple if statements if they can afford to.


I showed a friend telnet yahoo port 80 GET.

"wait. it's .. just ... text!"


It’s crazy how much time little scripts can save.

10 years ago at my current job I created a script to automate the job of checking a certain website for new data each day. It used to be done by a person who would spend maybe 20-30 minutes checking the site and circulating the info each day. Others would also check the site on their own periodically for faster updates.

The script just checks the site multiple times a day and circulates the results.

Over the course of 10 years, I’d guess that my little script I wrote in maybe 5-10 hours (including some tweaks over time as the site format changed) probably saved in the ballpark of half a million dollars in time spent, based on billing rates.


Yeah, this happens even within a side project. Smaller trivial ones tend to be found useful, while bigger ambitious one tend to ending up disappointing, even if completed.

At work, giving a spot-time quick help often feels more helpful than pushing through a "proper" project task.

I suspect this is because large part of the "work" project is more like a speculative investment than something obviously useful. That is probably OK because finding large-enough-obviously-useful-things is hard. What we tend to overlook is that finding a tiny-but-obviously-useful-thing isn't as hard as it looks. It's just hard to earn enough from it.


Ok, but then you should also ask: how much of that is my work and would someone else have written the same simple scripts? Perhaps the main value is in the existence of these ERP systems.

From that p.o.v. your feature rich GUIs may be your biggest contribution to society, because that's really work based on your decisions.


> Sometimes I wonder whether it'd be possible to earn a living off mammoth. Although there's an option to donate - I currently get a grand total of £1.15 a week from regular donations - it's not something I push very hard.

There's no shame in making the source available but using a license that requires payment for commercial use, like the Prosperity [1] license.

[1]: https://prosperitylicense.com/


The problem with this approach is that it turns open source adoption into a procurement process: the developer who wants to use your projects needs to go through the legal department etc. So if there is any alternative option, employee devs will avoid a dual-licensed package.


This license is not written by a legal expert, I suspect.

For example this clause, phrased like an order, does not make sense:

"Don’t make any legal claim against anyone accusing this software, with or without changes, alone or with other technology, of infringing any patent."

You can't give orders to people in a license or other contracts. You can only describe conditions.


> This license is not written by a legal expert, I suspect.

FWIW, it's written by Kyle Mitchell [1], an attorney. It's just that he places particular emphasis on writing his licenses in plain language, not legalese.

[1]: https://kemitchell.com/


Sure you can. Contracts are simply bargaining for promises to do or not do something. Here, the “order” is the licensee promising not to do something.


Also nearly impossible to enforce. This approach just adds a layer of guilt/paranoia in the implied legal consequences.


Few companies of any consequence are going to use a piece of software illegally.

Every boilerplate due diligence process when trying to sell your company includes looking at what open source work you’re using to see if there’s any legal issues.

You’d be stupid to risk scaring off a multi-million dollar pay day over something so trivial.


Don’t spend your time worrying about those who won’t pay. Almost always a better use of time to think about expanding those that do/will. It’s frustrating, but not a good use of time.


In a business context however, how knows how many apps are using it, and a properly done licence forces business to pay, maybe only once but it's something. A commercial license could bring in some small revenue that justifies maintenance and new features.


Some people don't want to run a business and that's OK.


If a library has a restrictive license like that, then it had better be polished and extremely user friendly, or I'm not using it....

Whereas, if it's a permissive license like; MIT, then I'm personally more likely to be much more forgiving and even try and fix problems.


Our story is very similar. I wrote a small library for converting XLSX and XLS files to CSV. Over the years, that grew into one of the most popular open source libraries on npm/github: https://github.com/SheetJS/sheetjs

Back in 2015, 'patio11 reached out to us. In addition to a structured license purchase, he gave great insights and actually wrote a blog post about the experience https://www.kalzumeus.com/2015/01/28/design-and-implementati...

Today, we offer paid software builds to solve related problems and it allows us to work on SheetJS full-time!


I’m thrilled that this is going so well!


> I don't know what the total amount of time saved is, but I'm almost certain that it's at least hundreds of times more than the time I've spent working on the tool.

To me, this is the entire point of software and automation. To give time and money back to people, because I want to make the world better. I see software being priced to just barely be worth it for the buyer because it saves time (e.g. Mailgun and Auth0). When I write software, I want to price it so that it saves them so much money adoption is a no-brainer. "Free" pricing would be included in that, of course. Unfortunately, I also don't write much useful software.


Sounds fairly normal over the course of a lifetime.

One is "the day job", used to pay bills.

The other is "what I feel good about as a human being". It's great when both align, but that's not the standard thing that seems to happen.

Take it as a useful data point, not something to get bent out of shape over. :)


A few months ago my tiny side project blossomed into a 6-figure income stream. It’s an electron app that designs and prints labels.

Users import spreadsheet data and generate barcodes. Since I have a customer base and a target market, I’ve had every one of my mentors tell me I need to stop writing features and work more on marketing and analytics. But it’s not as fun!

Instead, I find myself up late at night working on USB weight scale integration for grocer/farm labeling kiosk. I’m looking for beta testers that have a need for such a thing.

Check it out at https://label.live


I've worked on multiple specialty projects billed in the 10M+/year range with a handful of client stakeholders.

I'm sure it made impact but at most it saved <10 people a couple of hours a day.

I'd compare this phenomenon as if drug companies spend millions of dollars to cure an obscure disease a handful of rich people have.


Isn't the statement a bit obvious? Most of the tech companies out there were not born to make an impact on society, they were born to make money (which is totally fine). Only a handful of companies can be proud of making money while actually having an impact (good or bad) on society (e.g., Apple). Most of us (us != HN crowd) work for companies in the first group.

On the other hand, the vast majority of side projects have a very different: to have fun and/or being useful. Things that are useful usually make an impact on the society.


> Isn't the statement a bit obvious?

No, it isn't obvious, just like the Earth is not obviously round. Even 40 years ago, the statement wasn't obvious to many public intellectuals in the West, when they were in favor of neoliberal economic policies, under the broad assumption that free markets will automatically bring meritocracy (whatever it is). I think this example is one of many that show that meritocracy doesn't really happen by itself, but requires societal consciousness to be implemented.


Seems like money is only useful to pay for things that are predictable and require hard work, but we're quickly moving into a world where things that are predictable don't require hard work and thing that require hard work aren't predictable.


Earth has been _obviously_ round for at least 2300 years. Ancient Greeks knew that because a ship on the horizon disappears below the ground instead on gradually getting smaller.


All enterprises have multiple impacts on society. Many people want their work to tied to an overall net positive organization. That's why so many companies put energy into saying they are beneficial to society. Too bad those statements don't have to be vetted by an independent and impartial rating agency of some sort.


This is the magic of free software licensing: by removing barriers to sharing, it multiplies the usefulness of whatever is licensed by a much larger number of users, who are all free to repurpose it as they see fit. Most of my own free software is pretty radically useless, but I've written Wikipedia pages that thousands of people read every day, and made improvements to countless others. It would be difficult for anything I do in a normal job to have as big an effect on the world, either positive or negative.


I once helped a friend by writing a simple script to automate sending series of mails which were usually composed manually with attachments and same-ish subject and content.

This boosted their productivity at least by 60%. I was more proud and satisfied with that simple piece of code than my entire professional work that year.



I think the only other team who has made such a feature is Wordpress contributors, Wordpress offers a way to copy paste word documents in their Text box, and it formats correctly.

Perhaps you can launch commercial license for your library, and license it to famous CMSs, such as Umbraco or Craft. That way you can make a living on it too.


A few years ago that would have been true, at least client-side. There have been a variety of server-side options for years, especially if you run Windows as the server OS. More recently editors like CKEditor have vastly improved their Word pasting.

Even so, mammoth.js seems to remain unique in the ability to upload a file in the browser and programmatically retrieve matching HTML. That is why I use it - I can get the HTML, process it, and POST it back to my server already cleaned up and ready for my CMS. The browser does all the heavy lifting, my server remains a basic CRUD app, and I don't have to allow file uploads as it all happens client-side.


They mention docx so I guess it takes the file as input (as opposed to clipboard contents for web JS editors).


In 2015 or so I wrote a tiny tool for people to record the outgoing voicemail message from their phone. In the intervening years it's helped more than 23,000 people move on from loss, save a grown child's cute voice, and lots of other things. It hasn't been significantly financially rewarding but it's incredibly fulfilling to help someone on such a personal level.

https://vmsave.petekeen.net if you're curious.


have you tried working in public sector? i’m proud my software runs in our hospitals and saves hours for doctors, they now spend treating more patients!


I work in the public sector, and mammoth.js has been a huge help in allowing me to create tools for school districts to bring content from Word docs into our tools. So yes.... even if not directly, the OPs work has definitely had an impact in the public sector.


Same here, for most of my 15+ years career in IT I've been doing DevOps stuff, mostly writing small scripts and infrastructure code, occasionally hacking on existing projects enough to do drive-by contributions.

About 6 years ago I started AutoSpotting, an open source tool designed to reduce AWS costs by automatically replacing on-demand instances with up to 90% cheaper Spot instances, it was meant to be my playground project for learning golang.

I estimate it saved in aggregate in the tens or maybe even hundreds of millions of dollars and multiple companies have been built around my code or reimplementing the same idea.

It's still a side project that I work on occasionally but at some point I tried to monetize it through support and custom development. I failed to get enough traction to become a full time job, currently make some $400/month from about a dozen users whom I sell precompiled binaries through Patreon.


> I estimate it saved in aggregate in the tens or maybe even hundreds of millions of dollars and multiple companies have been built around my code or reimplementing the same idea.

> It's still a side project that I work on occasionally but at some point I tried to monetize it through support and custom development. I failed to get enough traction to become a full time job, currently make some $400/month from about a dozen users whom I sell precompiled binaries through Patreon.

We've had a lot of issues doing donations for cool projects like this. I'd really like a simple subscription service ala Gumroad so we can sign up for the "Enterprise" tier. Saving $100k we can totally kick back $5k to the person every month without feeling it.


That's exactly what I have been using Patreon for, it's not a donation but a subscription for an enterprise tier. Still very few people signed up for it, the OSS code is working well enough and there's very little friction in just using it.

Going forward I'm going to offer the enterprise stuff through the AWS marketplace, further reducing the friction, hopefully that will get more traction. It's just a lot of boring billing engineering work that I could have spent on improving the software.


I think there’s tons of developers who feel this way. Some of the brightest minds and smartest people go to work for tech companies simply working on figuring out how to keep an ad in front of your eyes for a few extra milliseconds.


I use a Mammoth WordPress plugin on a few sites. I dislike prominent donation nags, but if just popped up when I converted a document I think I'd be compelled to donate. It's a real time saver.


"Word Documents": Now there's a blast from the past. In my last 3 decades, I've used a UNIX-style operating system as my day-to-day operating system.

It used to be that my ever-present problem was in dealing with Word Documents. Practically every document I received back then was a Word Document. They were ubiquitous. If you couldn't read a Word Document you couldn't do business.

I used WABI on Solaris to run Word itself in the 90s. It wasn't always workable. So a lot of the time I was dual-booting to Windows and running the true Office.

In the Noughties, I was able to stay in my UNIX-like system and run Star Office followed by Libre Office to read the fairly common Word Documents that came my way.

But now, in the early Twenties, I only just realised that over the course of the 2010s, all of those Word Documents just dried up and blew away. These days, I might receive perhaps one to two .docx files a year, and Libre Office handles them without me having to think about it.

But I think the biggest killer of Word Documents has been Microsoft itself. By trying to stay proprietary and keep the free Office suites continually playing catch-up Microsoft kept extending and extending Word's features. If you didn't have the latest (expensive) Microsoft Office, you couldn't read the latest Word Documents. People got sick of this and the world gradually moved, over the course of the decade or so, to sending and receiving .PDFs.

Adobe were smarter than Microsoft. They realised that a .PDF could be available to all, no matter what operating system one used, and everybody could use it. That being the case, everybody DID use it.


Same here, I spent many years on complex and large pieces of software with relatively little impact, and an 'all nighter' pretty much changed the world for real time video on the web. Pretty weird when you consider that it was mostly gluing together pieces that already existed and adding a small HTTP server.

I haven't been able to replicate anything close to that success in all the years since then.


what was the software ?


This was the second iteration, the first was in 1995 and it slowly improved until we could power a service with it:

https://web.archive.org/web/2020*/https://www.camarades.com/


I’ve worked at a VC funded startup that burned $3 million for 2,000 users.

I built a side project that I put on Reddit that got 5,000 hits last month.

The second seems like better ROI


I am one of dozens of moderators of the Hardcore Berkshire Hathaway subreddit: https://old.reddit.com/r/brkb/

I put in a little effort each day, but thousands of people benefit. Small work, big impact. Contributing on Reddit is an easy way to have a meaningful effect on the world.


you spent $7.5m just last month?! on a side project!


I’d love to see folks plan to monetize their product from the get go and not as an afterthought.

They should get measurable, direct compensation for the value created for others — be that saved time, joy or something else.

I feel there’s this quasi-apologetic approach to selling software when there should only be respect for those who can create value for others by their own creative and productive ability.


I think my career overall has been pretty high impact - I ran a team that built new systems from the ground up that were used by a team of 2k store employees to run daily operational tasks, optimizing their performance and ux tremendously, as well as building e-commerce into a website used by half a million people a month.

I still feel the most proud of a little library I made one weekend a few years ago [0], that’s now used all over the place. I get issues and contributions from Latin America, China, Japan, across the US and Europe, and Australia. I’ve done consulting work based on this library. It’s a great feeling to know I built something that others find useful directly and isn’t a tangential thing that was built as part of different business.

[0] https://github.com/lukevp/ESC-POS-.NET — check it out if you have a need to print to receipt printers from C#, and give it a star!


This happens in the crypto currency space all the time. I have friends that have launched very thought out projects that they spend a significant amount of time on. Then they’ll launch some meme project and it will do 1000x better. It’s certainly a weird feeling.


As a dev at a large company, I'm wondering how the author went about open sourcing the side project. My employment contract stipulates that anything I write for work is owned by the company. This company wouldn't have any motivation to let me open source the work I do, which in my case does not go into any product.

The reason I ask is that I have written, as part of my day job, a scientific library in C# that doesn't appear to have any public equivalent and I know addresses common tasks in the industry. I would love to open source it, if not for beer money, but for visibility to help my career --- I'm at that point where promotions only happen with externally-visible accomplishments.


Author here! The open sourced code was rewritten from scratch, not least because the original version was in C# while the open source version is in JavaScript. So, the same idea, but an entirely new implementation.

I forget exactly what conversations I had, but it was also very clear that they had no problem with me doing so since it doesn't really have any connection with their core business. If I wanted to, I suspect I could have open sourced the original version so long as I stripped out the stuff that was specific to the company.


> My employment contract stipulates that anything I write for work is owned by the company.

Did you agree on the price of that extra work? If not, I recommend to set price prohibitively high, e.g. $100 per line of code or $1000 per hour of work. If your company really want to own your side project, then they will need to pay the requested price.


The library was done as part of my day job. It was not a side project


At my firm you can request that side projects not be subject to the company’s copyright agreement. The firm’s market is fairly specific, so most requests get approved.


I'm afraid it's difficult to call something written "as part of their day job" a side project.


As a hack, could you use the work as inspiration to create a similar port in another language during off time?


My first side project[0] is almost four years old at this point and continues to get lots of interest and use. It’s been really fun to engage with its users.

My second side project[1] has not got nearly as much traction but also has a much smaller target audience and I haven’t really got fully finished.

I do find my professional work rewarding and valuable but there is definitely something different about the side projects. They feel like much bigger accomplishments.

[0] https://github.com/babybuddy/babybuddy

[1] https://github.com/kcal-app/kcal


These kind of translators are fun. Long ago I wrote a PL/M (Intel proprietary compiler)- to - C convertor. It used context to translate the simple looping constructs of PL/M to the most congenial C loop (for, do, while). It translated the single macro mechanism into either 'const foo=x', simple #define or #define with arguments. It moved declarations into context. What it produced looked like C, not 'C/LM'.

It can be a blast to tinker with these, iterating until the output looks pretty sweet. One of my favorite projects. I can imagine the docx - to - css translation allowed for lots of neat tricks.


I know the feeling.

I've found that for the most part, you can work for money or you can work for impact. Commercial pressures prevent real disruption once a product is well established, and when it isn't, your disruption is corralled to the end of earning market share for your company, so anything disruptive that would go against that is not implemented.

That's why I don't work in software anymore. It may seem weird, but i would rather work a bullshit job. But I do write software, and it is all FOSS, and I pick my projects based on one principle: minimum effort for maximum impact.


I guess I can see why this would be surprising to most programmers. It doesn't surprise me at all. Why would the wishes of any profit-seeking enterprise, who serves a very select clientele, those willing to pay for what the business provides, have anywhere close to the impact of a software project chosen out of a random itch, taken to the point where others actually get interested in it, and use to build their side projects, each of which can provide their own impact?

Unless you're a big techco with worldwide reach, what could compete with that?


Good work!

On the Phenomenon of Bullshit Jobs https://www.strike.coop/bullshit-jobs/


I am banging on about software literacy again, but if the users were more software literate they coukd have written something themselves, and if we lived in a software literate society we would reject inaccessible formats thus making the whole thing easier- same as the ERP system mentioned elsewhere.

We have a long way to go before the code and the data is truly free.


I was fortunate enough to have the opportunity to help hundreds of thousands of refugees in a small way through my day job. It's probably my greatest contribution to the world to make these peoples lives marginally better after everything they went through.

They'll never know who I am but I am so proud to have improved their lives even a little.


One level down. My serious side project (https://vimeo.com/241051006) is arguably less cool than my casual side project (https://vimeo.com/308956882)


Similar experience. I created a little project and it has become very popular. It's also completed so there is no need to develop anything apart from updating any security issues. When I feel down I always think of that little project. Hoping to make another one by accident one day.


Converting Word documents to HTML and fixing layout and formatting issues afterwards is a huge pain of mine. I usually end up pasting content from Word (or more recently, from LibreOffice Writer) to CKEditor, cleaning extra formatting, like fonts and only then moving content to CMS.


Client side document rendering has a lot of potential. There is currently no open source library that can render docx file as nice as mammoth. There are some commercial libraries that rely on WASM, but they are generally bloated and you can’t read their source.


Impressive that he also supports ports to 4 other languages. Usually authors aren't interested in doing ports themselves, but that's often for a more complicated project.


Great example of how fixing a problem that other people have is often much more impactful than fixing a problem that your manager has.


This is why all tools should start as OSS tools


I can relate. My side project (not tiny) has had a much larger impact on the world than anything I ever got paid to do.


This article starts to get at an interesting controversy about the definition of value. Is the value of a project equal to the amount of labor time it saves over previously used methods? Or is it equal to the amount of labor time it took to create the project? I think most software devs would intuitively pick the former, and that is what the article sides with and also what the market awards to innovations in the short term, but I think there is merit to the latter and people should at least consider it. The article presents an apparent contradiction (the author's side project was coded in a few hours and has arguably had more of a positive impact than their entire day job career's output) but that contradiction is resolved by the latter definition of value, the labor theory of value.

The labor theory of value explanation for this is straightforward. In general, LTV asserts that the value output of some work approximates the amount of work that ordinarily has to go into it, or more precisely, of the socially necessary labor time going into that work (ie, the time it would take an average worker to do it without slacking off). This is because if you wanted that work done and didn't care how it got done, the socially necessary labor time would be the real cost of doing it yourself or paying someone else to support themselves while they do it (before various market dynamics and other distorting factors - it is an idealized model). I.e., in an assembly line, the cost of a part is the cost of raw materials + the cost of the labor added to them. This seems straightforward for assembly line work, but is a little less intuitive when the actual work is about making other people's work more efficient, which a lot of software dev falls into. But if someone simply said to themselves "I need the functionality of mammoth.js", the core idea still applies - of being able to replace the worker, hire a generic software dev, and get comparable work (or at least, good enough work), for a similarly low amount of value. Another way to think of it is that mammoth.js might save a lot of people a lot of time, but getting some version of mammoth.js implemented is probably historically inevitable and has a fixed and much smaller cost to actually do.

How does this resolve the contradiction in the article? Well, mwilliamson's day job career labor output might possibly have saved less time of other people's work than mammoth.js. But their day job career labor output probably couldn't have been replaced in any way but by a similarly large amount of time and effort from other developer(s). Meanwhile, mammoth.js could be reimplemented in a similarly small amount of time by someone else, maybe taking a couple of tries to get it right. If mammoth.js hadn't been written at the time it was, maybe that would have happened.

This isn't to discount ingenuity or insight going into this side project, or the usefulness of something like mammoth.js being in the right place and time. But I think it is a more precise way to think about how much value and what kinds are being added to the world by larger or smaller amounts of effort. In other words, devs shouldn't feel bad about having worked hard on stuff that is less neatly labor-saving than a small widget, as long as that hard work turned out to be useful.


As an employee your contribution to the world is just a little more than your wage. Which, since you take your wage home, is just a little.


I believe this is incorrect even from the simple economic perspective.

Many companies (BigTech for example) are extremely net-positive financially. This means that the value they gain per employee is much higher than what they pay them.

Taking this further - the customers in many cases (and certainly in ideal cases) are getting more value than the price they are paying (hence they agree to pay), so in a sense you could argue that the value is actually even larger. This of course scales several times when working on some infrastructure (though the effect is very not obvious).


If you are sitting in a cafe in Holland with a lot of people and someone runs over and says I'll pay you $10,000 to come and stick your finger in a dyke.

And you do.

Did you just save the city and the billions? Is that more meaningful and contributes more economically than someone who uses their rescue skills and saves a drowning stoned university student while walking home alone.


I wonder who owns that code?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: