HN user

KiwiCoder

1,045 karma

hn@4ed.uk

Posts56
Comments127
View on HN
blog.lookfar.com 7y ago

Software Maintenance: Understanding and Estimating Costs

KiwiCoder
1pts0
threadreaderapp.com 7y ago

Stripe's take on software engineer efficiency made me angry

KiwiCoder
94pts14
docs.google.com 9y ago

Software – do you really need custom development?

KiwiCoder
1pts0
docs.google.com 9y ago

Software project guidance for charities

KiwiCoder
1pts0
royal.pingdom.com 9y ago

How the Friday DDoS Attack Affected Pingdom

KiwiCoder
5pts3
socialcoder.org 10y ago

Social Coder Partners with the Association for Computing Machinery

KiwiCoder
2pts0
www.linkedin.com 10y ago

SocialCoder partners with the ACM, volunteers now get ACM membership at no cost

KiwiCoder
1pts0
www.acm.org 10y ago

ACM and SocialCoder Partnership for Positive Impact Through Computing

KiwiCoder
1pts1
tinyletter.com 10y ago

Social Coder Gets a Letter from David Cameron

KiwiCoder
3pts0
tinyletter.com 10y ago

Social Coders in The Gambia

KiwiCoder
1pts0
humanlegion.com 11y ago

The New Ghostwriters of Science Fiction: my first six-month retrospective

KiwiCoder
1pts0
medium.com 11y ago

On gathering requirements

KiwiCoder
2pts3
tweetlo.com 11y ago

Show HN: Weekend project – recent best tweets from your timeline

KiwiCoder
2pts0
socialcoder.org 12y ago

Social Coder has a problem

KiwiCoder
1pts0
github.com 12y ago

Questions to provoke thought and encourage good decision-making

KiwiCoder
1pts0
blog.bitbargain.com 12y ago

Bitbargain (UK) suspends withdrawals

KiwiCoder
2pts1
gareth.halfacree.co.uk 12y ago

Should you buy a more efficient power supply?

KiwiCoder
2pts0
www.scientificamerican.com 12y ago

How the "Global Cooling" Story Came to Be

KiwiCoder
2pts0
cvmountain.com 12y ago

Interviews are not useful for finding good hires

KiwiCoder
2pts0
chrome.google.com 12y ago

Chrome extension to highlight submissions and comments from Hacker News leaders

KiwiCoder
4pts1
cvmountain.com 12y ago

The one reason for doing a code review

KiwiCoder
1pts0
www.infoq.com 12y ago

Try to Leave Silverlight and Flash Soon

KiwiCoder
3pts0
bitbargain.co.uk 12y ago

Bitbargain (UK) "No reason to worry"

KiwiCoder
2pts0
bosscheck.me 12y ago

After a short trial I've just launched bosscheck.me

KiwiCoder
2pts1
cvmountain.com 12y ago

Mock phone interviews trial - results are in

KiwiCoder
2pts0
news.ycombinator.com 12y ago

Ask HN: Validate my idea - mock phone interviews

KiwiCoder
4pts10
cvmountain.com 12y ago

You can book me for a mock phone interview

KiwiCoder
1pts0
news.ycombinator.com 12y ago

Ask HN: Validate my idea - find a mentor to improve your employment chances

KiwiCoder
7pts16
tech-book-store.amazon.com 13y ago

Think Geek to Combat Interview Nerves

KiwiCoder
1pts1
www.perlmonks.org 13y ago

The world is not object oriented (2004)

KiwiCoder
5pts1

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.

Never touched Haskell before, but found that path separators were needed to get this working (on WSL with Ubuntu if it matters)

For example

    -  capsPath <- getFullPath (T.unpack (coerce dir <> coerce videoName <> ".en.vtt"))
    +  capsPath <- getFullPath (T.unpack (coerce dir <> "/" <> coerce videoName <> ".en.vtt"))

Needed to apply the same change in a few places.

Also found

    --sub-langs en
doesn't work if the videos has for example en-CA as the subtitle language.

And finally, youtube-dlc seems to inconveniently discard the VTT file, breaking glancer, unless you specify `-k` to keep the file.

They way this report is framed made me angry.

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.

People only start caring when it's too late, when they themselves get affected.

You might be right but I prefer to be less fatalistic. If an article (like this one) hits close enough to make someone think "it could have been me" then perhaps that is enough.

I don't understand your last sentence.

We need more articles like this, we need a flood, until all the non-technical people in my life take their privacy more seriously than they do at present.

When a volunteer signs up at Social Coder I send them a welcome message.

Here's my confession: I will probably have sent that exact same message to someone else in the past.

At the moment I personally click on the "new message" button, fill out the name, paste in the message, double-check I'm sending it from a socialcoder email address, and then I send it.

This "welcome" process would be trivial to automate and yet I hesitate to do so.

Robots (and scripts) also have a way of blundering into situations that humans would avoid but this isn't why I'm reluctant to automate.

When it comes down to it I don't want to take the human (me) out of the loop. It would feel like I'm duping the recipient who might naturally expect a human connection rather than a recorded message.

If the volume was very much higher I might - apologetically - automate the welcome message. It might not make any difference to the volunteers signing up, but it would make a difference to me.

I don't think your experience is at odds with what I'm saying. There are practical, real-life issues that will always trump the mechanics of product development.

I don't have a green user name but I'm going to ask my question anyway.

It has been said that using a .co TLD for anything other than tech sites should be avoided since non-tech users are prone to mistyping the url with a .com, sending traffic to the exact place the .co site owners hoped to take it from. What's your view on this?