Hacker Newsnew | past | comments | ask | show | jobs | submit | dust-jacket's commentslogin

Not having a bug bounty or dedicated email address does not make it OK to go public immediately

Discovering a bug that could put people's lives and/or freedom at risk if they don't do something about it makes it okay to go public immediately. That said, by all means notify the maintainer/vendor as well.

It should always be assumed that someone else (if not several someone elses) have already discovered the same flaw and are currently taking advantage of it while users remain totally unaware of their actual risk. By going public immediately, you give as many of those users as possible a chance to protect themselves.

Waiting to disclose something harmful when the users in danger could otherwise take steps to make themselves safe would be like not warning people entering a building not to go in because of a gas leak until after you've contacted the building owner and the fire department has shown up.


> Expecting people to hold off on disclosure of something harmful

That's not what they said though. They said "please consider notifying the maintainer/vendor before publishing your findings, even if you intend to publish right away" (emphasis mine)


I do think hitting "send" on the email to the responsible party immediately before publishing (or at least notifying them as quickly as you can afterwards) is a smart thing to do. I mean, why wouldn't you? My concern was more about the "Not having a bug bounty or dedicated email address does not make it OK to go public immediately" comment. It can sometimes be difficult to track down the right person to notify and so when the risks to people are high enough whichever one you can accomplish the soonest is probably where I'd start.

Depending on the severity of the issue. Emailing support with a draft of the blog post and waiting even a couple of hours for a response so they can fix it first would have been more responsible than dropping the blog post to the whole wide world and catching Mullvad with their pants down.

Why wait for a couple of hours for a response while people who could protect themselves are getting harmed? It's especially true when you don't know if the maintainer/vendor will get back to you at all, or if they even check their mailboxes regularly.

The priority should be on protecting users, and not helping the company responsible for the vulnerability save face, or give them extra time to spin up their PR team, or get a head start on a patch.

When the risk to users is low, or when there's really nothing users can do to protect themselves anyway I'd agree with you. In a case like this where the risk to users can be extremely high, and the moment they are made aware of the problem there are steps the user can take to eliminate that risk, the safety of those users should outweigh inconvenience to the people responsible for the vulnerability


The problem is how do you notify users? What are the chances that a Mullvad user is going to happen across this blog post? Of the entire world of Mullvad users, somewhere between 0 and 100% of their users is going to read it and be in a place to do anything about it. If I were to make up a number though, I'd guess it's somewhere between 1 and 10% of Mullvad users. On the other hand, by telling Mullvad first, so Mullvad can fix their system first, closer to 100% of Mullvad users get the fix before attackers figure out the issue.

Mullvad fucked up. They should been as inconvenienced as thru possibly could be too fix the problem promptly! The issue is irresponsible disclosure hurts more users than it helps.


> What are the chances that a Mullvad user is going to happen across this blog post?

It's not as if the odds of new would-be exploiters seeing it are any better. It helps that the people who are at the most risk tend to have their ear to the ground already because they know what's at stake.

When the risks are this high you have to assume that it's already being actively exploited. That means that already there are more attackers who know about the vulnerability than there are users who know about the mitigation.

All you can do at that point is let as many users as possible know how to protect themselves while Mullvad figures out how to fix the issue on their end, writes and puts out the update, and the remaining users get around to updating their systems. You can't save everyone, but hopefully you at least gave some people the chance to save themselves.


Oh yeah fair enough

> Discovering a bug that could put people's lives and/or freedom at risk if they don't do something about it makes it okay to go public immediately

The flipside of course is ... does your disclosure increase the risk?

> aiting to disclose something harmful when the users in danger could otherwise take steps to make themselves safe would be like not warning people entering a building not to go in because of a gas leak until after you've contacted the building owner and the fire department has shown up

I don't think it's like this at all. The risk of a gas leak is not increased by telling people about it and can't be prevented after its occurred. To stretch your analogy, I'd say its more like you've found the gas leak and instead of turning off the gas supply are instead running around outside the building shouting about how there's a gas leak.


> The flipside of course is ... does your disclosure increase the risk?

When you've got that much on the line you have to assume that the risk is already present for all users. It's true that there's always a chance that some users won't find your disclosure in time and additional would-be attackers who weren't aware of it already will start taking advantage of the flaw, but the alternative is that no users are safe.

> The risk of a gas leak is not increased by telling people about it and can't be prevented after its occurred.

It's true that warning people not to enter wouldn't make the gas more dangerous, but it limits the death count of the impending explosion. It keeps at least some people from entering the building and walking into a death trap.

There's no way to shut off the gas supply when you can't control what's already running on user's devices and more users are downloading and installing the buggy code all the time. It's really not a perfect analogy. The point is that immediate action will save some people, while waiting around means that nobody has a chance of being saved.


Yes it does actually.

I don't feel like its hard to come up with examples where (I would say) its ethically wrong to disclose immediately. If you spotted a company's mistake that might endanger their user's lives or safety, would you put those users at risk simply because there was no obvious financial reward?

If so, I guess we just have different opinions on the ethics involved here.


If you are talking about some open source project then I would fully agree.

But when it comes to money making corporations then personally I dont agree that revealing flaws in their product comes into ethics at all.

A companies paid product is flawed, their own paid engineers didnt figure that out, why should I do it for free becasue 'ethics'?

This is the entire reason bug bounty programs exist in the first place.


You seem to have a very bright line between the acceptable behavior for “no money involved” and “money involved”.

For me, it’s more subtle than that.

Everybody (“almost all software”) has exploitable bugs. Are you a fool for not finding the ones in yours? Maybe. Sometimes.

There is a huge difference between Project Zero finding a trivial vulnerability almost identical to one reported months earlier (close to negligence) and Mullvad having the CEO personally posting a response here in a very calm tone.


> Are you a fool for not finding the ones in yours?

If I have a company which sells a paid product, and my paid engineers do not find bugs then I absolutely do not expect the public to willfully and freely make my product better for me. This is why I would have a bug bounty program as an incentive for the public to help me makle my product better and more secure, like any other company serious about finding security bugs.

If I didnt have a bug bounty program and found out that some black hats were selling backdoors to my system online, I would consider that fully my fault for not incentivizing those hackers against doing so.


if they don't think it's OK, then they should have a bug bounty program.

why are companies so entitled to get free security research/audits?


Having spent time working in UK healthcare tech, I never understood why everyone was lining up to throw buckets of money at Palantir. Quite apart from being obviously evil and so on, none of their solutions were actually very good.

Unfortunately, it's hard to escape the feeling that friends in high places, some lobbying and some er... reciprocal back scratching might have been instrumental.

See also senior staff at NHS England (or Digitial? can't remember) handing massive NHS compute contracts to AWS, and then leaving the civil service to become... an AWS employee.


I say this as somebody who has worked vendor side in UK public sector for a number of years.

It's policy. It's official Whitehall policy.

As a department you can't hire programmers at £100k/year, because that pushes them way, way higher than civil service bands allow. But you can pay a "Systems Integrator" - a consultancy like Cap Gemini, Deloitte, Fujitsu - £600/day for the same programmer in the same seat. So, £100k/year = bad, £120k/year via an external consultancy = good.

Then we get into actually building and owning tech. Look at the history of GDS - they were empowered to pay half decent salaries and build and own things, but then had budgets slashed and programs cut. Why? Because we can "just buy it". Yes, you won't own the IP, it'll cost 4x as much, it'll take 3x-5x longer, but at least you won't have "inefficient civil service bloat" to have to manage.

This all started in the 1980s, and there are signs of it swinging back. I was at one department last year where they were telling me they're thinking about hiring actual engineers and embedding some devops stuff internally - absolutely jaw-droopingly revolutionary. Genuinely.


> So, £100k/year = bad, £120k/year via an external consultancy = good.

Ding ding ding. This is all driven by ideological mistrust of the public sector, as you've pointed out and people are even defending in the comments.


It’s not “ideological mistrust of the public sector.” It’s that government jobs aren’t subject to market forces so you need some sort of external controls, like pay scales.

FDR, who can hardly be accused of distrusting the public sector, emphasized the importance of public control over government sector salaries: https://www.fdrlibrary.org/unions


Consultancies don’t appear to be subject to market forces either, judging by their complete dearth of talent and expertise.

In other words, “rent seeking”.

The only protection against pilfering of the public coffers appears to be strong cultural opposition to it, so exactly the opposite of what’s happening in the US, for example.


People in the US are told what to think by their phones. They're being told to view theft of public everything as a good.

It is insanity to watch.


this is absolutely true. I can spin up a government consultancy and get inside the system so that I can low bid contracts, get extensions and not provide any meaningful service at all, that's a comfortable parasitic life. I worked in the US Dod and there was no meaningful quality difference between the 2x salary contractors with their additional 2x overhead than the lifers.

we can bemoan that the government isn't being efficient, but involving people with even less oversight whose only goal is to extract as much from the public coffer as possible is not a magic bullet that gets the public more for their money.


> It’s that government jobs aren’t subject to market forces so you need some sort of external controls,

has the inbuilt assumption that 'market forces' are the only appropriate form of external control.

which is homeomorphic to "ideological mistrust of the public sector".


Market forces aren’t the only appropriate form of external control. That’s why we have pay scales for government workers legislated by Congress. But OP said that’s driven by ideological mistrust of the government too.

And your second point is wrong too. See Scandinavia for places that both have a deep trust in the public sector and also deeply believe in markets and market forces.


> It’s that government jobs aren’t subject to market forces so you need some sort of external controls, like pay scales.

They are subject to the same market forces though. It's this exact thing that's killing government competency; the pay scales are set lower for a role in the government than at other corporations so qualified candidates do not apply to the government.

Ex. Google's annual revenue is ~400 B and it's CEO makes ~200 M/yr while USA's annual reveune is ~5,000 B and Trump makes ~0.4 M/yr.

Ex. Google's board members make ~500 k/yr while congress critters make < 150 k/yr

But also the GS-15 caps out around 200k which means that the best you're going to make in the USG is worse than an entry level employee at Google.


They absolutely are subject to market forces — the labour market.

Try hiring 100 software developers at civil service rates. You’ll get maybe 10 very talented people who are in it for “the mission” or for other ideological reasons, and about 90 who would be unemployable anywhere else.

And that’s after you’ve already excluded 95% of the market with citizenship and location requirements, suitability to hold a security clearance etc.


> As a department you can't hire programmers at £100k/year, because that pushes them way, way higher than civil service bands allow

And as if there isn't a middle-way here to have short-term contractors _not_ from large consultancies.

Or rethinking approaches, and doing such work via OSS, and paying maintainers to keep code up to date, which France has been doing iirc.


And this mistrust is deliberately sewn by right-wing politicians and media figures who are directly funded by government contractors.

I worked in the federal government once. Unfortunately, it really is that bad. They took weeks-month just to provision me a laptop.

That happens at literally every company I contract with (that requires I use their equipment). At my current gig I couldn't start until they had a laptop for me, and then it took another month to access to the code. Every year they auto delete contractor credentials, unless the director in charge of your contract says no. One year he missed the email and I found myself without access to the code for days while I was reinstated. Only I wasn't completely reinstated, I had been deleted from one of their systems, so I couldn't log into some systems for multiple weeks, until I got a new PKIM card, since a new card was the only way to add credentials to the right system.

So please, it's never been accurate to say the government is mismanaged while corporations aren't. The same things happens in bureaucracies of similar size.


I work in a bureaucracy of similar size and could never imagine something like that happening where I work.

Corporations might be mismanaged, but ultimately they have a variety of price signals they must be responsive to or die. No such thing among the feds and it shows.


> £100k/year = bad, £120k/year via an external consultancy = good

actually kind of makes sense. The £600 a day is as long as you need it and can be stopped when you don't. A £100k government employee basically has a guaranteed job for life and gold plated pension.


> The £600 a day is as long as you need it and can be stopped when you don't.

Sure. Because the government only needs a finite amount of software, and once it's written its more efficient to drop the people who wrote it.

> a guaranteed job for life

so the person will have to deal with all of their shit if they wrote crappy stuff. Obviously not the incentives we want.

> and gold plated pension.

because who wants people to be able to actually retire? Isn't it better to keep them working as greeters at Walmart?


Thing is, if you are a good developer/architect, you have lots of options to make this elsewhere. £100k is not a very high salary in London.

Most of the GDS crowd (who were good), left to go elsewhere due to boredom/frustration.

The cost of not having good staff is very high to government. DEFRA were recently hiring senior enterprise architects on £70k. They could burn a lot of money (millions) on poor technical decision making but somehow saving 30-50k is the priority.


£100k per year means their boss gets the blame if things go wrong. £120k means you get to blame the contractor. It's an accountability sink.

> A £100k government employee basically has a guaranteed job for life and gold plated pension.

Sounds like we really need to rethink this massive perk about government jobs. Having a class of people with guaranteed employed for life with no accountability on performance or value they add, always seemed absolutely insane to me.


I'm pretty sure they're "employed for life" because otherwise every new administration would replace as many people as possible.

Can you picture a company replacing 90% of their workforce every 4 or 8 years, all at once? Because that's what I think would happen if government employees could be fired as easily.


It is somewhat an exaggeration. The civil service and quangocracy can make redundancies if they really try.

Just wandering in to this as a relative political bystander, but as I look at the polling out of the UK [0] I see that the party currently leading is some group called "REF" and I gather they did pretty well in the latest round of elections. I assume they're an old-established party who represent the deep contentment the British have with how the public service has been run.

I suppose they do seem a little unpopular, they aren't breaking 30% but they seem relatively popular compared to the more fringe groups like, say, LAB and CON. Have they, in what I assume is decades of stable political governance, made any mistakes that might have engendered this ideological distrust in how well the political system is managed?

[0] https://en.wikipedia.org/wiki/Opinion_polling_for_the_next_U...


While you've clearly mastered the tone of supercilious sarcasm that is the mainstay of British politics, I should point out to the audience that the Farage party is entirely the billionaire and foreign propaganda party, which is why they are successful.

See eg https://www.bbc.co.uk/news/articles/c072prlxlddo

Meanwhile, at least eight of their councilors elected last week have quit already due to comedy levels of misconduct. https://www.markpack.org.uk/176783/how-many-councillors-has-...


So, in a moment of clarification, your official position on this one is going to be that the 2 majors are at high risk of being knocked into 3rd/4th place by the greens, and this isn't a reflection on their failures of governance over the decades?

I'm not actually sure what you're proposing you think the major reasons are, since that article is just a reminder that people with money have noticed what a disaster the EU is too, not just average voters.

> While you've clearly mastered the tone of supercilious sarcasm that is the mainstay of British politics...

I will admit a feeling of loss that I couldn't work in "unstained escutcheon" but that would be too obscure a reference. I doubt Rees-Mogg would have baulked.

> Meanwhile, at least eight of their councilors elected last week have quit already due to comedy levels of misconduct.

And a supplementary question - do you feel this is "ideological mistrust of the public sector" coming through? Or is it something else when you do it?


Reform are the new Trump like, kick the immigrants out party. I don't know if they'd achieve the operational excellence that Trump and DOGE have.

In Estonia this was solved by moving all the IT related people to organisations adjacent to the ministries and departments, so the lower paid civil servants wont have to be compared to the highly paid software developers and architects, etc. One colleague used to work as and architect of the justice ministry. He said the suit wearing civil servants with law degrees were pissed off at the homeless looking sweatshirt wearing software developers who were much higher paid. So the IT stuff was moved to another new department, but it still answers to the minister.

Similar stuff with other ministries. Interior ministry has their own it department, where they develop and maintain the population registry, criminal registries, and stuff that requires a security clearance


I’m not sure I buy that. That doesn’t explain what happens when the ministers budget gets slashed and as government policy there’s a push to outsource. It requires consistent commitment at a cultural level across governments. It works in Estonia because Estonia is a small enough country that there’s just no financial incentive for lobbying and it’s let to do its own thing.

This seems like a very practical solution lol.

I remember chatting with the then-mayor of Cambridge, UK about this.

Specifically, he bemoaned how well-intentioned anti-corruption measures meant that if they wanted to lean on a startup, it was practically impossible to do so. The risk that had been mitigated was that of someone like him giving money to his family or friends – which is an understandable risk to try to mitigate! But the net effect of that was that IBM got all the contracts at a wildly higher cost and with no ability to lean on small business.


That happens at all large organisations. I worked at a large oil company and if our contracts with a vendor represented (or would have represented) more than a certain % (i forget what) of that vendors business, they didn't get the contract. As well as having vendors more likely to stay in existence, it stops the org being "morally responsible" for keeping them afloat.

I recently joined a civil service organisation as a software developer. The organisation is currently going through an intense hiring process to replace the army of contractors they've had for years. This has been made possible by applying a 'market uplift' to the usual civil service salary bands to make the roles competitive in the tech industry. It seems to be going pretty well, although the organisation was already quite tech focused and has a well established engineering culture. Hopefully it will be seen as a success and replicated by other departments as seems like the sensible way to get stuff done to me.

I contracted for ICL around the time it was acquired by Fujitsu, working opposite the Post Office developers, some of whom were still learning C++ as they went.

I later worked at the Department of Health during the Blair-era restructuring, when management layers multiplied, Trust structures became increasingly fragmented, and PFI debt created long-term financial drag. I also encountered someone trying to sell internal documents, which says plenty about the governance culture at the time.

Then I saw the BBC go through outsourcing to Fujitsu, with assets sold off and then effectively contracted back.

Across utilities, government, healthcare and broadcasting, the pattern has been depressingly consistent: short-term accounting savings, long-term operational debt, and layers of complexity presented as reform. Problems are rarely solved. They are moved around, rebranded, outsourced, and made to look resolved until the next team inherits the consequences.

Capgemini, Fujitsu and the usual suspects do well out of it. The public sector gets another five-year spreadsheet win, while the real-world cost lands years later with someone else.

All rather depressing when you see it first hand and many stories I dare not tell, from Ministers and their `shadows`(what their assistants called), upper goverment stories and even from infosec days involving banks and financial intertutions and how links that should never be there were found. Networks connected by undocumented lines and other things that just make you go WTF at levels of disbelief, even No.10 dealings that again, best left unspoken.

Just a system that focuses on being seen to care, over actually careing and if you do care, you are either broken or scared for life.

Oh well, be another decade or two to unpick the debt bombing this time around and those that cause it, never held to account as seagull managment is now the norm in many walks of life along with doing little waiting for pensions with pension surfing. This that care, die, those who don't get promoted on lies.

I will write a book to be published when i'm gone(soon) and just not care then, until then, I care, just wished those with power actually did.


The problem is that the civil service is inefficient and will bloat, because the only pressure on it to not is the individual good practice of leaders. There's no competitive/market pressure on it to naturally cap spending based on value.

I agree that GDS is a good thing, and I interviewed with them a few years ago and was impressed, but there is always the risk of bloat. I wish this could be fixed. I have some ideas about a similar concept in the NHS that would require the government hiring well-paid software engineers.


> there is always the risk of bloat

The fantasy lies in ignoring the same risk when it's happening in a private sector contractor, doing the same job for objectively much higher costs.


I agree, but also a civil servant has incredible pension opportunities, and defined benefit as well, and is hard to remove if they turn out to be bad. A contractor is a fixed cost, and individuals can be rejected with far less ceremony and cost.

If the civil service could shape its workforce with individualised salaries and quicker removal due to low performance I suspect it'd be a different story. I agree that consultancies and contractors are not cheap, but they are not the root cause.


Correct, the main reason why private sector is used is nothing to do with salary.

Productivity hasn't increased in the public sector since 1997 due to massive overhiring and bloat, salaries are probably 20-30% higher than they should be based upon on productivity. And the main cost, which isn't factored into the above tired lobbying arguments you read from "sources" in the Guardian, is pensions. Public-sector pensions will rise to 10% of all public spending in the near future.

This is all by intent by the way, the primary issue is that existing employees have impossibly good conditions and it is effectively impossible to reform the system in any way. So you have these people are massively overpaid by any measure screeching about private sector hiring...okay, alternative: 20-30% of workforce are sacked, pensions converted to private scheme with 2% employer contribution, stack rank every year until public sector productivity equals private sector productivity.


> Productivity hasn't increased in the public sector since 1997

Hmm, in the US the size of the civil service was roughly constant over 20 years, while the population it served grew enormously as well as the amount of service it was supposed to provide.


This isn't the US. Public sector productivity output (in the UK) is measured, it isn't a speculation based upon the population.

> The problem is that the civil service is inefficient and will bloat, because the only pressure on it to not is the individual good practice of leaders.

repeated like a mantra.

As if megacorps somehow don't have inefficiencies. And how do we even measure efficiency?


Yes Minister has something about this, I seem to remember. Because the government isn't profit motivated, they are instead motivated by the size of their budget and the number of employees.

What you wrote has nothing to do with what the parent wrote.

>There's no competitive/market pressure on it to naturally cap spending based on value.

The parent is specifically claiming gov jobs don't allow for near market rates. That number would literally be formulated by current market pressures. If that goes lower in the private sector it will go lower in the gov sector.

For your point to be correct with respect to their specific example, you would have to claim the gov could pay £300k/year when the going market rate was £100k/year and there would be no pressure to prevent this. Whereas all it would take would be someone to ask why a run-of-the-mill programmer is getting paid 3x the market rate?


That part was referring to the air-quotes here:

> but at least you won't have "inefficient civil service bloat" to have to manage.


Right, but you simply stated but haven't explained why bloat is inevitable in the government except to say there is no market pressure applied in government. Whereas the parent is literally talking about employing people using market rates, an example based on market pressure.

> you simply stated but haven't explained why bloat is inevitable in the government except to say there is no market pressure applied in government. Whereas the parent is literally talking about employing people using market rates, an example based on market pressure.

The market pressure I'm referring to isn't on salaries, it's on departments. If a department gets the same budget next year because it managed to spend it all this year - a universal truth in UK public sector then departments only ever grow.


Don't companies also always grow?

No, many of them fold, and even those that don't close departments and make redundancies. Companies can only grow if they're serving their customers with value, or if someone believes that they will do in future and puts money in for a bit to get them started.

If they get things wrong by overspending or overinvesting in the wrong thing, they don't have a wellspring of tax money to keep drawing from. They have to offer enough value to not only supply the good and make a profit, but also pay taxes on that profit.


As soon as you raise the pay scales to allow programmers to get paid market rates, the people whose jobs don’t command that kind of money in the market will exploit the new pay scales. In the private sector, the underwater basket weaving majors hate how much more programmers make. In the government, they’ll have the power to actually equalize that pay at the taxpayer’s expense.

That seems entirely logical if you:

* need the ability to stop paying the person

* have a duty-cycle lower than 83% on the contractor over the next 10 years

Paying a premium for flexibility is pretty standard business practice. I suppose I’m somewhat surprised the gap is merely 20%. With the triple-lock etc. in place I think that’s a screaming deal and I would take on as many substitutions as possible.


Remember hearing about Albania during the Cold War.

They turned away from the Soviets because the Soviets only wanted them to be an agricultural nation, and wouldn't allow them to develop their own industry.

When the powers that be refuse to invest in themselves and demand that external providers must be used, it does make you wonder...


> £100k/year = bad, £120k/year

Just keep in mind that if you pay someone a salary of £100k, your expense for that employee is actually much higher. So £120k would be less expensive and you also don’t take on thr risk and cost of developing a system (you’re getting “off the shelf”).


Hopefully it goes without saying but the person you're responding to was just giving an example. The contractor vs. permanent employee pay gap absurdity they're highlighting in government contracting is often much more profound than 20%. 100% higher pay for contractors doing the equivalent work in the US isn't uncommon.

Pay yes, but not cost.

That’s just delusional.

Why do you say that? The cost to a company for an employee ranges anywhere from 120% to 200% of the compensation paid to the employee.

You can also (generally) turn off the taps of the cost of the £120k/year incredibly quickly.

By comparison it is much harder (and also much more likely to generate negative newspaper headlines) to make 500 people redundant.


Although the Government (and local Government) can employ 'heads' at market rate. It's just the rank-and-file that have banded salaries.

When you realise that any Government is ultimately a business, it's revenue is mostly tax, and its costs, are like any other business - salaries, then crappy salaries for Government employees makes more sense.

> So, £100k/year = bad, £120k/year via an external consultancy = good.

There's also the (implicit) argument that the (UK) Government is also not having to pay up a (Civil Service) pension scheme, private health (!!), and the consultancy is picking that up, so that's also 'good'.


Im in government elsewhere, and the same problems prevail. Fortunately my department had the executive foresight and skill to build a group internally who could provide digital architecture, engineering, development, security, and run projects. There is still a contractor base, but its only about 20% of the head count.

> This all started in the 1980s

It did, I'd argue the first (and in a sense final) nail in the coffin was the Electricity Act (1989).


Yes, it's the fairy tale from the 1980s that if you privatize a public service it magically becomes "efficient" and cheaper. Those who believe this BS must be really bad at arithmetic.

The revolving door as it's known. That's part of it. Another is simply the lack of in-house talent, largely due to poor pay and conditions. It's a self-fulfilling prophecy to a certain extent. I'd love to work for NHS digital and make a difference, but all the interesting work is contracted out, so they can't keep the staff who are capable of building themselves. Also the recruitment process is terrible.

Take a look at this job posting for example: https://www.jobs.nhs.uk/candidate/jobadvert/C9175-26-0093 .

The role is more aligned with IT/Data as obvious by the fact that the main skill requirement is SQL.


Look at the salary on offer. This is for a dev/data job in Cambridge. The market rate for a senior developer here was around that level in the early 2000s. Today that would be a big pay cut for almost anyone with even the "essential" skills and experience.

The British government and public sector are constantly limiting themselves by being unwilling to pay market rates for the skills they need. Then they contract out needs like tech to work around the bureaucracy - but they demand so many strings attached that the little guys who are more cost effective don't want anything to do with it. And so they mostly outsource to large firms or sometimes specialist agencies who have jumped through the hoops to get all the right certifications. Naturally those suppliers are in a position to charge premium rates even for relatively simple work.

If the Civil Service built up a capable IT function staffed by properly qualified and experienced people that would surely save billions in budget and years in timescales for some of the (in)famous government IT projects and probably significantly increase the odds of successfully delivering something usable at the end of them. But as anyone who's working in our Civil Service can tell you the emphasis on ranks and pay scales and other very specific rules about career advancement are unlikely to go anywhere any time soon. Even if they did the culture of people moving around the Civil Service like interchangeable parts instead of building up deep expertise in specific areas would still be a problem.


The salary isn't that out of line for a mid-level developer nationwide, but yes I would expect it to be higher for the southern location. They could justify the salary if it was fully remote.

Bear in mind there is a 23.7% pension contribution from the employer, so it's a roughly £62-70k total comp for a mid-level role.

Edit: Actually though, in reality I would expect a salary bump to work in the public sector to encourage one to put up with the terrible working enviornment with all the bureaucracy.


As someone who has recently joined the civil service as a software developer I have to say the working environment in the organisation I joined is pretty great. Salary is not high, but pension, holidays, working hours and flexibility are all very good.

Yes I would agree with regards to those elements of the working environment.

The pension contribution is excellent, but it doesn't help you buy a house. It would be better to offer higher salary, which the employee can still choose to pump into the pension, for flexibility.

Well, a higher pension contribution means you don't have to save as much of your take home pay for when you get old, allowing you to spend more of what you earn theoretically, but I get your point yes.

The reason they can't offer the higher salary instead is government pensions are un-funded usually, hence their 20-30% contribution is actually just a commitment to pay you much much later, they don't actually put anything into a protected pot for you.


Yeah having worked _with_ NHSDigital quite a lot over the years, I would not love to work there!

That said, I don't think there's that much wrong with that job description - I've been a software dev/eng for 15yrs and every role has had SQL at its centre. And its much easier to get someone new up to speed on some swanky new UI or scripting tool than it is with SQL IME, so prioritising people who are comfortable with the hard bits sounds fine to me.

No, wait, I've read it a bit more closely. It's all about Data warehousing. OK yeah, that's a data job.


One of the more confusing things is the branding. That job posting isn't for NHS England. Or NHS Digital, which doesn't exist any more.

Yeh, the structure is very very very confusing. Largely because you have the Hospital's themselves, then the trusts, then NHS England, or I guess now just the DHSC? And then occasionally even more layers in-between like health boards.

NHSE isn't merged into DHSC yet. Nobody knows what that's going to look like, or when we're going to know. There's every chance the new health secretary will have different ideas.

That and the fact that they rip it up and shake it all about every few years just to seem like they're doing something different.

The internal organisation and management of the NHS is horrible.

It is horrible to work for them and in fact in consulting as soon as you hear that the project is for the NHS people run and hide not to be assigned.


There was an article in the FT back in March [1] with the headline "NHS official pushed to add patient data to Palantir platform while also advising company".

Amusingly, the person concerned has the surname "Swindells"...

[1] https://www.ft.com/content/6c548670-0f3e-45f1-ba08-8bb6dd152...


They’ve built a platform and sales pipeline optimized for selling data consulting into highly bureaucratic tech hostile orgs with data privacy concerns. All these factors apply equally to public health programs and the military, so it’s no surprise that they see success in both areas.

> and then leaving the civil service to become... an AWS employee.

Today in things that the press isn't legally allowed to describe as corrupt but would probably reach the intuitive threshold for corruption for most people who this is explained to.


> Unfortunately, it's hard to escape the feeling that friends in high places, some lobbying and some er... reciprocal back scratching might have been instrumental.

I get the same feeling every time I see oracle chosen for anything.


> why everyone was lining up to throw buckets of money at Palantir

Because where they are in their career at that point isn't the endgame and being the person that does the deal and throws the money around is how you get the board position where you broker those deals with governments, the NGO think tank position, essentially all the actually high paying roles.


Not sure if you have actually used Foundry, but I consider it insanely powerful and well built.

> never understood why everyone was lining up to throw buckets of money at Palantir.

Same reason the US political system is falling apart - buyable businessmen eh I mean politicians in power. „Lobbying“


It’s the same as any enterprise software: it looks good to the higher-ups that hold the purchasing authority, but they never have to actually use it.

you're just pointing out elite capture & corruption that tends to be pervasive in the UK.

when I was in the UK my landlord was a politician. his peers are politicians.

an inflated contract gets given out to a private company - no one complains. yet to give people working in councils, civic sector decent | market rate salaries. now everyone complains.

I'm not even gonna go into the whole taxation scam.


Not just the UK. Happens everywhere, certainly in the US as well. Pair that with governments granting themselves the power to print infinite amount of money and you get all sorts of causal relationships like increasing inequality, wages becoming disconnected from $ measured productivity, and much more.

The data here [1] are for the US but I'd expect it's quite similar for the UK as well, since 1971 is when Bretton Woods ended and the beginning of the era of funny money.

[1] - https://wtfhappenedin1971.com/


Their object layer and identification and categorization is pretty good.

You know, the things you need for spying and war etc


> why everyone was lining up to throw buckets of money at Palantir

Because of financial kickbacks. This is also why people should be suspicious at the current age-sniffing movement. Their next move was "VPNs must be abolished". We can see which mega-corporations finance those movements. Quite suspicious how different countries so easily "copy-paste" this legislation.


The people buying them genuinely don’t know what good is.

I think we just start calling it what it is: TREASON. These are traitors to our country selling out our national assets to a foreign country.

We can spell it out. Ex MI6 director Sir John Sawers is promoting Palantir against UK interests and Epstein associate Lord Mandelson does the same [1].

Selling out the UK apparently gives you knighthoods and lordships.

[1] Palantir was incubated by In-Q-Tel under the auspices of Alan Wade, who was co-founder of Christine Maxwell's (sister of Ghislaine) Chiliad. Chiliad was a data analytics company used in the FBI after 9/11. Thiel had many Epstein contacts and invested with Ehud Barak.


> Unfortunately, it's hard to escape the feeling that friends in high places, some lobbying

Agreed. It is said that Peter Mandelson had links to Palantir. (1) And also Wes Streeting (2)

1) https://www.theguardian.com/politics/2026/feb/04/peter-mande...

2) https://www.bmj.com/content/392/bmj.s307


How are they "obviously evil"?

Reaaaally?

I think a lot of the readability of python is in the fact you don't need to be recently familiar with it to pick up what its doing most of the time.

Over my career I've dipped in and out of rust, typescript, perl, swift, etc codebases. I'm no expert in any of these, but every single time I have to look something up to understand what this set of arcane symbols or syntax means.

When I dip into Python I just ... read it.

(None of this is to say I prefer Python, just that I really do get the readable thing)


I dunno, as someone who doesn't program in Python, I find dunders to be very confusing. Like, how is this readable?

_foo

foo_

__foo

_Foo__bar

__foo__

foo__bar

All of that is valid Python, and some of those forms mean different things depending on where they are used.


The second, fourth, and sixth form is options aren't used AFAIK.

Otherwise, a leading underscore indicates a private method but isn't enforced. A double leading underscore is also a private method but is "enforced" by giving it an unpredictable name. Double underscore (on both sides) means the function is digging in to python's API, like if you want to give a class some behaviour with + or = or [].

It's not trivial, and not particularly intuitive, but it's not necessarily terribly confusing.


The second form has no built-in meaning, but is frequently used in the wild. Often in local variables to avoid shadowing builtin types (`id_ = get_id()`) and in various libraries. Out of the top of my head, ORMs also use it to mangle reserved names.

edit: I googled a bit and PEP8 explicitly says "Thus class_ is better than clss". and "single_trailing_underscore_: used by convention to avoid conflicts with Python keyword, e.g..."

The fourth form is the mangling used for __x names internally (__x field in class Foo is actually _Foo__x

I don't know where GP saw sixth form, but considering all other forms are from real-world usage, someone probably uses it too.


What do you mean? Those are valid identifiers but programmers aren't required to use them.

I don't doubt that valid Python can include hard to read code. You xcan write gnarly Python, for sure.

But I'd still argue the average Python codebase tends to be pretty legible and simple to read.


I doubt it. Interns are cheap. They've replaced paid staff with interns!

> PR approval is too boolean. The PR is approved or it's not approved. Real code review, like real life, lives in the middle

This is have-your-cake-and-eat-it. PR approval is a permission so is a boolean. Of course it is. Either the code can be merged or it can't.

What's being described really here is just something to make you feel slightly better about yourself whilst approving code you hate ("we should revisit this..."). Just open a new ticket.


Gerrit has -2...+2.

-2: This is a bad idea, don't do that

-1: This is a good idea but needs improvement

+1: LGTM but I don't have enough knowledge or authority to approve

+2: Approved


I was in camp 'boolean', but I think this has convinced me. I always had a problem that there were developers who didn't really understand the code, but would click 'approve' anyhow because they didn't see any problems in the parts they understood.

This meant that they were completely unable to actually 'approve' a review, but were only able to reject it. They were juniors, so they'd eventually get to that point, but by then, everyone would be used to just ignoring their approvals.

This provides that middle ground.


Either the code gets merged or it does not. That's the inherent boolean part.

Given that, what's wrong with simply commenting on the PR to document the concerns, issues, lack of knowledge, etc?

Unless you're using those +/-2 to achieve some sort of goal... but you can also do that with labels, tags, etc. on the PR.


I haven't used this kind of +/-2 but I think it might be good communication between reviewers.

sometimes I review something and say "approved", but sometimes I can only review part of it, and really need someone else to check what's out of my wheelhouse.

sort of "partially approved".

I have used systems that can set things like "requires 2 reviewers" or "bob, fred are required reviewers, elon and sam are optional reviewers".

also we had "thumbs up, thumbs down, and some comments might have a "task" associated with them as a required fix before approval"

optionally, maybe before you say "approved" you have an overall comment, and see the comments of other reviewers.


> Either the code gets merged or it does not. That's the inherent boolean part.

In many environments that depends on more than just code review, e.g. CI.


Sure, it depends more than code review, but the code review is still a boolean flag, i.e. BOOLEAN getsMerged = codeReview && passesCI && passesTests....

Unless you're implying codeReview is a score and a low code review score can be offset by higher scores elsewhere eg. passes more tests?????


And Gerrit has multiple review label that can be customized[0].

So you could require `Verified+2` (CI), `Code-Review+2`, and `Design+2`, for example.

[0]: <https://gerrit-review.googlesource.com/Documentation/config-...>


everything except +2 is unapprove.

The nuance is comments on the PR itself, rather than the state of the approval, which is binary (or ternary, if you want to count leaving it in an unknown state for extended periods of time).


What if you want someone to look at a portion of it but they don't know enough to approve the whole thing. They give +1

Someone else knows the other portion well and sees the +1 and decides to +2.

In practice this ends the stalemate where partial owners don't feel confident to approve the whole thing


The PR needs to have someone who knows the whole thing.

Having several people review each separate parts but not understanding the others' can cause interaction bugs. If such bugs cannot happen (say, due to modularity, or type safety guarantees etc), then it won't be the case where you need to have a partial approve.

I am not a fan of partial approve. Either you think the code is approvable, or it isn't.


Domains of expertise are a thing. E.g. Google had "readability" which was the code style and opinioned language expertise that one person might have even without the deep system knowledge for a PR.

You can require approvals from N domains from (potentially) different people.


To be clear, that is an opinion, not an objective truth.

Some people think that PR status can also communicate rationales and partial approvals.

Some think that should be done with tags and comments.

Lots of request systems have multiple stages between "open" and "resolved".


This could also solve the problem Github has where anyone with an account an "approve" a PR, but if you aren't a maintainer for the project your approval doesn't mean anything as far as actually getting the PR merged, but can be a signal to the original author that it is probably good, and to the actual maintainer that the PR is worth considering.

But with this, a non-maintainer could review be allowed to give a +1 or -1, but not a -2 or +2, and it is more clear that a "+1" isn't sufficient for actually merging the PR.


I think we are normalizing the PR process here, in reality its more convoluted and a good reflection of the team/organization itself. The relationship between the author and reviewer can have negative impact on the rationale and desired outcome of the PR itself.

To run the process smoothly, one can just hope that the team/tech lead is an ideal developer. Otherwise they are in a position where no one senior than them is available for the code review and any one junior would just rubber stamp their PR's.


This seems like it’s conflating problems. It’s actually two different problems:

1. Is the PR suitable, and therefore should be approved, and

2. Is this person suitable to make that decision.

If 2 is false then the person should remove themselves from the list of reviewers. Then 1 can follow its normal process.


I like the idea of being able to merge a PR that is a partial solution, while keeping the issue open to reflect that it is only partially done. It kinda makes sense to do this in a single action.

Also:

> If [a person is not suitable to make the decision of whether the PR should be approved] then the person should remove themselves from the list of reviewers.

This doesn't reflect what sometimes happens in real life. Someone could have sufficient specialized knowledge to be able to veto a PR, without having sufficient broader knowledge to approve a PR. That person should definitely be left on the reviewer list, with the ability to veto, the necessity to remark if he has vetoed or not, and the inability to definitively approve.

It is necessary for this specialist to notate "I have finished examining this PR, and there is nothing within my expertise that would cause me to veto it" before the PR is advanced.

Unfortunately, in a binary system, that often equates to him having to say "I approve" even though this does not truly capture the intent. Then you wind up with hacky work-arounds, like requiring a minimum number of approvals.


I just want a button that says "approve and merge these 3 commits now but these two need re-work"


I like to rebase/squash before pushing because it keeps the commit history cleaner. However, I do like your idea so I guess I could also do a squash/merge after approval (which I already do, anyway).


There is another case, which is that the code is approved but not merged (in which case the maintainer may apply it manually (with changes), and might list the author of the PR as a co-author of the commit that applies those changes).


Well I think the bigger issue here is that GitHub is too decoupled from an issue tracking system - its a lot of manual overhead to constantly have to keep in sync. Linear does an ok job but far from ideal


> Either the code can be merged or it can't.

Not an intuitionist, I see.


If you are an intuitionist, excluded middle isn't an axiom, but is still provable/assertable on a case-by-case basis. This is a scenario where asserting it is entirely reasonable.


The whole point of a VCS is that your code exists in a superposition of merged and unmerged.


This exists in Azure DevOps as Approve with Suggestions


I think this is a good idea as it happens anyways even in GitHub.


I mean, that’s fair no? If the UX creates an impasse for the user then this leads to friction in the process. There’s more than one way to address it. One is the user overcomes his own internal dilemma, the other is the UX helps him get there. For example, would be cool if there was a way to do a conditional approval with an issue tied to a stacked PR or something similar (just throwing ideas, point is to surface up the friction as a UX take not a protocol or API issue with git)


There is also "this code is functionally fine but I absolutely hate it"


But that wasn't your point. Your point was that, because Russia, it _didn't matter_ if it did constitute stealing.


No, you seem to have misunderstood my point.


interesting, I'd assumed the lowest tier of hetzner (4.50/m, 2 cpus, 4GB ram) wouldn't hold up to that.

must be very light, for so much traffic. any more details?


It's a BitTorrent tracker

tracker.mywaifu.best:6969/announce

Running https://github.com/ckcr4lyf/kiryuu

(Disclaimer: I'm the author of kiryuu)

CPX11, so 2vCPU/2GB


ah, thank you. Haven't worked in java for a bit now, but that was the only one I read where I was like "I'm sure we didn't have to avoid this when I worked on java".

The rest were all very familiar. Well, apart from the new stuff. I think most of my code was running in java 6...


I now really want my city to employ local artists to redraw all the street markings.

Chaos, sure, but beautiful chaos.


I really like the street sign analogy.

But in my case it was the other way around. I work in a Kowloon Walled City of code: dozens of intersecting communities with thousands of informally organized but largely content contributors. It looks like chaos, but it works ok.

Code formatting really did feel like a new neighbor declaring "you know what this place needs, better-marked bus lanes!" as though that would help them see the sky from the bottom of an ally or fix the underlying sanitation issues. As you might imagine, the efforts didn't get far and mostly annoyed people.

But as the GP said, it all depends on the culture. If you pick up and move to Singapore you'd damn well better keep your car washed and your code style black.


I mean fired and resigned when it became clear you'd be fired are the same thing really.

We're not actually entitled to know the exact details of someone's job ending. They worked there. Now they don't. That much is the bit we're entitled to.


For public misconduct like this, we should get to know if he was fired (or asked to resign) as opposed to his making the independent decision to find work elsewhere or retire or whatever. We should get to know if he left because the company wanted him gone or because he wanted to be gone.


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

Search: