I've built a tool that analyses UK company accounts data to highlight various forms of unfair treatment of workers, such as serious wage decline in spite of soaring profits.
All data sourced from Companies House as xbrl or pdf.
The trickiest part was all the unexpected edge cases I found in the data, but that's also where most of the learning (aka fun) was found. For instance, before starting this project I didn't know that negative turnover was possible, or that accounting periods vary between years and can be 52/53 weeks to make sure they end on a specific day of the week. The more I learned, the more aware of my ignorance in this regard!
Here is a typical example:
> Between 2024 and 2025, workers at this company each lost £4,196 due to a combination of falling pay and price inflation.
(User clicks/taps through if they want details and method)
I've also noticed a high representation of care-home providers appearing in the results. It's something I want to dig into but it's unexplained (to me) for now. Possibly it's related to a higher proportion of workers on zero-hours contracts.
It's also been challenging to present less obvious factors such as nominal and real wages alongside inflation metrics, all intended for a non-technical audience. Consequently I've spent a disproportionate amount of time on the wording for each type of inequality, and I'm still tinkering.
Not ready to share the URL just yet, as the site could easily be abused or the facts taken out of context and used to mislead or unfairly (lol) condemn. It may never be public, but I definitely have an audience in mind.
Ideas for development include
- sector/industry analysis and comparisons
- an inequality leader-board of some kind
- sentiment analysis from director reports
- search and filter
I started programming on Zilog z80 when I was 11 years old, at school in NZ. I'm now 55, and I've been a programmer for all that time. I've worked as contractor, consultant, tech and architecture lead, people manager, independent limited company in the UK, published author. I started a charity. There's more, but you get the idea, I've seen many sides of this programming malarkey.
Like you, at times, I reached a plateau of motivation, and more than once I questioned the meaning of the job I was doing, unsatisfied and listless.
I think if you are at all introspective, reflective, that it's inevitable you go through patches like this.
You've now got plenty of advice from many with experience, I won't add to that pile. Instead, just briefly, a word on my current situation and outlook.
Working for someone else is only rarely going to be broadly fulfilling. Working for yourself can be worse.
So I developed my hobby interests, most involving programming, because I still love it. I still get excited exploring possible solutions to hard problems. It's fulfilling in a way that working for megaCorp can never be. It's the difference between straining to meet a work deadline and straining to win a game. Similar, but different.
In other words, contentment, for me, comes from within.
Voluntarily playing Kd7 on move 5 instead of castling is maybe a human move (like a bong cloud) but at the time it seemed more like a move a stochastic parrot would make.
Stripe, first of all, your report misrepresents software development reality.
You present software maintenance as a massive waste of time and money. But that’s just not true. Maintenance is how software stays relevant.
Laws and regulations change, technology platforms change, features rise and fall in importance, the users themselves change over time. There are endless justifications for ongoing software maintenance.
For as long as software serves a useful purpose, it will need maintenance.
Yet you present maintenance as somehow bad, when in reality maintenance is the natural consequence and an essential aspect of software development, and it has always been so.
You’re also pandering to an ignorant attitude that believes software can be written free from bugs and perfectly formed from the outset. Thus all it takes, thinks the ignorant executive, is for my coders to be better than they are.
You highlight the cost of “bad code”.
You don’t provide a definition of bad code, so here’s mine:
Bad code is code that is hard to understand and/or hard to modify without breaking things and introducing errors.
If you know software developers, you know we are, on the whole, vocal and assertive about the avoidance and elimination of bad code. Look at what we talk about at conferences, in blog posts, and on twitter.
Writing and learning about good code is a consuming passion for many developers. Search for “clean code” to see countless examples.
How do we avoid writing bad code in the first place? That is a billion-dollar question (or $85bn as you say).
Everyone without exception agrees we should not write bad code, yet bad code persists.
Bad code is a function of ambiguous requirements, unreasonable deadlines, lack of training and support, lack of a proper testing regime, lack of appropriate project sponsorship, internal politics, lack of funding, and so on.
Yes, some engineers will at times be lazy, thoughtless, short-sighted. Just like their managers. Just like their manager's manager.
But in the round, bad code exists primarily because of human, social, and political problems we all share.
And then consider how we eliminate bad code. We do that with maintenance of the code, Stripe, this is the very thing your report damns as waste.
To maintain software, we refactor, we add tests, we discuss and debate, we tease apart and reconstruct. To the software developer, maintenance is normal and expected. It’s part of the job. You build it, then you support and maintain it.
The reason I’m so hot about this is that I know (from watching it happen again and again) how many executive level managers will interpret your report. They will think it’s because their programmers are lazy, feckless, indolent, and narcissistic.
It’s cognitively and politically much easier to blame bad code on an engineer’s attitude than the ecosystem in which they work.
And these executive level managers will vent their frustration on those same engineers and look for quick wins like off-shoring.
"If we’re going to suffer from bad code, at least let’s get it cheaply."
Or the exec might crank up their attitude of command-and-control to bring those apparently miscreant coders to order. Misery for the coder, and never works out well.
Stripe, your report does not help us get better. You’re throwing fuel on the fire.
(Originally posted most of this Twitter, wanted it here to increase the chance of someone relevant at Stripe seeing it)
I will join the chorus - wkhtmltopdf has been working fine in production for many months, reliably producing thousands of 10+ page PDFs with cover pages, headers, footers, page numbering, and images. Sure, it takes bit of fiddling to get it working as you like the first time - as most non trivial things do - but I've no regrets and would recommend it.
I do a lot of recruiting, for both paid and volunteer coding roles. I've been hiring for about 13 years, and I've been coding professionally for about 25 years. Before that I coded as a hobby, from about age 11.
Speaking from this experience, and as someone who reviews on average 20-50 coder profiles a week, the public commit history of a coder is almost never a significant factor. I don't see any trends that indicate this is changing, either.
The vast majority just don't have much to show, having spent their years working behind walls on closed software.
Instead of relying on a public portfolio that in most cases won't exist, I rely on talking to these people directly, programmer to programmer. If we can code together, on the actual code they would be working on, that's about as good as it gets.
In other words, I rely on my experience as a coder to help make what are, ultimately, subjective judgement calls.
This article frames the question rhetorically. Of course we should not disadvantage gifted children by depriving them of tailored learning strategies etc. Why on earth would we even consider it?
But it's not so easy to define what this means in practice, particularly in the UK where the debate over selective schooling is bound up with issues related to class and wealth.
I believe LinkedIn may have already reached its maximum potential and is on a downward trend.
Of course I'm speaking only from personal experience, but as both candidate and hiring manager LinkedIn holds next to no value for me. I see it as a commons that has been largely ruined by recruiting agents who are incentivised by their employers to maximise candidate throughput at everyone else's expense.
There is some residual value in LinkedIn groups, where peers can network for mutual benefit, but these pools of genuine interaction inevitably attract recruiting agents - if indeed they aren't already present as groups admins, happily lurking while candidates posture and parade.
But I'm not about to close my account (if that is even possible). I'm very fond of the growing number of endorsements I've received for Sarcasm and Bubbles.
> after contacting Microsoft and AT&T to get my IP removed from their block lists
Yikes.
Isn't this exactly the problem with running your own email setup? And have you not found that keeping on the white side of mail server lists is a constant and moving target?
May I ask, do you send a lot of mail and have multiple accounts? (I do, so this overhead would be impossible for me to manage personally)
I used K-9 for many months and it was just OK. The FastMail app was not a huge improvement (over K-9) but it was still an improvement, at least in my experience. From memory K-9 didn't handle multiple "send-from" accounts as competently as the FastMail app, and there were other quirks that became more irritating over time.
Not OP, but I moved all of my email from free Gmail to paid Fastmail about 2 years ago, and I've not had a moment of regret.
I send quite a lot of email for work and other things and I have what I think is a higher-than-average number of email addresses to manage.
One adjustment I made - I now archive older emails to avoid extra storage costs, which in turn means that searching for older emails is slightly more hassle.
Fastmail's web interface and mobile app are not quite as slick (as gmail) but this isn't a big deal for me personally.
All data sourced from Companies House as xbrl or pdf.
The trickiest part was all the unexpected edge cases I found in the data, but that's also where most of the learning (aka fun) was found. For instance, before starting this project I didn't know that negative turnover was possible, or that accounting periods vary between years and can be 52/53 weeks to make sure they end on a specific day of the week. The more I learned, the more aware of my ignorance in this regard!
Here is a typical example:
> Between 2024 and 2025, workers at this company each lost £4,196 due to a combination of falling pay and price inflation.
(User clicks/taps through if they want details and method)
I've also noticed a high representation of care-home providers appearing in the results. It's something I want to dig into but it's unexplained (to me) for now. Possibly it's related to a higher proportion of workers on zero-hours contracts.
It's also been challenging to present less obvious factors such as nominal and real wages alongside inflation metrics, all intended for a non-technical audience. Consequently I've spent a disproportionate amount of time on the wording for each type of inequality, and I'm still tinkering.
Not ready to share the URL just yet, as the site could easily be abused or the facts taken out of context and used to mislead or unfairly (lol) condemn. It may never be public, but I definitely have an audience in mind.
Ideas for development include - sector/industry analysis and comparisons - an inequality leader-board of some kind - sentiment analysis from director reports - search and filter