Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What is the thing you've built that you regret the most?
502 points by Octabrain on Nov 19, 2022 | hide | past | favorite | 520 comments
Given the very interesting comments on the "Ask HN: What is the most impactful thing you've built?", I was wondering about something similar: Things you regret based on ethical implications, bad technical decisions you made convinced you were right but regret/cringe about later, failures on miscalculations on budgets that provoked a bad outcome in the company etc whatever.

Thanks in advance.



I built a lighting system for <hotel chain you've heard of> to save energy by turning off hallway lights when not in use. The environmental aspect was great and saved hundreds of thousands in electricity. Someone eventually realized that the mesh network I built to connect all the lights together and report usage statistics could also be used to track employees moving throughout the building and catch them taking unauthorized breaks in the stairwell, so that's its main purpose now.

I'm a lot more paranoid about privacy these days.


Almost all software can be abused or co-opted for surveillance purposes. It's one of the reasons I've grown more disillusioned with computer tech over the years.


I had this realization in stages.

1. Almost all software can be abused or co-opted for surveillance purposes.

2. Some software comes already designed for surveillance purposes up front.

2a. This includes plenty of well-known mass appeal software; importantly, the customer-facing marketing copy and the investor pitch can present a completely different value proposition.

3. Software doesn't become used for surveillance or abuse by accident; there are actual human beings who make a decision to use it in this fashion, or commission it for this purpose.

3a. The "misguided programmers harming people by trying to solve social problems with technology" meme is dumb for many reasons, but it's also distracting (possibly purposefully so) from the fact that it's not software, or people who coded up the software, that are the primary culprits. The coders that were too naive or too self-interested to refuse work or blow the whistle may have some responsibility, but we should start talking about the people who made the decisions to commission or repurpose technology for bad purposes.


See also _Surveillance too cheap to meter_ https://cacm.acm.org/magazines/2022/7/262077-surveillance-to...

> To stop the surveillance, [they] would have to get their equipment suppliers to make changes; they would have to change their own back-office systems; they would have to reformulate customer contracts so they would not rely on the data being available in case of disputes; and so on.

> [It] would cost [them] more money to stop the surveillance of their customers than to continue doing it.

> That is quite literally what "surveillance too cheap to meter" means.


Thing is, when the company that pays you actively wants to track everyone, there's little you can do as the person that creates tech form them.

If the piece of software you created is unbiased and unopinionated, it can be used for evil purposes. If you make the software deliberatedly against that, you have to (a) take measures without the company knowing (b) have the manpower to do it alone while still reaching development goals (c) those measures can be undone by another developer that cares less that you.

After all, software big enough is collective by nature. It's also unfair to us to think that we're responsible for any misuse as if we were mechanical engineers creating weapons for war


"Thing is, when the company that pays you actively wants to track everyone, there's little you can do as the person that creates tech form them."

You can quit. Literally, there is something you can do. If your boss asks you to write or adapt something to surveil, then you can quit.

There may be consequences to quitting, perhaps disproportionately felt between you and the company, perhaps consequences that you won't enjoy as much as your current job stability and paycheck, but the choice is always there.


> There may be consequences to quitting, perhaps disproportionately felt between you and the company

This is why unions are so important, even in a field like software engineering. If you quit on your own, the company may not care. But using the threat of strikes, workers can demand better conditions for themselves and more ethical directions for their company.


Why are tech workers so resistant to organized action? Their owner employers sure are organizing adversarially in a multitude of ways in the open and behind closed doors


> Why are tech workers so resistant to organized action?

If you mean software engineers when saying "tech workers" because unions make it harder to fire people. There's not much that makes a software engineer's job harder than a bad engineer who isn't getting fired and is destroying the quality of the product and the code and creating work for everyone else to fix, all the time.

Unions also result in gaining seniority by time spent in a job instead of competency, and that's also a miserable experience, when someone incompetent is dictating the engineering work. In software engineering you want people who are technically proficient and capable of mentoring to assume leadership positions and positions of increased responsibility, not people who've been there the longest.


Software engineers in my first hand experience have been able to organize around coordinated action to get their employer to improve their conditions and pay without unions necessarily. One simple example of that is to coordinate around pay transparency


Tech workers disproportionally 1) believe in meritocracy, and 2) believe that the existing arrangement in IT is it, or at least closer to it than it would have been with unions in the picture.

Why that is the case is another interesting question.


Which is to say that even very intelligent people can be very vulnerable to believing in things which are patently false provided that the end result is the ability to continue to live in a state of complete denial, and a world of pure imagination, where no action is required on one's own part and you can just continue to hope that all of this is a temporary aberration that will get better on its own :)


There's also a time component.

It's entirely possible that in the post-IBM microcomputer, pre-Google AdWords span, they were correct.

However, it's pretty obvious that current era, power has slid back from labor towards extremely-large corporations.


Yep. Even clever engineers can be delusional fuckwits.


Obviously. Why else would people on hacker news advocate for all the socialist economic policies that humanity just spent the entire 20th century proving don't work?

Sadly history repeats so we'll probably just have another "cultural revolution" and "great leap forward" in the 21st century.


I disagree. I think most tech workers identify more with their employers and their class than their own status and that of their colleagues. They’re moving up, fast, and they’re satisfied with their prospects more than anything they might get from solidarity.

In Marxist terms, lumpenproletariat is a close approximation, but a weird accident of history.


That's not strange is it? If you're making 100k+/year, you're well into bourgeois territory, and FAANG benefits are practically near-instant-owner-class. Why would you expect anybody getting that kind of money to identify with the lower classes?


"Bourgeois" is not defined by how much you make per year. It's defined by your relationship to the means of production.


Anyone getting paid 100k+ is also getting stock options.


Sure, and many people getting less still own stocks via 401(k) etc. The important question is whether a person can live entirely off their rents, or they have to work for someone else for a living.


> That's not strange is it?

That depends on your baseline, of course. Or to answer your other question:

> Why would you expect anybody getting that kind of money to identify with the lower classes?

I don’t expect it, though I do have deep solidarity myself. Because, to return to the middle of your response:

> If you're making 100k+/year, you're well into bourgeois territory, and FAANG benefits are practically near-instant-owner-class.

I can speak to six figures, and I’m in no way into bourgeois territory. I’m approximately as comfortable as middle class boomers, ie I can make financial decisions to benefit my aging family with some hope I’ll still be comfortable myself. I don’t own anything in the sense meant by “bourgeois” in this context. I may yet, in the sense of a retirement plan. That’s a middle class aspiration. Which, having grown up poor and then broke and then getting by… I recognize very much is still working class.

There certainly is a larger segment of the tech work force than the general population which has reason to believe it can cross the bridge from gentry to ownership… but it’s still a minority of us and it’s mostly scraps. I don’t expect most of my colleagues to be comrades, but I certainly don’t agree with their class analysis which you have expressed so clearly.


> Why are tech workers so resistant to organized action?

I am not actually so much resistant to unions, as I do not see what benefit I’ll get from them. What exactly in my life would have changed for better if I had been a part of a union? Just one thing, can you name?


Probably better default settings when it comes to vacation, your off hours not being invaded by on-call, pay transparency, WfH/remote policies, etc.

If you have ever gone up against HR over anything ever, a union would have benefited you.


Vacation? I have unlimited days off, and my request was never rejected.

On call? They paid me $500 a week to have a cellular phone officially, but at the same time unofficially everyone was strictly forbidden to call it. It was an internal political move by the engineering department (see our commitment to this new product? we even put Mike on call), turned into an additional benefit to best engineers.

> If you have ever gone up against HR over anything ever, a union would have benefited you.

My wife (who is one of the best teachers in California, documented) was fired exactly because of the union rules. The principal wanted to keep her so much, that the district turned his desire into a political tool: oh you want to keep L? she is a good teacher? sign this paper (some financial cover up) and we will give you the money to keep L. The union did not care is she a good teacher, or not. Less seniority? Go away (but we keep your $1000 union fees).


Because most of them think someday they will be the owner employer.

They won't, but its a delusion that favours capital over labour.


Don’t most engineers loathe management positions and just want to focus on tech?


> This is why unions are so important

My favorite counter-example is a collective action of about a thousand medical workers in SF Hospital demanding from Facebook an increase in censorship (and the censorship is impossible without surveillance).

Why do you think a union will support your ethical choices? And if it would not - you’d have to quit the company and the union, loosing not only your salary, but also union fees.


The marginal cost of union fees is trivial in comparison to a salary.

A union gives you more choices than "surveil or resign".

And if the union fails you because it says "no, you have to surveil" then you can still resign.


This is an argument against democracy itself. If you don't think democracy would work for you, then I can't convince you a union would either.


That well has been poisoned in the US. It's tough to find any extant union which isn't a corrupt sellout organization leeching off the workers they're supposed to represent. It's hard to change, because laws around unions are designed to lead to the current situation. Cross-industry/informal/extra-organizational action and coordination using the internet is probably a far more workable idea than traditional unions.


Have you considered that that's what Porky wants you to think about unions?


Yes. I've also worked in a few union shops and experienced it myself. I'm a socialist through and through, but what is called a union in the US is not an organization of and for the workers, it is a co-opted parasitic extension of corporate and government policy. Workers can and should organize, but restricting ourselves to following the controlled opposition is stupid and self-defeating.


> You can quit. Literally, there is something you can do. If your boss asks you to write or adapt something to surveil, then you can quit.

If you had a union, or even a professional association whose code of ethics had teeth, you could refuse without having to quit. It's incredible to me that in 2022, most programmers are still anti-union.


You can organize.

Why shouldn't workers in a factory have a say over how their labour is used by those who appropriate it?

Baffled by how obvious solutions appear to have fallen off the radar.


They do have a say. Their labour is being purchased from them, not appropriated. They can say no (individually or together) and ultimately they can walk away.

As you say, collective bargaining is usually going to be more effective than individual.


> As you say, collective bargaining is usually going to be more effective than individual.

It may be more effective in terms of salary and working conditions (though I doubt that in software engineering I would have been able to get better pay through collective).

But in terms of ethics?

Individually, it’s almost impossible to make me support surveillance and censorship. But a big collective is much more vulnerable to manipulation. Comes 9/11 and you’ll get “collective” support for Patriot act, comes 6/1 and you’ll get “collective” support for censorship.


Even in war, we don't universally take "I was following orders" as a valid excuse. People writing surveillance software are not innocent - not as guilty as those that gave the order, but still guilty.


It's also why employers prefer to hire young people over more experienced people, because the latter actually understand what's going on and might object.


I think to combat this you need to have laws like in Germany where this is pretty much explicitly illegal. We cannot put the technology back in the bottle


The problem is that "bad" is subjective and I'm sure most of the people making these decisions don't agree that they are being "bad"


That's fair, but the 3 and 3a. is not about whether a decision is bad or not, but about attribution. It makes no sense to blame "technology" or engineers in news stories for being used in some way, but completely ignore the people who ordered and bankrolled it to be used in that way.


Why would anybody care what they think?


Don't worry, Free Software will save us. /s


> Almost all software

which is why it's less of a technical problem and more of a social problem

people need to realize that with how the technology is today we can't afford to rely on marked self regulation for a lot of things especially wrt. privacy protection it just fundamentally does not work

(Or in other words, such usage of employee surveillance should be just plain out forbidden by law not just to be used but to be deployed)


In order to do that, people are going to have to go to the ballot boxes and vote. And when they do that, they're going to discover that there are no good options there. Then they're going realise that they have to create those options, and there's no grown-up to do it for them now. Then it dawns on them that they are not even members of any political organisations, nor are they in a union. It's like they've lived their whole lives without ever even having used their rights to freedom of speech, freedom of association, freedom of assembly, freedom to join political organisations, freedom to create political organisations, freedom to stand for office, or even considered using them before in any meaningful way, so it's like a nation of infants contemplating the idea of taking the wheel of a car. It's terrifying.


I have this feeling that with the increasing complexity and sophistication of the technical environment/tools we have in our hands, there is an increasing amount of people simply unable to cope with everyday challenges of modern society.

Of course, there have always been these kind of people, but in the old days they were easily identified groups of disabled and elderly people, who, most importantly, understood also themselves that they need help.

The bleak future I see that increasing amount of normal people with normal intelligence are just going to be financially destroyed, all while they themselves believe that they are fully qualified and justified to decide whether their money is "invested" in the next cryptard scheme, sent to a nigerian prince to get millions, or put in a crappy health insurance covering accidents once in a blue moon, instead of those damn government elite experts taking their money and actually providing health care and pension. And after they are destroyed, they become even more hostile against the "elite experts" who just seem to be laughing at their faces "told you so".

(To be extremely clear here: I believe intelligence is a highly multi-dimensional thing. And yu can be intelligent only in very limited dimensions. so practically all of us - me very much included - are morons in most of the dimensions. So I am not pointing here to any specific group, but all of us are vulnerable in some dimension. I may be able to above average avoiding certain kind of scams, but I am for sure vulnerable - even laughable stupid looking afterwards - for face-to-face friendly scams. Which, luckily to me, are typically not expensive.)

Unfortunately I have no good solution anywhere in sight. The best idea I have so far is to mock online the idiots who think Ayn Rand was a genius. I have to admit, though, that even that is likely to be useless even in the best case, so most of the time I try to just bite my lip.


> such usage of employee surveillance should be just plain out forbidden by law

By law, like by some Patriot act?


In many cases, software is like a tool. I provided a screwdriver: generally it's used for good, but sometimes it's used for assembling a bomb. By providing the screwdriver, I have no influence on how it's used. For me, it's important that most software I write is free software with few restrictions on its use. That way, I ensure that my screwdriver is available for all good purposed, even though I acknowledge that I cannot prevent it from being able to be used for evil. It's a tricky balance, but I trust that the good uses of new tools outweigh the evil. A war on screwdrivers won't prevent missiles targeting civilians.


>"can be abused or co-opted"

I tend to believe it, "will be."

All tech will eventually be used to try to gain an advantage in war and surveillance. I don't think there's a way to prevent it.


The term often used for this is “dual-use”:

https://en.m.wikipedia.org/wiki/Dual-use_technology


It's not just computer tech. Obviously, advances in say molecular biology can cause much more trouble down the line.


> used to track employees moving throughout the building and catch them taking unauthorized breaks

There's probably more illegally unpaid overtime than there's unauthorized (boss doesn't like) breaks. The data can likely prove that, too.


> I built a lighting system for <hotel chain you've heard of>

I am sick and tired of how often extremely pertinent information has to be neutered in this way. And I am utterly disgusted at how the legal system is used to protect scummy corporations like this unnamed hotel chain.

I wish we had strong laws that prevented employers from even thinking about threatening employees for talking about their work. Or collective bargaining to make sure employers don't have the leverage to impose such one-sided contracts.


What was the requirement?

My apartment building has lights in the hallways that are only on when needed, but they just use a basic infrared sensor.


* Minimize BOM cost. Only 1 in N lights would actually have the full sensor complement, so they needed to communicate.

* Minimize installation cost. They just wanted to plug into a light socket, not run network cabling.

* Push data logs to a central server. They didn't want to send a tech physically to each lightbulb to get data for e.g. energy usage certifications.

plus other obvious requirements.

All of that made it really easy to just stick a beacon tag inside employee badges and measure the RSSI from the mesh lightbulbs (since they already tracked that to discover who their physical neighbors were). Instant employee monitoring.


I am starting to think the requirements were crafted to push towards enabling surveillance without outright stating it.

PIRs are cheap and last basically the lifetime of the hotel. I would need to see some actual data to believe this whole project didn't actually cost more than installing a bunch of PIR lamps.


Guess you used wireless communication to avoid cables even though you are "pushing logs and communicate with other lights".


Are these hallways for staff only?


Not as far as I was ever aware. They were intended for guest areas.


So why is the RSSI thing worth having?


RSSI is just signal strength. Tracking it allows you to approximately triangulate where people are so you can say "ID #xxxx was closest to the first floor east stairwell at 10:02am". Maybe nothing is done with that data, but it's ultimately a surveillance system and enables all the potential abuses that can entail.


I know what RSSI is, it seems like complete nonsense even pretending this is for energy efficiency if you have to keep track of where the non-staff are anyway - or is the people-tracking just an optional extra?


I think people tracking was just an optional extra/add-on. It sounds like the RSSI signal was there in the first place to set up the mesh based on what other lights had active sensors...


Because by measuring multiple RSSI you can trilaterate and track employees relatively accurately. If an employee lingers somewhere unusual, you can have a manager ask them why.


That isn't what the system was notionally designed to do


Yes. The commenter is upset because a mesh network that he helped build for another purpose also provides a convenient dense network of radios that can be used to track staff, and that this is now the primary use case.

"All of that made it really easy to just stick a beacon tag inside employee badges and measure the RSSI from the mesh lightbulbs (since they already tracked that to discover who their physical neighbors were)."


I assumed the rssi thing was there from the start, apparently mistakenly.

If it's any consolation to the original engineer it feels like a non-trivial thing to add


The original engineer states the RSSI thing from the start because it was an input to the meshing algorithm.

Using it for location of employees was the new part.


Most nodes in a radio based system will do rssi measurements to any other nodes that they need to communicate with directly, as part of deciding appropriate tx/rx amplification levels / when nodes are unavailable / etc. These functionalities are often easy to access to enable easier debugging, so it's a relatively straightforward change to start using them to scan other things on the same protocol etc.


By the time they got to "just stick a beacon tag inside employee badges and measure the RSSI from the mesh lightbulbs" it's pretty clear that it's one of the features they had in mind, though. You wouldn't "just" re-issue all your employee badges and spend engineering time on integrating it like this if tracking the employees wasn't the goal.


For some additional context, the original feature genuinely was energy efficiency. <Hotel chain> was trying to get some green certifications for a flagship and went looking for partners to do the actual efficiency stuff. That company found a sub, and so on until I was contracted to do the actual firmware. Everything got done and it was installed in a test hotel in Vegas.

After that initial success, one of the intermediary contractors came up with the surveillance idea (among others) to try and find reasons for <hotel chain> to roll the system out to more facilities.


Systems like that are commercially available now, even as far as pitching "we don't know what to do with all the data but by golly we're collecting it for you."

For location tracking they specifically called out things like equipment carts, but it was implied that it could track other bluetooth devices.


I did this almost a decade ago. I'd be very surprised if it wasn't commercially available now. Heck, the system I wrote might even be one of them for all I know.


Wow. Well at least it was 100% good faith your side. Can’t really help it that some tools can be dual used


How could they tell who exactly triggered the system? Also, they didn't already have security cameras?


anything you write that can be used to pry into someone's life will be used to pry into someone's life. without fail.

that's the rule I've always followed.


Need to know <=> Need to log


What is so bad about catching people taking unauthorised breaks?


for starters the idea of “unauthorized” in terms of taking a couple minutes to yourself is questionable.

i have never worked in an office environment where people didn’t routinely unwind for a couple minutes. the way we’re treated in an office setting vs those outside an office is in a lot of ways disturbing. a couple years ago my friends dad lost his job of 25 years because he was caught sneaking around a corner, out of eyesight of his foreman, to eat a candy bar. he had been warned about these “unauthorized” snack breaks in the past.

this idea is entirely foreign to any of us who sit at a computer coding or doing whatever desk job that sometimes we don’t stop to think of how ludicrous some workers are treated—my entire post college career, if i wanted to eat a candy bar, i just ate it.

were a decision to come down in just about any office full of engineers which said “unless authorized, you cannot drink or eat anything. if any unauthorized stoppage of typing occurs, there will be consequences.” people would be justifiably outraged.

but they’d be “catching” “unauthorized” non-typers.

the idea that someone somewhere decided to put trackers on human beings is wild.


> the idea that someone somewhere decided to put trackers on human beings is wild.

did you forget about cellphones?


I suspect OP didn’t.

That everyone has accepted that owning a phone means you can be tracked with accuracy most the time, both digitally and physically, is pretty wild.


The same thing that would be bad about using your phone GPS location sensors to automatically send you speeding tickets every time you wander >1mph over the limit.

Even without intending to, everyone would go from a ticket or two per decade to dozens of tickets on every commute.

"But the law is still the same!?!"

Of course it is, but changing from poorly scalable human-required surveillance to always-on, fully-scaled electronic surveillance, changes it from completely reasonable to massively oppressive.

If everyone's productivity is fine, and people take unauthorized breaks, no one will notice, all is cool. If one or two people are noticeably unproductive, the manager will likely investigate and fix the unauthorized breaks, which is also fine.

But with constant electronic surveillance, it's no longer about meaningful productivity differences, it is about oppression.


It's still up to the manager to choose what to do about it.

A reasonable manager would accept the occasional smoke break, but do something about hour long naps.


In line with what a sibling comment says, it stops being about the person themselves, and what their actual performance is, but about adherence to arbitrary rules. The computer says you took X number of unauthorized breaks this past year, so no raise/promotion for you. Employee has still been getting their assigned job done, and has been doing it perfectly well, and has stellar feedback from customers? So what! It's the rules that matter more.

Often a manager will not have any say over these things. "The metrics speak for themselves!"

Regardless, I don't think we should design systems with the assumption that the people in charge of them will be compassionate and reasonable. There are a lot of petty, corrupt (in the moral sense, not financial) people out there in positions of power over others.


Centralized automated system like this often is not something someones (direct) manager uses, but that gets pushed down from higher up the chain. Larger disconnect, less human consideration taken, with an extra helping of "well the system says..."


One argument in favor of this is that it would pretty much force governments to set reasonable speed limits, rather than optimizing them to ensure that the police have an excuse to pull over almost anyone at any time.


No, it would allow them to adjust the limit to whatever brings in the most revenue without crashing the economy or engendering open revolt.

It would always be entirely unworkable at anything resembling the current fine structure, with fines in the $100s for a single infraction. These are based on the assumption that people are rarely caught.

I could see a surveillance-based system working, something on the lines of a congestion toll. Maybe $0.02/mi/mph over the limit, so going 10mph over the limit for 20 miles would be a $4.00 charge. We'd also have to eliminate the bogus insurance surcharges which falsely equate speeding with unsafe driving (barring neighborhoods & construction zones, they can signify either an unsafe driver or a highly skilled driver).


"engendering open revolt"

In France, messing with the people's ability to drive affordably led directly to the Yellow Vest riots.


Would you like to live in a society where the laws are the same as they are now, but it’s impossible to break them and not be caught?

(I know I’m jumping right to where the slippery slope ends.)


That's the difference between living in Munich or São Paulo, or New York and Miami. Different societies have different tolerances for what's on the books and what gets enforced.

Personally, I prefer less on the books and proper enforcement, but many people like a lot on the books and just as many loopholes.


If we lived in such a society I would imagine we would be a bit more careful as we drafted laws. It would also be a lot more equitable due to the lack of selective enforcement.


Even if getting there from the current state of affairs by rigorously enforcing laws to the letter is possible, it would come with a very heavy price on people while the laws get reformed.


Taking the other side - you’d rather live in the society we have today where policies/laws are selectively enforced based on whether cops/supervisors have a good relationship with you, are biased re your race/gender, etc?


Perfectly executed laws would also have biased outcomes, likely worse than the current system.

There’s a good quote that goes something like “the law treats all men equally: the rich man and the poor man are punished the same for stealing bread to feed their family.”


The law, in its majestic equality, forbids rich and poor alike to sleep under bridges, to beg in the streets, and to steal bread. Anatole France


Yes, it'd foster good social relationships. Oh wait, engineers don't need no one....


It's more about the negatives of pervasive electronic surveillance. The marginal benefit to the business of catching employees taking a break (which, honestly... they're probably all overworked and should have more breaks anyway) does not outweigh the downsides of our inexorable slide toward being monitored as we do everything.


>which, honestly... they're probably all overworked and should have more breaks anyway

And your best solution to this is building automated lighting systems that omit functionality? That's your grand plan?

Reminds me of people that complain about seats being removed from buses to make more room for passengers because homeless people sleep on them.

When you're trying to solve things via tertiary order effects you should consider if that's the real issue at hand .


> What is so bad about catching people taking unauthorised breaks?

Your profile indicates that you've commented on HN on a weekday.

Don't worry - this behavior has already been reported to the authorities.


Not the OP, but a lot depends on the context.

If both pilots left the cockpit mid-flight in order to chill with the stewardesses, I would be fine with them being barred from working as pilots ever again.

I couldn't care less if a receptionist catches a quick smoking break during a slow hour.


In a discussion that started with "hotel staff in the stairwell", which of your two examples do you think is more representative?


Unfortunately, the latter one, I agree.


When I was at Akamai about 5 years ago, I was involved in building the system for making their CDN compliant in China. There were two main features, and they were activated on all servers running inside mainland china (not HK, macau or Taiwan)

1. Logs of the CDN were sent in real time to the ministry of technology -- there was about a 15 minute delay if I remember correctly, and they could impose fines if they were delayed. The log included the url visited, the IP address of the visitor, and a few other things. Perhaps the user agent? I forget.

2. The ministry of technology had a special API to block URLs on the CDN. Basically, they provided a list of URLs that would return a 451, and of course those logs also went to the government.

No other country had this kind of access at the time, but it was considered critical for the business to continue to operate in China. As I understand it, these are required to comply with chinese government regulations, and other CDNs like Cloudflare and Cloudfront have also built similar capabilities. Perhaps jgrahamc can comment on what cloudflare did?

I feel quite guilty about being involved with that project, but the business was set on building it, so I did what I could to limit the blast radius. I would not be surprised if someone got arrested or was killed because of it.


Glad you regret it. Not trying to rub it in as I don't think anything productive will come from self-flagellation, but this is truly awful and I think the US should have laws that make it a crime for any US corporation to participate in this sort of thing.


I was powerless to stop it. I was just a junior engineer, and it was decided by the CEO to do the project. So, actually, I feel I made the right choice -- I participated in the project but worked hard on making sure it was as limited as possible. I successfully advocated for several categories of logs to not be sent because they were not required by law.

So, yes, I regret I couldn't do more, but I don't regret the choices I made with the information I had and the position I was in.


Just a stranger on the internet, but FWIW I'm proud of you. You did what you could, and you're cognizant of your actions.


Thank you.


> I was powerless to stop it.

You couldn't have stopped someone from building it. But you could have refused to work on it on principle, or even have become a whistleblower.

Yes, doing so might have been infeasible for you, particularly if you couldn't risk a temporary loss of income. But your involvement was, nevertheless, a choice, and it's important to acknowledge that.

edit: If it was exactly 5 years ago, you may recall that, when you were working on this, China was starting to round up Uighurs to send them to concentration camps. Nobody should take working on this sort of thing lightly.


If they refused the work and let someone else who cared less about limiting the amount of data, things would be worse.

Also what would whistleblowing do? A lot of companies were operating in China and followed similarly privacy-hostile regulation.

Also to bring up Uighurs in this is ridiculous. Logging ips and urls has no direct correlation with being able to round people up in concentration camps. It has nothing to do with what the Uighurs ideologies were, it has something to do with who they are and the cultural differences they had with mainland China.

To try and look down your nose at an engineer who did the best they could with the position they were in with the belief that there was more that could be done is just naive.


You may recall that, when someone blew the whistle on Google Dragonfly, a censored search engine intended for use in China, the public outrage was enough to bring the project to a halt. The same might well have happened to Akamai.

Regardless: this whole attitude strikes me as an overly utilitarian outlook. Yes, if someone else handled the development, the consequences might well have been worse. But it is still wrong to participate in an injustice when you have the opportunity not to do so. "I was just following orders" is a pretty weak excuse.

Again, if the commenter had no other options because they couldn't risk the loss of income, that would be a good reason, but it isn't clear that that was the case.

I think it's pretty naive to assume that this project wouldn't have been used against the Uighur population, given how China has used extensive surveillance against them.


I applaud you. I absolutely did not intend to rub it in or make you feel worse than you might already (which it sounds like you have little reason to). I admire you sharing your experience and being honest about it without beating yourself up too much. The world is made better by little decisions for the good like the ones you made. Thank you.


> I was powerless to stop it.

You could have found a new job, driving up their costs or delaying them slightly.


And what purpose would that have ultimately served?


Sending a message, driving up their costs and delaying them slightly.


Thanks for sharing your story. I am curious what you would do next time if you found yourself asked to build something that you found unconscionable? Would you refuse to work on the project?

Other engineering disciplines have a strong focus on 'engineering ethics' and it may be more acceptable in different branches of engineering to refuse to build something that you consider unethical. I do not know if there are any professional bodies or laws which protect the employment rights of individual engineers who refuse certain work on ethical bases. But I feel that software engineers should be able to exercise their conscience, reference a standard of professional ethical principles, and refuse to work on such projects.


If I use a VPN like v2ray and write some crazy shit about Dictator Xi, is your system able to know what I write and who I am?

I'm very curious because many Chinese people including me are doing that daily.


That what I do on a daily basis, so far so good, I haven't been seized by the police for what I published outside of the Great Fire Wall.


Akamai has very tight relations with the US Government. So what was probably happening is that the USG was fine with Akamai treating it's users like this because it was getting a copy of those URL filters and access logs too. Don't know if that should make you more in or less sorry for being involved.

(It would make me more sorry. Sorry.)


While I wouldn't put any authoritarian moves beyond China's reach, the ICP recordal mechanism already requires government approval.

In that case, isn't it better for user privacy (not that anyone cares about it in China) to receive an ICP recordal but then wait for an actual request from law enforcement to turn over the logs?

Also, while you wouldn't see anyone from Amazon or Cloudflare comment on your thread, both have the ability to stream logs to a destination, and that is also exposed to customers, so I don't think they needed to build anything else.


All of the sites served had an ICP license. This is separate, and the CDNs in China have regulations specific to CDNs they need to comply with.

At the time, Akamai also had the capability to stream logs, but the ministry of technology required a specific, custom interface to receive them, which required engineering work, especially to do it for an entire country without the customers configuring it themselves. I would be extremely surprised if it required no engineering work at Amazon or Cloudflare to deliver the logs in the way they requested.


Thank you. This is very informative. And don't feel guilty, nobody will get jailed for visiting a website. This is mostly for censorship.


There was a person in Beijing that was arrested for a post on Twitter. Government surveillance was able to track him down in real life, which I think is deeply troubling


That's a post not a visit


There's really nothing stopping them from going after people who use VPNs. What are Chinese people going to do? Protest?


> This is mostly for censorship.

As if that makes if any better?


This is kind of like saying, "don't feel guilty, this weapon won't be used for murder, it's mostly just for arson."


[flagged]


This type of China vs US narrative where existential stakes are implied is just dumb. The technological Cold War we’re in is not going to result in the collapse of either nation.


I think you may have misinterpreted the parent comment, (or perhaps I did). China doesn't have a deep libertarian tradition, so overbearing state surveillance, while odious, isn't a strange concept in Chinese culture. Western governments are/will be unable to resits the urge to deploy such measures because they clearly work so well for authoritarian states, but will fatally undermine their own cultural foundation by doing so. It wasn't so long ago that regimes like East Germany were considered the epitome of totalitarianism, with the Stasi (domestic intelligence service) coopting large numbers of informers, listening in on the citizenry etc. Yet today many of us are subject to far more intrusive surveillance, it's just got super-friendly branding and some people are making money out of it so 'freedom' has nominally prevailed.


That’s the thing though, it doesn’t work that well. China is a huge place that seemingly has many challenges that are underreported in the global landscape. The trade offs the Chinese government makes to better control the people limits their ability to draw from the global talent pool and restricts free thinkers and innovation.


China exports narcotics, sold nuclear tech, grabbed China sea, Tibet, hongkong and Taiwan on the menu. Sure nothing to worry about it.


What exactly is the monster you’re talking about here?


In the first novel written by Ernesto Sabato, The tunnel [1], in one of the novel's tangents, there is a twist on the common fairy tale of the knight, the princess, and the dragon. For Sabato, the moment of clarity, of truth, is to realize the princess is the dragon.

The monster, the technological golem foreseen in the works of Lev Shestov, Martin Heidegger, Jacques Ellul and more, is that because our tool-making inclination is both our salvation from nature's whim and our damnation (environmental mayhem and others), the princess is the dragon, we are not able to purify the technological pursuit in order build a bridge between intelligence (how to achieve a goal) and wisdom (why to pursue a goal).

A historical factoid: John von Neumann, whose ideas we exploit every day by turning these very devices on, has a quote "If you say why not bomb [the Soviets] tomorrow, I say, why not today? If you say today at five o'clock, I say why not one o'clock?" [2] Apparently, von Neumann wanted to nuke the Soviets in 1945 or soon after, before they had the nuke themselves, in order to establish dominance. The Soviets collapsed themselves, half a century later, in the meanwhile and in the aftermath torturing and maiming the lifepaths of hundreds of millions of people. Who's to say what course would have been better.

[1] Sabato wrote only two more novels, On Heroes and Tombs and Abaddón, The Exterminator, all three are masterpieces of universal literature.

[2] "The Passing of a Great Mind" by Clay Blair, Jr., in LIFE Magazine (25 February 1957), p. 96.


You think you should have nuked the Russians for their own good? Horrible people


The parent comment said "[t]he west created the monster". The point is, since our technology is only a means of enhancing intelligence, not wisdom, we are unable to perceive the end-leaf monster of each decision tree.

But sure, we can imagine a political-fiction novel à la Philip K. Dick where Oppenheimer, von Neumann, and Feynman team up and after nuking Hiroshima and Nagasaki, they nuke Moscow and Washington D.C., and form a world government ruled by scientists, a techno-solar punk utopia based roughly on Herman Hesse's Castalia from The Glass Bead Game [1].

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


I worked in an Ad-tech start-up in Berlin run by two of the most evil f*kers I've ever encountered. I built out their principal ad auction algorithm and a lot of the back-end to support it, and all they did with it was target vulnerable groups of people at particular times of the week when they thought they were at their lowest ebb.

One meeting in particular really stands out still, a social media giant that everyone knows was in town meeting the founders to sell additional personalization data. Before that meeting, I thought things the start-up were doing were a bit sketchy, maybe borderline unethical. During the meeting itself, it was more like sitting around a table with Dr. Evil and a few henchmen. They were actively, unambiguously picking vulnerable groups for ad re-targeting. And that's not even the worst of it, the meeting wraps up and one of the founders says "OK guys, let's go get some beers and bring some girls". Then this despicable excuse for a man promptly walked out into the office, points at a few female employees and says "You, you and you, come with us now".


Thank you for sharing

I hope this is a message that gets through to young devs. If someone is hiring you, you'll be making them more money than you cost. When you interview with someone, you're interviewing them too. You get a choice in who you make rich the more we make cruel people wealthy the more power they have to damage our society


I worked at a fintech and it was obvious that some of our users had serious issues with gambling/game spending. Like so bad that they would run out of money regularly before their next paycheck.

This fintech didn't exploit them, but it was very obvious how this data could have been used to exploit them and other addicts.


This is like something from a movie. You write really well, by the way. You could easily write a book if you wanted to.


Name and shame.


What were the vulnerable groups? But it's ok if you don't want to answer.


>"OK guys, let's go get some beers and bring some girls". Then this despicable excuse for a man promptly walked out into the office, points at a few female employees and says "You, you and you, come with us now".

And did everyone clap?


Early in my career (late 90s) I worked at a big company that just loved getting patents, had a big patent wall and did plaque presentations, etc. I got swept up in this and patented some "novel" (:eyeroll:) uses of a device that a partner/supplier made. Yay... I got a plaque and a few bucks, but Big Corp was never going to commercialize these uses, that was clear. They just wanted to run up the patent count.

But the partner corp was just a startup, trying to break into some markets, and now had some of those opportunities encumbered by patents and rightfully viewed our partnership as not in good faith (we didn't tell them about the patent work). The engineers at the partner firm were fairly pissed off at me, since I knew them well on a personal level and my name was on those patents. And naturally Big Corp promptly forgot about that business, never doing anything with the "IP".

I've thought about chucking those patent plaques in a fire, but I keep them in a box as reminder of that little snippet of my career, which I'd otherwise probably block out.


Pretty sure it’s Qualcomm. Not familiar with any other companies that were so proud of their parents to build a wall to them


Patent walls were (are?) a patent feature of many BigCorps. I've seen at least three, and none of them were QualComm.


There are certainly others. Micron has a patent wall. For a period of time under CEO Steve Appleton, meetings with engineers were prohibited [Fridays or half of Friday?] because the engineers should be working on parents during that time.

My understanding is their strong patent portfolio was a good part of why they are still around after the massive consolidation of DRAM manufacturers through the 80's and 90's.


Both of your comments were victims of auto-uncorrect.


I know a life of typing has led me to this sorry fate, and yet, I blame autocarrot.


Darn they are - exact same slip up too! Unfortunately it's too late to edit now.


IBM has done this as well.


It's pretty common – I've seen a wall o' patents in at least two (non-Qualcomm) offices!


Got one, and we are much smaller than qcom.


McData did that when they existed.


I worked for a company that made deep packet inspection based network equipment. Western customers mostly used it for "security" and media streaming man in the middle attacks (actually a useful feature saving lots of bandwidth).

The boxes were also sold to Syria and Burma, and were used to facilitate censorship and human right abuses


And limiting torrent speeds to 40k/s during "peak" hours. Which I kinda understand, but not when its unilaterally launched against the 3rd party providers leasing the lines too!

(I guess Bell Canada, which also sells TV services, lost too many customers over this policy to their unthrottled competitors)

https://www.cbc.ca/news/science/small-isps-fight-ruling-that...

Canadian telecom regulators are gutless.

Though I kinda liked it when my university throttled napster and torrents, because that meant my IRC downloads went very very fast!


In my memory Napster was before torrents? Did the idea for torrents, receiving pieces of the same file from multiple peers, come from Napster?


Doing some research, there was a very small period of overlap.

The ability for Napster to resume was a much later feature. You had to find someone sharing the exact same filename, and I don't think they made it easy. I can't remember if they eventually allowed multi-source downloading.

Independent Napster servers did continue to operate after the fall of Napster Inc as a service.

https://boards.straightdope.com/t/napster-but-not-all-other-...

I recall using Napigator which provided a browse of official and independent napster servers and then modified your HOSTS file so your client would connect to the independent server instead of Napster Inc servers.

https://www.gwern.net/docs/technology/2018-07-25-johnbackus-...


Napster was first, but it was called peer to peer (p2p) then. Bittorrent improved on it.


Ultimately you are like a kitchen knive maker whose knive was used in a stabbing. It was entirely the stabbers fault and does not diminish the utility of your product.

In a corporate setting, mitm'ing TLS and blocking sites by category is routine practice (better ways to stop bad stuff but expensive firewals are a waste when most traffic is TLS).


> Ultimately you are like a kitchen knive maker whose knive was used in a stabbing.

I don't know about this. The difference with knives is that they are an old technology, basically they have always existed. If you are responsible for creating a new technology, especially one that is not certain to exist without your involvement, the calculus is different.


A knife is just a sharp edge with good marketing. You can't remove sharp edges from the universe.

No such guarantee exists for technology of this sophistication.


There's a difference between selling knives to the general public, vs seeking out violent criminals and specifically marketing your knives to them.


Yes, and in the case of technology, it is REALLY EASY to simply sell no technology to any authoritarian regime, for any purpose.

There are dozens of academic and GNOs that track democracy, e.g., [0]. Just select a reasonable cutoff of some level of democracy, and don't sell to anyplace below that.

That does require management and sales to have ethics. Some do.

[0] https://www.democracymatrix.com/ranking


You're assuming only authoritarian regimes are capable of doing bad things. You can have a perfectly democratic country without a sense of ethics when it comes to homeland security and/or espionage. So that line of thinking provides a false sense of virtue really.


No, I know full well that even democratic nation-states occasionally do bad things.

But if you cannot tell the difference between how democratic countries vs autocratic regimes deploy security & espionage technology, you are deeply ignorant. I'd suggest you go live in Russia or Myanmar for a while and report back.

Of course there are instances of overreach in democracies. They typically get reported and corrected. In autocracies, they are systematically rewarded and encouraged.

Of course everyone would rather have no security & espionage technology, but that is entirely unrealistic. If you want to live a self-determined life in a democratically controlled state, you MUST always be better armed and prepared than every bully and authoritarian out there, or you will soon be ruled by them. Security & espionage is simply a part of being better armed & prepared than the authoritarians (and in a democratic state, you REALLY aren't of the slightest bit of interest to the agencies).


Im not sure if you're arguing in bad faith or just naive about how your own country operates.


Neither

Yes, I have a fairly good idea of how my country operates, including the understanding that fighting espionage, transnational criminal gangs, terrorism, and war get very dirty, and on all sides, including ours.

I also know at least the democracies have oversight & constraints in place that creates real constraints and corrects and punishes overreach. The fact that you and I know of some of the bad events is BECAUSE of that oversight and constraints.

I also know that the choices are to either lay down our arms and yield to the autocracies, or to continue fighting to remain a self-determining people.

You only need to look to Chechnya, Syria, Georgia, Ukraine, or many other places to see the consequences of either yielding or losing that fight.

Yes, we have some abuses like Abu Grabe and soldiers & leaders were held responsible & punished. Yes, there are times where surveillance overreaches.

What we do not have (yet) is literally political parties literally using the security apparatus to blow up multiple civilian apartment blocks as a false flag to influence the election; it's how Putin came to power in Russia. We do not have a wholesale co-opting of technology and industry, complete with mobile execution vans to ensure compliance, as does the CCP.

If you cannot tell the difference, I suggest that you learn some history, or just feel free to relocate to one of those other countries.

I also wish that none of the defense or espionage apparatus was necessary. But as long as there are local bullies or expansionist authoritarians, then staying better armed and prepared will be necessary.


Some call that nei-colonialism, you use economic/business opportunities as a way to undermine a country's sovreignity and enforce your puppet regime. Democracy is neither morally superior or a your manifest destiny to export against the will of foreign governments.


That’s how it is justified. However, there are always moral implications of the work one does.

Sometimes, the moral calculus is done only retrospectively and that’s when it really becomes problematic.


> In a corporate setting, mitm'ing TLS and blocking sites by category is routine practice

Deep packet inspection is a terrible practice in my opinion. It adds more security vulnerabilities than it typically helps avoid. I’ve seen one implementation use client software to extract keys from a machine to send to a centralized server. How some companies don’t see how this model can be easily exploited is beyond me. Me and a VP friend of an organization have had long debates about this topic and he insists it makes more sense for him because the employees have been more competent at the companies I’ve worked at than the company he managed (which could be true since his company had high turnover leading to many engineers being hired out of need rather than evaluated merit).


The difference is that most people have kitchen knives, and use them for cooking, not assault. Identifying buyers with ill intent in a retail setting would be impossible, and I suspect most kitchen knives used in crimes were purchased for cooking.

Selling deep packet inspection technology to the government of Syria is different as there is ample reason to believe that government would use it for human rights abuse.


It's bad practice.


Ho, I got the same one. Sold to me as a tool for low-cost ISPs (or hostels) (mostly in Africa at the time) to advertise mobile subscriptions as "Free MSN & Facebook, 1GB per month otherwise". After a month or two, I understood it was sold to various dictatorships in south America to spy on citizen's MSN and Facebook private conversations. I left immediately, with a very upset boss wondering why every Linux kernel programmer was so political. Not proud of this one.


It would be entirely reasonable to name the company.


Maybe Procera or sandvine


Probably AMESys.


I built a crypto invoice system that was originally targeted towards our freelance dev clients, which was soon overrun with drug sellers, weapons sellers, and when it reached a point where some of the invoice descriptions included words like "8yo.mp4" we realized it was time to put it down. We reported the IPs of the people involved and shut down the servers. Luckily I live in a third world country and not somewhere I could get in trouble for.


Not trying to be snarky here, but did it surprise you that a system built to obfuscate financial transactions would be used for illegal activities?


I don't think most crypto is built to obfuscate. It's built to bypass centrally controlled monetary system. With the exception of some specialty crypto created to obfuscate, it's really not nearly as good at hiding transactions as say, cash.


Technically it might not obvuscate, but practically it does.

Critically (compared to cash) it allows remote transactions. Cash requires presence which limits the customer base geographically, and carries enormous personal risk. (you're already transacting with a criminal, do you want to be alone with him as well?)

The killer app for crypto is illegal activities. (which may in some cases be moral, but nevertheless are illegal.)

As a side note, the volatility in the crypto value, caused mostly my legal speculators being exploited by scammers, hurts the utility of crypto in all contexts, including illegal ones.


BTC->XMR->BTC


I thought nobody would be stupid enough to try to slang rocks on "clearnet", and also Bitcoin is not built to obfuscate, that's Monero.


I wouldn’t care too much about the people who try to “slang rocks”, the “8yo.mp4” is infinitely worse in my eyes.


Pretty much. We laughed off the weed stuff but when we saw the .mp4 stuff we realized it got too far.


It could become very useful honeypot for the police or some government agency tracking crime.

Those people found another way to get paid.

Although I couldn't ever blame you for shutting it down. I'd probably do the same and try to forget about it for many years.


Unfortunately, I was not contacted by any intelligence agency with a promise of money and lack of prosecution, so that was my choice at that time.


I think it was fortunate, in a sense that these agencies’ employees usually couldn’t care less about your own fate or expenses in all this mess. You’re just a little bug in their gears which rotate regardless. Unless you can gain substantial publicity, it’s not worth the risk.


It shouldn't be that way though. That honeypot could've been really useful to them, and the cost of providing peace of mind to him is negligible to their orgs.


My first job at Microsoft was to build IronRuby, which was an implementation of Ruby on top of the Common Language Runtime. I got the job because I had built a bridge that connected MRI (Matz's Ruby Interpreter) to the CLR before I joined the company. This project ultimately failed because of a principle that we learned from the school of hard knocks: respect developers' existing code investments. Developers couldn't use it because many of Ruby's existing libraries were thin wrappers over native code, and we couldn't get them to work for many reasons.

It turns out that the project was more of a demonstration of our ability to get dynamic languages to run efficiently on the CLR. To that end, I think we were successful. But once we achieved that there was not much of a path forward so the project was eventually shuttered.


We use IronRuby for a monitoring application at my job. Its provides dashboards with hundreds of red/green annuciator tiles that users across the enterprise can create and customize. They can make a call to an API or run an SQL query or whatever and then as part of the tile configuration they include a few dozen lines of Ironruby to determine if the query results are good or bad and what messages to display on TV screens around the offices.

We couldn't have made it user customizable without something like IronRuby, thank you so much for implementing it!


Wow. Thanks for sharing this! I had no idea that it was still being used somewhere. I'll share with folks on the team that I'm still in touch with!


I remember IronRuby. It was a great demonstration and I think you inspired a lot of folks who came after.

Maybe it didn't accomplish your original goal, but props for what you did accomplish. Quite impressive.


IronRuby may not have succeeded but it and the DLR were inspirational, and I don’t think I’d have been working on JVM based language implementations for the last decade and a bit without initially being to point at things like IronRuby and say, “We know it’s possible.”


I got so much mileage out of the DLR they built to support those languages even if things didn't work out afterwards. To this day, I don't think anything as effective exists anywhere in language tech land.


Was this basically what doomed IronPython also?

I remember a conversation ages ago about how you couldn't really get a (common?) lisp running properly, irrc due to limitations in the way CLR modeled classes amongst other things, but FFI came up there too.


Yes. The problem was that the interpreters for both languages did not have a well-defined FFI. From a native library you could reach up into the interpreter and party over the AST to your heart's content. We couldn't in any practical sense emulate those data structures from the CLR which meant that native libraries couldn't run. That meant that existing scripting code that used those libraries would need to be rewritten to use an equivalent .NET library (e.g., regex). We naively thought that was what people would do and that turned out to be a mistake :(


> That meant that existing scripting code that used those libraries would need to be rewritten to use an equivalent .NET library. We naively thought that was what people would do...

AFAIK, that's what JRuby does but Java had (has?) a bigger community and is more platform independent. Microsoft was a different company back then and wasn't supported on Linux. Betting on IronRuby/IronPython meant you had to use Windows as your platform.


What do you mean by well defined FFI? Why couldn't calls to native libraries be marshaled?


Iirc They did something like this for c++ and it wasn’t pretty but I can’t remember details, it may have been mostly because of the unstable ABI.


I think it was in part because in 2010, Microsoft was already switching gears to Windows 8. A part of that was DevDiv getting sidelined by Windows. Windows was not a fan of .NET in general since Longhorn/Vista, but more importantly, the grand plan for Win8 involved the brand new application framework, WinRT. So when it came to VS 2012 and .NET 4.5, the emphasis was on WinRT interop - which is not a scenario where DLR is useful.

It's a good thing that DLR is still there, though. While undeniably niche, sometimes it makes things so much easier. For example, I've used it to support dynamic reloading of C# code in a game, for rapid prototyping of mods.


Our funding was gone by April 2009 IIRC, which was before Windows 7 shipped. Jim Hugunin and I shopped the team around and eventually landed in the Technical Computing org. The only thing that survived from that era was Python Tools for Visual Studio.


> respect developers' existing code investments

As a former Microsoftie myself, it saddens me that the company seems to have forgotten this.


For what it’s worth, I’m pretty sure we still have a little bit of iron ruby deep within some of our build tooling.


FWIW I remember IronRuby quite fondly. If not the outcome, the effort.


Does this mean a version of VB6 (classic ASP) could run on .NET Core (Linux)? That would finally liberate the language from the platform (IIS on Windows).


Classic ASP used VBScript, not VB6. These two are closely related but not quite the same.

And the answer really depends on what you mean by "run on". .NET already supports two-way COM interop, and it does work with DLR to handle stuff like IDispatch. But the COM code in that scenario is still native (or, in case of VBScript, intepreted by its Active Scripting provider).

Implementing VBScript, or even VB6, as a language running entirely on top of .NET, is certainly possible, although it would be somewhat awkward because the object model in VB pre-.NET was specifically designed around COM. You can port the templating engine, as well. But the real hurdle is not the language - it's all the APIs. ASP itself was pretty basic, but most web apps would also need to talk to the database - so now you need ADO. And then there are all the third-party components, most of which were proprietary binary blobs compiled for 32-bit Windows.

And, well, why? There are many better languages running on top of .NET these days, starting with VB.NET.


You're right. It's mostly nostalgia value :) Although I have been a hosting customer for a while now.

ES3 is nice, and short of prayer or sacrifice one was able to import Crockford's JSON library and Ramda. Server-side Node.js without npm (for better or worse).

With Babel, the idea was to use ES6 constructs and transpile it down to something IIS could run. Or Ruby, or anything else, and VBScript becomes kind of like the "machine language" description of the program.

VBScript is less painful with aspunit [1] and plenty of comisseration/resources with drian bamaged [2], aXe, and even [3].

It was amazing how much could get done with Microsoft SQL Server, a loop, and Response.Write(). Enough to build a company and to get acquired, even. Could have been a right place/right time thing for the owner.

  [1] https://github.com/rpeterclark/aspunit
  [2] blogsite
  [3] the person with the classic ASP book



Thank-you, that looks like the most feasible approach for VBScript: given existing code, run it through something that would convert it to .NET.

That reminds me: it actually happened. An existing VBScript parser was used with a custom C# transpiler to generate the port to .NET, in order to realize performance and maintenance benefits.


No. But in theory you could implement a wrapper, sure. But do yourself a favor, and just rewrite your application with a modern framework.


I agree, many benefits would be realized in a modern framework.

With so much functionality stored in stored procs, VBScript was essentially just looping records and writing things out to tables. But there was lots of business logic there too.

It felt like I had a purpose liberating "old database" logic into application code--the sky castles of Brooks, as it were--where it could be changed "more easily."

Given the app was ported to C#, I suppose the stored procs would be the last to go.

Recently, I learned Cloudflare had started with lots of the domain living in the db. So it is not an unfamiliar technique, but a pleasant surprise to hear of it (for me).


The business logic you may be able to convert to VB.net. It’s a bit weird but not worse than C#.


At least one product was developed in VB.NET. We tried to keep the current conventions when maintaining or extending it. It was mostly a wrapper around stored procs, so just a lot of Response.Writes.

For some reason, to me VBScript feels like I can whip up something really quickly, and VB.NET is "all the power of the CLR, with a bit of sugar to help transition to .NET."

VB.NET does feel a bit weird. Maybe some compromises to transition folks to .NET, and from there to C#.


ever heard of ActiveX? you know, arbitrary code installing and running in your browser on Windows and available to be scripted by javascript? like, instead of Java? sorry. I'm not solely responsible, but sorry, pretty responsible. we were young. code-signing as a means of validating origin was a great idea. though it needed additional infrastructure to prevent abuse and allow global revocation, and that wasn't perfectly thought through or executed. live and learn. :grinning-emoji:


Just like to say a big thank you for this. When ActiveX was no longer acceptable I wrote some desktop integration technology which replaced it for web apps with an http based background messaging protocol and activation via URL handler. This was sold to some large corporates. This made me a fuck load of money over the last decade or so. If you hadn't built ActiveX this wouldn't have been possible.

You wrote me a house.


If it helps, you guys are still way more popular than the folks who work on Teams.


I hate Teams so so much. It’s by far the worst piece of software on my Mac.


Teams started hogging my keyboard media keys last week just to play the ring tone twice when pressing play/pause. The media player won't react to these inputs anymore and I have to click with my mouse. Nice going, Teams devs.

It's the worst software in my PC by far. The only reason it is used by my company is because it's free with Office 365. Even ICQ was a better chat client in 2002.

I wonder if the Teams guys feel guilty about all the unnecessarily burned CPU time. Every time I'm compiling code my Teams experience degrades to a point where I wonder if I'm using a 133 MHz PC again and forgot to press the Turbo button.


> Teams started hogging my keyboard media keys last week just to play the ring tone twice when pressing play/pause. The media player won't react to these inputs anymore and I have to click with my mouse. Nice going, Teams devs.

Have also been experiencing this, call finishes so I press play to turn music back on, hear teams dialling tone. Annoyingly triggering


<3


ActiveX had been EVERYWHERE in South Korea and it was the main reason behind IE being used even into early 2010s.

It feels surreal to come across someone who was responsible for something I hated so much back then. But now I’m just fascinated for some reason. I’d buy you a drink if I could :p


Early 2010s? Up until about 5 years ago if you wanted to do any banking you’d be doing it through IE and about half a dozen “security” activex plugins.

Except on mobile, which is what everybody preferred for obvious reasons.


I actually miss the parts of ActiveX that weren't tied to the web. Like the ability to write UI widgets in different PLs and then integrate them in one app. Or the ability to embed arbitrary documents into other documents, complete with a near-seamless rendering and editing experience. It's too bad that the idea didn't catch on.


I'd like to thank you for your work. Without it, I might not have had the motivation to move completely to Linux.


Hi Nat! Long before I joined the company, I remember fondly the COR Design Review meetings from ... 1998(?) after you ruined the world with ActiveX :)


That was pretty cool. I worked for a project that used ActiveX controls on webpages, via a private site you could only access through a private dial in number. Worked great.


I almost forgive you and your team mates.


Mozilla hated ActiveX so much they cloned it with XP/COM.


So glad I entered the game as ActiveX was being phased out haha.


Moving Murfie to Pine Bluff has been a disaster. The entire situation has been bad for Murfie users and myself.

I'm coming up on 3 years now with very minimal progress on returning media to users and getting the site fully operational.

There are a lot of places where in hindsight I could have made better decisions. At every point the best course seemed to stand out, only to sour with unexpected obstacles.

At first I thought I could stay in the warehouse, but then the returns became too much to complete before I had to vacate. COVID struck, and delayed the container move. Then I couldn't use my warehouse, and couldn't unload the containers. This is delayed efforts to return media and restore files that would have been easy to replace if I could unload the containers. Meanwhile Murphy customers have been 3 years without their discs or access to their media. I feel terrible about it. Some have died without getting their media.

I'm still fighting to do the right thing. I've filed a lawsuit against the city for refusing to issue permits, and I'm constantly looking for solutions, but I feel like I've failed a lot of people.


I’ve followed a few of your posts on this and I’m sorry that things have worked out this way.

I think there were always some nay-sayers around in replies, but I appreciated what you were trying to do and despite the negative outcome am glad you at least gave it a shot.

Thanks for sharing your story on hn, I feel like I got to learn a lot vicariously.

There is a fantastic Australian film called “The Castle” (that you won’t regret watching!), but there’s a line from it where the main character is facing failure (and about to lose his entire neighbourhood)

“I don’t know what the opposite of letting someone down is. But you’ve done the opposite.” T Thanks for fighting to do the right thing. The world needs more people like you.


I just looked at your twitter, the amount of theft you have to deal with is just insane... hopefully they get those permits sorted for you soon.


You post videos to YouTube showing vile slumlord behaviors. Pretty pathetic


At a previous employer I helped build an employee monitoring system that was essentially a keylogger and would also take screenshots periodically and on every click. All this data was piped into our cloud and could be used by middle management for granular monitoring and evaluation.

The whole product was positioned for process optimisation but I know for a fact that it was used to monitor and eventually reduce headcount at multiple customers. I still feel gross just thinking about it but the company is supposedly making good money off of it given that they just announced a new version.


I'm too forgetful to log and fill in time sheets reliably, so I started building a tool do it for me automatically and retroactively (so I don't have to press start/stop on some timer, or even remember to run the software ahead of time) based on data gathered from the system, like file timestamps, browsing history, syslogs, etc.

I got deep into gathering all the data and ML analysis, to the point I started brushing with digital forensics. I got spooked and abandoned it when I've realized I can never release such tool without it being abused for surveillance ;(


No need to use actual surveillance and machine learning to fill out time sheets.

I had a friend Josh who worked at Los Alamos National Labs, who wrote a script that automatically filled out his timesheet with plausible looking working hours and tasks, an emailed it in at the right time every month.

One month his boss was chatting with his assistant about how happy he was with how promptly and efficiently Josh always sent in his time sheets, saying what a good worker he was, and that he just received his timesheet on time that day.

The assistant explained to the boss that Josh was actually away on vacation that week.

So when Josh finally got back from vacation, his boss summoned him into his office for an awkward sit down talk.

And insisted that Josh set him up with the same system to automatically fill out and send in his time sheet, too!


https://arbtt.nomeata.de/ has been around for quite a while. Never heard about it being abused for surveillance. Hm, but was it?


hey i did a not super deep version of this but it would hit toggl api to create my time sheet for me. i abandoned it after having to use lots of different software constantly, but i considered releasing it and didnt for same reason


Process optimization and reducing headcount are more or less the same thing. It's about reducing the amount of work first. Only if you manage to find more customers to keep work at the same level you can avoid reducing headcount.


Not necessarily. "Optimising" a process doesn't always mean increasing per-operator throughput with the goal of reducing the amount of operators required to keep the lights on.

You can optimise for many other things such as on-time delivery in production processes or duplicate/late/early payments of invoices just to name some straightforward examples. In the former case you're optimising the process with the goal of increasing customer satisfaction and in the latter you're optimising many things such as cash flow and working-capital while balancing early payment discounts and late payment penalties.


I built a tool for an influencer marketing agency that would log which instagram pages they visited. This info could be used for machine learning and discovering new influencers which was a major problem for the agency.

The first changes I made to the poc was making the ability to identify which employees did what and when so hard that if they asked us to do it, it would either not be possible or cost so much that it wouldn’t be feasible.


Maybe it's time to write a guide for employees on how to detect that this is running.


The Qatar slave helmet.

My company built the smart helmet used to track Qatar’s army of abused workers. The claim is GPS and accelerometer where used to track if a worker stopped moving or fell due to an accident; the geo fencing was supposedly for tracking if they had enough workers in an area for the job.

The reality is the helmets where/are used as mass surveillance tech to ensure workers are continuously active and never leave their assigned areas for petty things like going to the bathroom or finding shade to prevent heat stroke.


This comment is now one of the top hits on Google for "Qatar slave helmet". And it's the only hit when I put quotes around the phrase to force an exact match.

If this is real you should get in touch with investigative journalists, e.g. ProPublica.

("Get in touch with investigative journalists" probably applies to a bunch of the people posting in this thread.)


Actually, I want to think more about the theory of change here. It's conceivable that a ProPublica article could actually make the situation worse, e.g. by advertising the existence of the helmet to other abusive employers, or causing abusive employers to rework their labor practices in a way that looks better to the press but is actually worse.

If the company that makes the helmet is based in a country with good government, maybe a reasonable regulation would be to score workers on productivity, but place limitations on the scoring somehow. E.g. the helmet stops showing the worker's location when they've spent too much time in the heat. Or the helmet estimates the fraction of the workday that the worker spent offsite, but all workers who spend 20% or less of their time offsite are given a score of 20%, so the employer can't force the worker to spend more than 80% of their time onsite. I don't think productivity scoring has to be dystopian in principle; generally speaking it seems reasonable to pay people according to how productive they are.

You could also argue for regulating the helmet out of existence, but I assume in that case it would just be built somewhere else with lax regulations. So the trick is to put in regulation that creates a humane experience for workers, but not so much that Qatar is incentivized to contract the development of a new, more draconian helmet in a different locale. I don't think this should be too hard, because creating a humane experience for workers should also help productivity to a degree.

There's also a security dimension here -- you don't want abusive employers to be able to circumvent these limitations. So you could make it so the helmet only runs code which has been signed with the company's private key, or have a lot of the functionality server-side.


Another possibility is to have something like ITAR, where you can't export to certain countries.


Perhaps wrong impact in short term, but gains in long term?


Presumably these sinners: https://www.wakecap.com/


OP i am investigative tech journalist. i would love to talk about this. my dms are open and my signal number is here: https://twitter.com/alibreland @hannon22


How many people do you think worked on the project? If I were the OP, I'd be more worried about getting the Khashoggi treatment for speaking out.


What would that accomplish?


Amp up the sort of disdain that might, for example, prevent international organizations from granting legitimacy to these regimes. Things like FIFA, as a completely random example.


I think it's clear that FIFA gives anti-fucks about slave labor.


Sure, but FIFA cares about money and at least some people care about not giving their money to deeply unethical entities. That’s what it’s meant to accomplish.


Bringing further scrutiny to similar practices there and elsewhere.


You need to ask what it accomplishes to leave it in the dark.


oh man, that was rough. Your story reminded a group of people who should report here — The "Green QR code" app that Chinese government deploys in the name of COVID to track and surveillance people. I even saw a tiktok (douyin) video that showcase one of the developer, praising how young they are and how handsome they are. The comment section of the video is a different scene entirely. But the same time, if they didn't develop it, someone else will. So it is hard to put the blame on them specifically.


To add something related someone I know worked for a firm that was tasked with identifying regime critics for a gulf state. It wasn't clear what they were going to do with the list until they started disappearing.


What is the official name of that product?




Just wow... from their FAQ

>How do workers benefit from WakeCap?

>Workers’ location and activity is identified within the boundaries of a project for the greater good of all involved within the project and to ensure every worker is safe especially when it comes to fall from height detection, ambient temperature extremes, and confined space crowd control, and more. We found that workers responded positively to the technology.

>Do you have proof that it works?

>WakeCap connected 15+ job sites with 2000+ workers per project...Predominately mega construction projects in Dubai and Saudi Arabia.


The website looks really slick, but seen in the light of this thread it's disturbingly dystopian. First step towards Cybermen: https://en.wikipedia.org/wiki/Cyberman

"This won't stop you feeling pain, but it will stop you caring about it.".


This article lists a few products in that space:

https://www.conexpoconagg.com/news/improving-jobsite-product...


I think you win :(.


Wow, 2 posts in and we may have a winner already! That’s really, really bad. I have a friend (well, not anymore) who worked for Palantir for a long time and was very proud of it, and I was gonna ask him if he regrets anything, but this is a whole other level.


Eh... Was it really that hard to guess what they're gonna do with it? How long ago was that? It's not like their abuse of [foreign] workers is anything new.


> How long ago was that? It's not like their abuse of [foreign] workers is anything new.

It's also not like it's common knowledge. Myself I only learned about it couple years ago, here on HN, because of some comment threads that segued into discussions about Qatar construction projects.

Point being, without knowing anything about OP, including where are they from, you can't assume they had a chance of knowing this before taking the job, or even learning about it on the job. The world is awash with news stories about everything - often you learn about a huge tragedy only when you chance on a story about it.


I expect it to be very common knowledge, but possibly it's only known in Europe, as we are much closer to the Middle East and the football angle is more relevant.

Here's several articles from 2017, for example.

https://www.theguardian.com/world/qatar?page=19


> Here's several articles from 2017, for example.

That's around the time I learned about it. Notably, this is couple years after the poster worked on their project.


7-8 years ago. I was a lot more naive back then and knew very little about any of the Middle East petro states.


[flagged]


Someone shares an insightful story that others can learn from and your first thought is to shame them, and then without knowing the first thing about them or what else they've done with their life, you tell them the best way to atone for their sins?

This thread is such a great opportunity for learning and curiosity and yet you choose to see it only as an opportunity for moral grandstanding, possibly scaring away other people with interesting stories to tell. Why are you on this website?


> IMHO it'd be nice if you donated some of your earnings to a human rights focused NGO operating in the area.

Is there somehow a difference in impact depending on who does this? Maybe if you chipped in, the Qatar slave workers would be even better off. Or is this just about guilt-tripping strangers for their past? :-)


My free funds are currently 100% dedicated to helping Ukraine and will be until Russia falls back to 1991 borders.


Sounds like you’ll never have free funds again.


That’s quite condescending.


[flagged]


>Now they should try to make it right - donating money to people trying to fix the situation is a good way to do that.

You're assuming that this individual hasn't already done something to atone (which goes against HN's rule to assume best intentions). That, coupled with a tone that comes off as though you know better than this person, basically round out the definition of "condescending".


I am not assuming anything. I made a suggestion, nothing else. They're free to do nothing if they feel like they already did enough. You're assuming I'm assuming <...>, which goes against the HN rule to assume best intentions.


Donating money rarely fixes problems. What it does is create organizations that draw their lifeblood from the continued existence of the problem, and continued donations of money.


condescending: having or showing an attitude of patronizing superiority.


I don't see anything patronizing or showing superiority in what I wrote. I am saying this as a peer, not as a superior.

It's kinda weird to expect people not to make mistakes such as this if nobody tells them it's wrong. And it's normal for people to tell other people they do bad stuff if they do.


>I don't see anything patronizing or showing superiority in what I wrote. I am saying this as a peer, not as a superior.

And you have four different peers who have responded to you suggesting that you are being condescending. Take a step back and ask why - intention and tone are two different things, and if you get the latter wrong then we will misunderstand the former.

>It's kinda weird to expect people not to make mistakes such as this if nobody tells them it's wrong. And it's normal for people to tell other people they do bad stuff if they do.

Just let 'em be. You're not a hero. They admitted what they did, and why they know it's wrong. You're not doing anything other than going, "Yep, you sure did fuck up."


> Take a step back and ask why - intention and tone are two different things, and if you get the latter wrong then we will misunderstand the former.

Good point, OK.


So you’re assuming that you know better than them what they’ve done wrong, that you have to tell them, and how they should make up for it. That’s how your tone is coming across.


> you know better than them what they’ve done wrong

Hardly, since I just agreed with what they said. I suggested what IMHO is a good way to make up for it. Nothing else.

> that you have to tell them

Sure, I have to. I think everyone should say something in cases like this.


If you don’t have something nice to say, don’t say anything at all.


Was I supposed to say "great job" to this? Lol.


'not saying anything at all' wasn't a rhetorical suggestion


Nah, I'm really not the kind of person that says nothing to this.


Pretty sad that you feel the need to rub salt into a wound.


Nah I don't think that's what I did. As another commenter said maybe that's how it came out (sorry), but not the intention.


Still seems unnecessarily condescending, but I've been guilty of that often enough that I am not going to hold that against you.


This technology may sound bad but it helpes enable events like the world cup that entertain many around the world


Genuinely can't tell if you're joking or not but it doesn't matter. Either way this is basically a paraphrase of one of the most astute dril tweets of all time:

"drunk driving may kill a lot of people, but it also helps a lot of people get to work on time, so, it;s impossible to say if its bad or not,"


The world cup doesn't matter.


And just think of all the cotton the plantations grew! Surely that justifies it. /s


I went to college for a number of years in electrical engineering technology. I started working even before I finished my degree. My first gig was PLC programming material handling systems for the pharmaceutical industry. It made sense, in order to maintain safety and a sterile environment it’s much better to have a stainless steel robot handle pails, jars, drums, etc of pills in a clean room instead of people touching them.

Next up was a table to help workers move large objects with hydraulic movement and pins to hold the material in place via compressed air activation, and all the associated limit switches electronic eyes etc. cool enough.

Then the big leagues, a 300k (17 years ago) A-B (Allen-Bradley) robotic arm in an auto parts plant. Day 3 inside / outside / on top of the cage, I become aware of a number of people standing behind the yellow line staring at me, later cursing me, one threw some crumpled paper at me… I’m asking the plant foreman wtf is with those guys. He says well as soon as your robot works they’re all laid off. I left that day and never went back. Someone finished programming and set up I’m sure, I could care less, I didn’t. I thought one day I’ll get stabbed in the parking lot.

I realize that my automation didn’t take jobs away from society, I didn’t do anything evil. Those jobs would just move and hopefully spawn better jobs in the community (medium to long term). But in that small short term microeconomic moment, there were real consequences, and I was the face of them. I was not happy, I changed careers that exact day.


I think I'd feel a lot better about job-taking automation if governments would require that companies adopting automation pay to retrain workers, including salary (since you still have to go on living while you're learning a new job skill). I expect this would basically kill any company's desire to automate (unless it's financially worth it in a relatively short amount of time, which I suspect wouldn't be often), so it'd probably make sense for the government to subsidize this somehow. Or maybe the government should just administer this kind of program itself, since I imagine companies would try to abuse it.

It just seems obvious to me that society benefits when people don't have to do automate-able jobs anymore, and can retrain to do something more interesting/useful without simultaneously having to deal with crippling financial insecurity. My version of utopia is one where there's so much abundance and automation that no one has to work at all if they don't want to, but can still live incredibly comfortable -- extravagant, even -- lives.

Of course, some people will still fight tooth and nail to keep doing what they're doing, regardless of how obsolete it is, and regardless of what incentives and help they're given to learn to do something new. But the least we could do would be to help those who are more forward-thinking.


Many regions offer free community college as a way to handle this. Often, community colleges will partner with local manufacturing companies to develop training plans that give those people new technical skills (win for that person) and training on the systems used at the manufacturing plant (win for the company).

I think this is the best way as its solved at the local levels which means the solution is customized for the local area instead of a one-size fits all solution that the federal government would have to create.


> My version of utopia is one where there's so much abundance and automation that no one has to work at all if they don't want to, but can still live incredibly comfortable -- extravagant, even -- lives.

Or, as we call it, Fully Automated Luxury Gay Space Communism, or FALGSC.


Which is either a very long, or a rather unpronounceable, way to spell "Star Trek".


If that happened today you'd be famous online.

Anyway, I think automation and its consequences are much more complex these days and beyond the understanding of any non-technical / "not in the know" person. People used to know that "robots would take our jobs" but now that's not always true. The people writing completely "harmless" software are likely responsible for many, many bad things that would be difficult to even assign the blame for.


My first job was for a sketchy knock off autoparts company that was a glorified drop shipper. I built a dozen websites and a database of a few million rows. I was proud of it at the time.

Then I started reading customer support emails, took a few phone calls from disgruntled customers, and it turns out the company was just cycling cash. Would charge 100 orders and float the cash as it trickled out refunds.

I ended up leaving, and the company sold for a couple million a year later. I was left with a bad taste for e-commerce that has only recently went away.


Was that just a very high return rate or an outright scam? If the latter how could they sell for anything?


it was half way an outright scam, but we built a database of parts and their suppliers for an otherwise unprovided for market in the US. That database alone was worth the cost (the new place got rid of the company and just used the database + domain names.)


I decided to build my own kitchen cabinets from scratch. I only had my small townhouse in which to build them. They eventually came out great, but it took 2 years to complete them.

The lesson I learned is to make it easier to abort large projects. Even if it delayed me by 6 months, I should have found a rentable workshop.


Yes, having built a ton of cabinet doors before for a similar project, I realized the allure of the cost savings (the raw materials are so cheap!) blinds you to the massive amounts of labor involved.


(One of) the old woodworking mottos; why buy it when you can build it for 3x the cost and 10x the time?


Hehe, yep. It's taken me about 10 months to make some wall plaques. I had some beautiful black locust heartwood from cutting down trees for a friend. The worst part was not having a band saw or similar to cut them into boards. They were small, so a chainsaw jig didn't really make sense. I ended up splitting them down the grain and building a jig for a router to trim them flat. Probably about 1 of 3-4 tools/jigs/etc that I had to build to get them done. Just working on a nice oil finish now.

Although to be fair, I have no idea what something like that would have cost since I've never seen heartwood this dark before.


Only 10x?


I won't cut parts for beehive frames again. What a pain using 2x4s, and slightly dangerous with such small pieces.


Completely an aside, but consider using hand tools.


Not for making 100+ frames.


It's an easy decision also by being cheaper to buy the precut from places like brushy mountain.


It was actually much cheaper to use 2x4s (back then anyways). You could get about 10 frames out a $3 2x4.

Also, I made frames for a warre hive. Those are extremely expensive if you can find them.


I don't know for certain, but when I was an undergrad I was helping a PhD student with his thesis around text classification, mostly grunt work, speeding up some hastily thrown together algorithms, etc. He said it was for his company, which was good enough for me; I was getting experience, he was friendly and polite and we enjoyed each other's company and mutual learning.

I found out years later (this was in the mid 1980's), that his company was "The Company"; the US CIA.

So I don't think my shitty little pieces of C code written on a Windows box ever made it into any US Gov't system parsing Internet mails/chats/etc, but it could have.


Built an e-commerce site in partnership with a close friend and someone he partnered with that sold smoked fish. My friend had actually been paid by his partner in the past and partner claimed to have insider relationships with a Canadian fishery and cannery.

After a couple of months of weekends we launched the site. Third partner was to take care of fulfillment because of their connections.

A couple of months after that, my mother in law contacts me and asks when her shipment will arrive. Turns out she liked what was on offer and wanted to be supportive.

My friend and I got the fish guy on the phone. He said he had to take a day job and was having trouble doing the fulfilling. I said ok, refund my MIL and I’m going to turn all the “add to cart” buttons into “email us” buttons and when you let me know you’ve got a plan to fulfill orders, even if just once a week, let me know and we’ll put the site back online.

My MIL never got her refund. Neither of us have heard from the fish guy again.


Cool lesson. Your MIL took one for the team. Best to test supplier capacity before launching.


Seems fishy in retrospect.


> My MIL never got her refund

Sorry man, but that one's on you.


Is it? OP acted in good faith, had reason to believe the things were on the level, and reacted when given new information. What fault do you lay at their feet?


If the business I start takes money from my mother in law for an order, and someone within the business steals the money, I'm paying her back out of my own pocket if necessary.

I'm not saying it's his fault that it got stolen, I'm saying it's his fault that his MIL never got reimbursed.


I was loathe to take direct financial responsibility for anyone’s loss due to the potential legal ramifications. Suffice it to say I have made it up to her in other ways.


I won't say much more here but this second question caught my eye, because the answer is the same as for your earlier question. Some impactful work I am intensely proud of also became a thing that haunts me (or at least challenged my idea of "doing good").

Think about dual-use. You may never really know quite how your creations pan out. Not quite in the league of Mikhail Kalashnikov, but it piqued my now intense interest in tech ethics.

EDIT: damnit seems like everybody here is in the same boat. So mine was a gesture detection for medical robotics control that was repurposed for look-and-lock air combat (fire and forget a2a missile. An important caveat is I'm not even a "pacifist" and went in eye's wide open with a defence firm. I just wish they'd told me more up front that this was "generic tech" I was developing.


Got me curious how often firms will purposefully disguise a military project as an innocent challenge solving their problem they'll repurpose later on.


I once saw a very good talk on this exact subject, by someone who was in an incredibly similar situation as that commenter was. IIRC their bit of tech was a tool to triangulate a fairly specific location of a device connected to a wifi network (this was at least a decade ago).

As I remember it the point was basically: there are a lot of valid applications for this concept, but ultimately only one that a defense contractor is really going to care about. If that's who you're making it for they will use it to kill people eventually, even if that's not the plan right now. But also that probably is the plan right now, don't be naive.


This sounds like Caleb Thompson's "Don't Get Distracted" talk.

- https://calebhearth.com/dont-get-distracted

- https://www.youtube.com/watch?v=cz7r_gZhYyA


How about have children play a "game" so they help you commit xenocide? [Ender's Game]


Do you mean the missile would lock on to what the pilot is looking at when it's fired, or it would change target inflight if the pilot looks elsewhere?

I'm intrigued by how missiles work. I bought this [0] book to learn about them but I've forgotten math.

[0] https://www.amazon.co.uk/Tactical-Strategic-Missile-Guidance...


The former. The clue is in the "fire and forget" bit. Not that I know much about it. These things are well compartmentalised - as I found out. :)


That’s quite a distance between the two dual uses.


Worked for a YC some time back. It was quite a ride, but our seed round was just about gone and we had zero product-market fit after some time. It was ran a bit like a cult.

As we scrambled to create something of value and keep the lights on, I (unintentionally) built and highly optimized a free-trial funnel for a Saas service according to a "gym-membership" model; ie, our entire revenue stream depended upon tricking people into submitting their credit cards and charging them for months when they forget to cancel (or couldn't due to the complicated cancellation funnel). Once someone hit gym-membership status, we would pause all emails, reminders, etc (on CEOs design) so they would forget about us and let their card be charged for years. People at our company would fight against these tactics, but leadership's only focus was AB testing the hell out of the funnel to continually increase subscriptions and impede cancellations.

To combat the inevitable high charge back rates we eventually encountered, our staff would purchase pre-paid gift cards at corner markets and we programmatically submitted multitudes of tiny transactions through out the day to skew the chargeback rate to an acceptable place; this was the CEOs idea again, rejecting our ideas of selling things people actually wanted.

It was a house of cards, but the success of monetization was leveraged to land further contracts with governments (that we could never fulfill) until it all came crashing down. I left long before then on principle.

The entire venture was revealed to be a complete mess from day 0. From the start, this outfit threw its entire batch seed into google ads to drive "users" and feign growth to pump up the valuation on demo day, landing a couple million in investment for something that had no real value. Hm. It seems that a system was crafted here to pick winners and losers, and the company responded by gaming it in every way they could.


To a small or otherwise degree, all of FAANG do some of the non-cancellable subscription smartness.


Built an aircraft-mounted camera gimbal pointing system that I thought was supposed to be used by energy companies to look for power poles but was also sold to US Border Patrol to hunt down immigrants. Not my finest hour.


I don’t think detecting illegal border crossings is inherently bad. A lot of stuff Surrounding it certainly is but that part in particular id be tempted to call neutral


This comment lacks basic understanding of a human as an inherent whole of attitudes and values, and how these relate to actions, and in particular to the cognitive dissonance emerging from past actions.


[flagged]


You are mistaken: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim...

> Any alien who is physically present in the United States or who arrives in the United States (whether or not at a designated port of arrival and including an alien who is brought to the United States after having been interdicted in international or United States waters), irrespective of such alien's status, may apply for asylum in accordance with this section or, where applicable, section 1225(b) of this title.

US law explicitly allows crossing the border not at a point of entry and without visa for the purpose of applying for political asylum.


That says you can apply for asylum regardless of entering illegally (or to use the term of art, EWI/entered without inspection). You can also apply if you are in removal proceedings for some other reason, ex. illegal work or false statements.

In and of itself, nothing in that statue allows or removes criminal or monetary penalties for the act of crossing illegally itself. There are cases where people were convicted of the same despite a successful grant of defensive asylum. (https://repository.uchastings.edu/cgi/viewcontent.cgi?articl...)


Seems the distinction wouldn't improve OP's outlook besides.


You have an apt username, at least.


A ticketing company was experimenting with BLE beacons to trigger things like seat upgrades and coupons when people walked by certain things in a venue… or at least that’s what they said it would be used for.

Instead they covered LA Live and surrounding area with them and then just sold that data to… well I’m not sure who since I left shortly after they did that.

The justification was “but we put it in the TOS and Privacy Policy”.


How did the BLE beacons track people? A phone app?


Yes the ticketing app that people were required to use to get into the events.


>Yes the ticketing app that people were required to use to get into the events.

Well, at least Android 12 has granular Bluetooth permissions.

While the majority of tickets at LA Live are sold by one company currently, there are others, so it's impossible to know which specific company you're talking about.

On a completely unrelated note, there was a big thing surrounding privacy concerns with AXS' app a couple years ago.[0][1]

Clearly those claims were overblown. Surely AXS would never blanket an area with Bluetooth Low Energy (BLE) beacons and invade users' privacy like that. I refuse to believe AXS would make an app virtually mandatory and then violate users' privacy using physical Bluetooth beacons. Say it ain't so.

Oh, almost forgot: fuck AXS.

[0] https://us.forums.blizzard.com/en/wow/t/axs-spyware-claim-de...

[1] https://us.forums.blizzard.com/en/overwatch/t/axs-isnt-spywa...


This was maybe 8 or so years ago so I'm not sure what else this unnamed ticketing company added since... but permissions were pretty lax at that point and had JUST started to tighten up.

Oh I forgot to mention that Apple rejected the iPhone version of the app at first because we didn't make it clear enough that we were tracking their locations like this. Our head of product at the time just called someone up at Apple and it got approved with no changes. It all stunk.


Nice. Hold on a sec while I uninstall all the random apps I have left over on my phone...


We're at the point where the lights in a store can be used to track you: https://www.usa.lighting.philips.com/systems/lighting-system...


On Android, the apps won't track you through bluetooth if they don't ask for the location permission.


A service to find CSAM online.

It worked well enough, then quickly got to a state of overwhelming the agency responsible for following up. That's depressing enough, but it was then repurposed and unleashed as a way to find copyrighted content for major studios, which meant it went from something doing good to something just annoying people with cease and desist notices.


Honestly… sounds like your work is doing a lot of good and some at-worst-neutral in the world. Hope you’re not beating yourself up over it.


I've coded the firmware for a CAN-based communication bus for a medical device with lots of different boards talking to each other. This same company had a war industry department and they used this code in a missile project. It left a weird taste in my mouth.

Btw, they got an early version that had a memory leak, and when I went to warn them, they just said: "It's okay! It's just going to run for about 20 seconds!"


The ultimate garbage collection.


A missile needing to dynamically allocate memory is already a ridiculous idea.


There was computer vision stuff in the missile's head (for target tracking), which is where the code was used.


That is a good reason to need a non trivial amount of memory, but I don't think it means there needs to be dynamically allocated memory. That basically implies that there is something unknown ahead of time, but specs, limitations, resolution fps, etc. should all be static.


I think it was a slab allocator made in house. It was a long time ago.


Did you post about this previously? I feel like I've read that part with the memory leak before.


I favorited this post some time ago:

https://news.ycombinator.com/item?id=14233542

The Google Groups page is currently in a redirect loop, but if that gets sorted out, you may find the story that you're remembering.



Can't remember, so if I did, it was a long time ago. This story happened around 2010.


I wrote the GNC firmware for a loitering munition and it's... complicated. I am both very proud of and saddened by it. I'm also realizing that it could be said to be the most "impactful" thing I've built.


Literally impactful.

If any software needed a memory leak it's this.


Actually, I strongly disagree. Ideally, it would not be in the air in the first place. Failing that, once it's in the air, I personally prefer that it go to the intended target rather than just kind of wherever it ends up.


"Crash" is not something you want an aerial explosive to do.


beats fuzing bus for a plain ol gbu


I built a system for distributing and collecting homework assignments, and the assignments themselves were distributed with automated tests. Students would have instant feedback on their homework with clear tests and point assignments. Great idea, right? A high level required course of 40+ students could be scheduled, collected, and graded all in under an hour.

Not to mention the nightmare of early GitHub for Education used in the first semester (all forks mutually visible, what were they thinking!?), a genuinely shocking percentage of the class tried to cheat their way around it, thinking that I wasn't looking. Cheating felt like it had significantly increased the moment they thought we weren't looking. I expected some cheating, sure, but it really felt like it went higher and stayed higher than before.

The course has moved to others (who I have nothing but respect for), but I hear it is "notorious" for cheating. I was so proud of this system, and the distribution/collection systems are still used by a department, but the experience has really left me with a bad taste in my mouth wrt anything related to automated grading.


I had almost this exact same experience when teaching an algorithms course. I had to stop giving automated feedback when I had a student turn my own code back into me and then lie to my face when confronted about it. It only took 3 weeks. The worst part was how bad I felt for taking something useful away from the students who weren't abusing it.


I used to work for a company whose product was a specialized proxy server aimed at telco companies. The thesis was that telco companies (at the time, this was quite some time ago) were heavy users of telnet and ssh to administer network devices, and needed some tooling to help manage them all. So our device would proxy telnet and ssh connections, and do things like looking at the hostname and the login prompt and automatically submit the correct credentials, and then further do things like blocking certain commands from being run, providing pre-configured scripts for certain tasks, yadda yadda yadda.

Now that's all fine and good as such. I had no qualms about working on that stuff. But then somebody introduced the idea of capturing frequent screen-grabs (essentially video, albeit at a fairly low frame rate) of the user's desktop as they used the system. We worked out a way to do some weird windows network driver shenanigans to make sure the recording started when an outgoing connection was made to certain destinations, and then streamed the video to a server where it was stored.

The nominal purpose for this was advertised as "training" with a side-dish of "compliance enforcement", and probably in some highly regulated industries people will (and do?) accept this sort of thing. But it never sat well with me, and I felt a bit queasy about working on that aspect of the product.


I built a distraction free writing app in 2012 to help me write, and it has been the single greatest distraction of all. it was successful, becoming the number one writing app on Windows store for years. I now have thousands of users, and it makes a tiny bit of money each month, and supporting and fixing bugs takes up most of my spare time. I have to date not managed to finish more than a sketchy first draft of a novel using the software I wrote to help me write.


Do you regret building it because of the effect on your spare time or because you didn't manage to use it for its intended purpose?


Actually, to be honest, I don't know if I regret building it, really. Sometimes I find it comical that it has been such an enormous distraction, but it's also been very educational and rewarding, and probably much more of a success than my writing would ever have been.

I do regret not managing my time more effectively. I wish I had dedicated more of my time to writing. But in truth, I probably used bug-fixing as an "out" when I had writers block, or was unhappy with what I was working on. Because of that I improved my coding skills, but my writing skill stagnated, and even regressed a little.


Seems like they're the same thing, aren't they?


Detonators for cluster bombs ... The US wasn't really part of any conflicts at the time but seeing them on the beaches in Libya changed my view of war dramatically.


an Android watchface creator app...

I regret building it, but not for any ethical reasons, except for maybe that it's become nothing but corporate ads.

My real reason for regret is just the entire process that happened after it became successful. It took off and was over 50k DAUs ~5 months after I launched it. I tried supporting it the best I could, and had aspirations for the future of it, but I was young and dumb. I got caught up on feedback, took it too personally and started having trouble in my personal life due to it.

I ended up selling it to another company for far less than what it was worth, even while I had 2 competing bids because I let one of them get to me emotionally at the time. I also agreed to continue working with them on it, at what I found out later was vastly underpaid, to the tune of being ~10k below the CA minimum for a salaried SWE. Our time together lasted less than 9 months for a myriad of reasons.

I regret it, mainly because I always look back and think of what could have become if I had the strength to continue it solo, or had spent the time to look for a better partner to carry my vision forward. Instead now, you can get your latest [insert corporate media here] watchface from it for a mere $4.99/mo.


Hey man, I know this might seem patronizing, but I'm proud of you for recognizing what happened and why, and I hope you can give yourself some compassion (especially because well, you were young. It happens).

You've learned from it, and it shouldn't be a continued weight on your shoulders. You did nothing wrong.


Nah, not patronizing at all imo.

I look back at it like I assume a lot of people would if they got scammed out of money. You gotta learn from mistakes in the past, and I think that combined with some other issues soon after it have led me to be a lot more thoughtful with large impact decisions.

It had some good upsides, like the fact it launched me into my SWE career ahead of schedule (i.e. No college degree). But that comes with it's own issues, like companies just flat rejecting me due to it.


Early in my career I had a job at a small startup with about 3 other full time devs, including the founder. All of us were more or less clueless.

Project management consisted of the founder telling us what to implement. One day he told me to build something that would help us track the (many) exceptions in the app.

I went on to build a terrible alternative to SaaS bug trackers, which already existed at that time, but no one knew about/had the skills to find out.


A system for tracking email marketing recipients. That is, bounce rates, open rates, recurrence and deduplication of email addresses.

It dawned on me 10-20 hours into the gig that these customers were professional spammers, and that I was helping them avoid being blacklisted.

I scrapped everything I’d made and eventually paid back my fee.


I'm biased as someone who used to work in email marketing, but I'd say there are some important differences between respectable email marketing and spam:

* Respectable email marketing = you have a pre-existing relationship (e.g. account on their website); spam = they found your address somewhere

* Respectable email marketing = there's an unsubscribe link that works; spam = no unsubscribe link or it doesn't work

(Could very well be that the people you're working with were actually spammers)


> Could very well be that the people you're working with were actually spammers

Let’s see...

1. They purchased lists of emails that they could send to.

2. They made landing pages that lied about the advertised product (e.g. an iPhone version that doesn’t exist yet).

3. There were unsubscribe links, but guess what clicking it did? Increase the open rate.

4. When they hired people and trained them to set up new VPS’es, they asked that they use their own credit cards and reimbursed them through salary.

5. They discussed purchasing fake credit cards.

6. They bribed employees at large email distribution services online tens of thousands of dollars to avoid getting flagged.

I took some time to pay them back because I was broke, and as a result, they put my phone number in their spam lists. I mean, content marketing lists.

Could very well be that the people I was working with were actually spammers.


Yep!


Spam is any unsolicited and unwanted email. A pre-existing relationship does not automatically mean that I want your emails.


It also doesn't mean that I consented to receiving marketing emails when I overlooked a checkbox at the bottom of your order/checkout page when I purchased something. Ethical companies will make this an opt-in choice, not opt-out.


Agreed; this is gross. If I've signed up for an account on someone's site, all I'm implicitly consenting to are transactional emails related to the service (or product, if there is one). Things like shipping notifications and billing reminders and such.

And if you at least have a checkbox for consent for marketing emails during signup, it should be unchecked by default. I'm so tired of this crap.


s/respectable/legal/g


A Linux computer for my grandma. The correct tech answer when doing things for regular people is standard tech that lots of people use.


Actually true but for another reason ... When my relatives ask for help on Windows I apologize and tell them I'm a Linux user.


Ah I just invoiced my ex wife's uncle last time I was expected to help for free at my usual hourly rate. No one asks me for help now.


It depends. Many people just need a web browser and an OS they can't break. Google discovered that and mainstreamed it.

A non-expert trying to use Windows on the internet in three early 2000s had a near 100% chance of filling it with malware.


When I was using Windows around 2012, when I had a very low amount of computer experience, I would commonly wipe and reinstall Windows due to how often it got filled with crap.

Now I have a couple Windows installs that have been going strong for years. One of 'em has shady proprietary Chinese factory flashing tools on it, and a full development environment for TI graphing calculators. That was my old computer; I don't use either of those tools anymore so my new computer doesn't have them.


I've found that the correct answer for non-technical people is a Chromebook. They're the most bullet (or idiot, depending on how much you like them) proof option.


A pop up builder for WordPress.

Received a lot of requests for this from my existing SaaS customers then started out as a corner-only slide-in modal.

Eventually I caved and added a centered modal… It’s currently in active use on at least 30.000 websites.

I’m sorry for making browsing the web suck a little more instead of less.


Have a long unique classname on it and submit that for being blocked by major AdBlock lists.


I'm not sure I've ever built something that I'm unhappy about the ethics of, aside from participating in a few products I believe were completely pointless.

Most of my big regrets were bad technical decisions that worsened the quality. I'm sure every dev has stories like that but for a long time my mistakes followed a pattern.

Often because I didn't follow best practices and reinvented a wheel, without being aware of how much time the project would take up.

A lot of my biggest regrets were personal projects, they almost all were major time drains that I would say worsened my life. My expectations were too high and the disappointment was far larger than any enjoyment.

I am still working on selling things on eBay and decluttering stuff bought for DIY projects.

Now I constantly advocate for best practices. A lot of my biggest contributions come from finding ways to make things work without adding more custom software.

There's just so much good software out there, often that already does exactly what you want.


Created a sports news site. I was very proud of it - in the mid-90s it was fully internationalized for European audiences, and could deliver minute by minute updates. Mostly it was for journalists who would then relay the info over their media, but people on the internet could also use it.

It was commissioned by tobacco firms who had sponsored those teams.

Later on some regulators decided that this could potentially market tobacco to children and it was going to be shut down. My boss joked that we should just remake the site but never mention the names of the teams, only just use their colors. The sponsors thought this was an ingenious idea and we actually did it.

A lot of denial from people working on this project. I heard my product manager and the CEO talking to each other privately about whether this increased tobacco use and they both strongly agreed that it couldn’t, they repeated the common lie told by tobacco companies at the time that it just encouraged people to switch brands.


A WooCommerce shop I built in a couple of days ended up making millions of dollars for the catholic church... I learned to research who I'm working for


oh tell us more details on that story :-)


Well, the really tragic thing was that I started working in nonprofit web design specifically because I wanted to work for ethical, value-driven clients. And this was true much of the time.

But the agency I was working for was so busy, and we were cranking out code at such a rate, that after a while I stopped thinking about exactly who the clients were. We did a lot of work for religious and political organisations, gambling industry lobbying groups etc. "Charities" in the loosest sense.

Before long it became clear that I'd used my talents to help organisations whose values were directly against mine (I'm a strong supporter of LGBT rights for example, on which the Catholic church has a poor record.)

The main things I learned as a junior dev were:

* Non-profit clients aren't necessarily more ethical than business clients, it's naive to assume this is the case

* Be careful when taking on a high volume of client projects. It's hard to track exactly what their values are, and you might accidentally end up enriching an organisation which hates your guts

* Track your personal values carefully and regularly check if you're living up to them at work


I ran the web frontend team at Facebook.


Whoa. Surprised this is the only post along these lines. FB is no different from big tobacco in these times.


That's somewhat unfair.

Facebook doesn't give you (and people around you) cancer.


Facebook doesn't cause cancer of course, but there's no shortage of evidence that it harms some of its users, as well as contributing to social phenomena that harm non-users. The Rohingya genocide is a prominent example.

https://en.m.wikipedia.org/wiki/Facebook_content_management_...


Hard to compare, in terms of what is worse, cancer or depression but I am also surprised more people didn't write here.

https://www.apa.org/monitor/2022/03/feature-minimize-instagr...


Are you in Chaos Monkeys?


I don't have anything that I deeply regret, but I have one where I somewhat regret my techincal decisions.

It was for a programming language that I developed at the time called OwU[0]. It was supposed to be a sort of mashup between Lisp and K (an ASCII-friendly dialect of APL). I took a lot of design decisions from oK[1], a K dialect with a code design that I admired.

The biggest mistake that I made during my decisions is to seperate between verbs and user-defined functions. This is because in K, verbs behaves like operators, while functions behave like, well, functions. But in Lisp, both built-in and user-defined functions should be fundamentally the same in data type.

Because of this seperation, it was very hard for me to implement functional programming stuff, like fold and reduce, because I have to handle two different data types at the same time.

Not to even mention the fact that I chose to go with objects in the entire language to be dictionaries, and not classes (I implement this in Python). This makes code just generally very messy to me, as I have to figure out how would I access the data to perform operators on them, and this cause me to make a good few bugs.

Overall, OwU is a language that is better than any previous attempt, but there's still a lot of it that I regret.

[0]: https://github.com/HoangTuan110/owu [1]: https://github.com/JohnEarnest/ok


OwU is a cute name :3


Back in the early days of mobile games (Zynga et al) I worked at one of those shops helping them build a better Skinner Box.


Right now I have regretted spending so much time and energy learning how to build win32 applications in C and implementing multi monitor DPI support (kind of a nightmare in a library not made for this), because it has fried my brain.

But the odd dream of creating an awesome retro gui for.. well, whatever reason, will likely pop up again soon.


Not from an ethical perspective, but from a personal one - I do regret putting so much effort into a past project that to me looked like it had a lot of potential to move things.

There were lots of open questions, not only tech-wise, but also business-wise that made me really anxious (in both senses) to get to work on them. So I pushed the stakeholders to discover what they wanted. I asked for definitions of terms, clarification on business language, workshops to figure out what it is my software was supposed to improve, what problems it was supposed to solve.

I sat down with them and explained Agile from A to Z while also writing code, reviewing code, writing CI/CD pipelines, talking to other teams about architecture, and generally putting in work wherever it was useful - and that was everywhere.

Then a week before my 3 month trial period was up, I was told to clear my desk until the end of the day because that was not what the company was looking for. End of story.

I don't regret doing everything I did, but I do regret not playing it smart politically and doing it out in the open.


I regret becoming a software developer. It was a dumb financial decision in the country I live in.

Also, systems knowledge and critical thinking skills have brought me anguish and made me cynical. I see problems and logical contradictions everywhere and it makes everything and everyone unbearably frustrating.

I should have been a lawyer and done software as a hobby. I don't think law rewires your brain like decades of coding does... You're still human. There's something about being constantly corrected by a compiler for over a decade which changes the way your mind works in a fundamental way.


I feel like you're being a little myopic if you feel that all of programming is logical. Look into the probability stuff like machine learning. Read books from Nassim Taleb like Antifragile to understand that it's very easy for us to convince ourselves that logic and increasingly complex models solve everything. In reality there are many meta-strategies you can use like "via negativa" to still be rational, but make the world appear less crazy, and make the crazy in the world look more obvious, and avoidable.


> Also, systems knowledge and critical thinking skills have brought me mostly anguish; it has made me cynical. […] I should have been a lawyer

If software made you cynical and miserable I don’t think you’d have survived law.


At least I would probably have made a ton of money and would be made to feel important.

Every minute of software development makes you feel like you're never good enough (the compiler keeps reminding you). Also, on the company side, you're always made to feel like a replaceable cog in a big machine, not to mention that salaries are generally limited and under constant threat of outsourcing... To rub salt into the wound, most companies don't even care about code quality; they will happily pay 10 mediocre engineers to do the job of 1 good engineer (for 10x the total price) and end up with worse results. Hiring has been broken for decades. They don't care about coding efficiency or maintainability when they have a monopoly... Engineer salaries are often peanuts relative to their significant revenues... They could hire 10 times more devs for the same work and it would make little difference for them... Yet they will not pay high salaries to engineers based on talent; it's all about internal politics.


which country are you from? Just curious..


Australia. As a senior software developer, it's possible to earn a salary of up to $110K USD. That may sound OK until you consider that in Australia, an experienced coal miner earns $130K USD (7 days on, 7 days off lifestyle) and a garbage man earns $80K USD...

Also, many builders, plumbers and other tradesmen run their own businesses and are earning much more than average.

Because everyone else has high salaries, it drives house prices and living costs to insane levels.

It's a similar situation in most non-US countries through. It's even worse in Europe where software developers have to compete with people from developing countries (that was true even before the mass influx caused by Ukraine war) - They have it better because they can arbitrage the international cost of living differences to buy up cheap real estate in their home countries (which, as a non-citizen, I cannot do due to regulations).

I had actually relocated to EU (Germany) to try to improve my situation but was shocked to find out that things were even worse than in Australia due to higher immigration (more competition from countries with lower cost of living = lower salaries). It was so bad, I had to move back to Australia.

At least in Australia the class differences aren't so significant; being at the bottom of society doesn't feel as bad.


This scares the shit out of me, when my career hasn't even started yet!


I regret a "let's just rebuild the entire UI" project I proposed, fought for, and implemented. It's been many years since then. I was very much the zealot armed with many opinions and few facts. Good lesson learned, but I feel bad about how much fucking time it wasted.


Not time wasted if it was a lesson learned. And tbh, I don't think there's any other way to learn this lesson other than do it and reflect, I think anyone passionate for making things _actually_ better will do it at least once.


This is one side story, with no "oh I didn't knew it'll be used that way!" gotcha moment - I've worked in private milsec for some time, and I'm responsible for few device designs / ammo improvements/mk's, while I take pride in job well done, just because someone dies more quickly, doesn't mean its a good death - so after some years, I've started having doubts of that career path.


Imagine the world we could live in if there were no weapons. That's the world we would have if nobody built them.

I have heard the line "If I don't build it somebody else will." from an engineer working on multi-million dollar weapons (think F-16).

I can only decide what I do with my time on this earth. Everyone makes that decision for themselves.


I helped some jerks create an NFT collection.


Created a LIMS system (Lawful Interception and Monitoring Systems) in 2000-2001.

It was abused at a large scale in some large enterprises in India to monitor it's employees network communication.

Thought I was doing a good work for govt. agencies, but in turned out otherwise due to the abuse and affected a lot of privacy. Since then, I've made myself away from any and all mass techs as much possible and stuck with manual methods, cash and privacy friendly alternatives.

It's like creating a double edged sword. All the newer age, continuous monitoring and etc, etc., are doing more harm then what it solves...

Like in medical community, but an opposite... Risks outweigh the benefits!! Enough said! Peace!


I built a tool for helping a trailer park management company track numerous eviction lawsuits. I didn't complete before being reassigned, but I never should've started it.


forensics software that pulled down everything possible from all social media sites at once and put into a forensic container. it would also make a fake disk image for older software. it was originally for lawful collections after u/p was obtained via warrants or willfully etc, but changed hands and was used aggressively like a cloud version of kicking the door in to grab pcs. i refused to scrape where possible and use apis and this was right before the cambridge analytica stuff blew up so a lot of the FB stuff ate dirt at least.

it was technically well made tho, everything integrated into a single executable file that had an web interface:/


I wrote a largely autonomous agent that seeks and builds data dossiers on everyone you point it at. Then you buy legally encumbered data, genuinely sensitive stuff for fractions of pennies, and you reverse identify the person, unencumbering the majority of the data, because writing privacy laws that don't cripple well intended business is very difficult.

It is not inherently bad. Some of the real life uses are practical and beneficial, but it can also be weaponized.


I built a web crawling site ring.nz on polymer/web components. Looking at the marketing of the framework it was an easy way to get material design components but in reality the overuse of shadow Dom and shadow CSS meant it was really difficult to use the components or theme them. I'm pretty sure the whole polymer project is abandoned now... The site became too hard/bothersome for me to maintain under its tech debt but is still on my GitHub.

I also regret building some things in C# or Java a long time ago.

The biggest regret money wise is I built a crypto forecasting company that became somewhat profitable BitBank.nz but I built it without enough foresight for cloud costs, was running a forecaster constantly on compute engine as well as filling up a postgres database without offlining data, turned out harder to scale down a database than scale up the memory. Basically things like that and I never had time for it after having kids meant it long term costed more than it made even with paying customers so I shut it down.

Now I run https://text-generator.io still machine learning related but I run it very lean from two GPUs I own at home which is a bit easier


How accurate was your crypto forecaster? What happened to the code? If you're interested in getting that running again let me know. There are ways to bring down costs and improve efficiency.


On the ethical side I built a paywall for a billion dollar news company and stoped people from bypassing it, then they change the cancel button for a call customer support button to effectively steal money from the elderly etc who signed up but don't want to go through the long cancel process


I built software to track our traders. This was at one of the largest investment banks in the world and at the time they had a rudimentary system for tracking and recording their in-house traders activities - orders, trades, and other order/trade related information. At the time, the rudimentary system was built mostly to comply with government regulations, and was later modified by someone else to capture and report a larger scope of information about the traders to a higher-up department.

My system was built entirely from scratch because the existing system was antiquated, poorly structured, and really not conducive to future expansions.

After testing and implementing my system, a handful of traders lost their jobs as a result. One criteria often looked at was their number and reasons for failure to delivers (FTD's).

Other than that, it's mostly automating things that I almost sort of regret. A lot of folks in the bank were fired after I wrote a series of apps that could do the work they do. Mostly repetitive tasks. Still feel bad about that but if I didn't do it, they would have hired someone else and at the time I was really, really in dire need for a paycheck.


An ex-coworker asked me to do a 3-month contracting stint at his company where he was the head of IT. The task was to "clean up the environment" because the servers were crashing often and performance was poor.

I quickly found the source of the crashes: misconfigured ethernet switch MAC address limits applied to VMware ESXi. I also cleansed the environment by finding the one working server in each cluster and then cloning it out to replace the faulty ones. These were all "pets" on life support, and I tried to make them more like identical "cattle".

I went back a year later and half of the IT support team was gone. I asked what happened and the answer was: me.

Apparently after I fixed up the platform the number of support requests plummeted, and a bunch of the helpdesk staff were made redundant.

Oops.


I'm so torn about stuff like this. On one hand, yeah, it absolutely sucks that people lost their job based on a thing you did. But on the other hand, their jobs existed only because things were broken that didn't need to be. Essentially, bullshit jobs: it sorta feels related to the trope of someone going around a neighborhood breaking people's windows to drum up business for the local window-installation company, without the nefarious bits.

I feel similarly about the rise of automation. At a global/society level, I think it's great that there are jobs humans don't have to do anymore. That leaves more people to be able to pursue "higher" things. But the reality is that some people who had jobs now don't, and might be suffering financial insecurity because of that. Our society should be helping people retrain, and keep them on their feet financially while they do so, but many places just don't have a good enough safety net for that, let alone specific programs for retraining when jobs become unnecessary.


The worst part is that the helpdesk staff were nice. More than a decade later I can't remember anything else about them, except that they were all lovely people.

I'm sure they got new jobs and whatnot, but I still feel bad about the whole thing.

Intellectually, I agree with you that bullshit jobs ought to be eliminated, but I suspect that this process will continue to be morally a gray area until we have something like universal basic income.


I wrote a system called OverSeer that was intended to record inspections of Fire Extinguishers. The system itself had positive effects in that it forced the maintenance and availability of things that otherwise were slacked off on (though the paperwork was always signed, regardless of reality)

It's the little * on the report, when someone manually entered a barcode instead of scanning it, that I felt a bit squeamish about.


Using styled components for the Reddit redesign and littering the DOM with nodes.


You monster.

\s

Why did reddit use such a shitty design, anyway? To maximize clicks / number of pages visited?

old.reddit.com is the only sensible reddit interface, the mobile app sucks. Even the old m.reddit.com was pretty great..


I was just a bottom-level dev, so take this with a grain of salt, but it seemed like the focus was on making the site appealing to a broader audience so that we could grow our user base and be taken seriously as a challenger to Facebook and Twitter.

Many of the people hired for the redesign didn’t seem to fully understand the magic that made Reddit successful in the first place, so there was a big disconnect that made itself manifest in what you now view as the new site.


My main regrets are code for canceled closed source projects that will never see the light of day (waste of effort), and one early-career large scale refactoring which was only ever half-finished due to time pressure - resulting in worse code than if I'd never initiated the refactoring in the first place.

Even the bad technical decisions tended to be correctable learning experiences.


Yeah, this weighs on me too sometimes. I've spent man-decades of work time writing proprietary code for companies that will never see life outside of those companies. And many of the products I've written the code for have since been shut down, or never shipped in the first place.

I've recently gotten re-involved with an open source project that I used to work on in the mid-00s, and it's really satisfying to see code I wrote so long ago, still in use, and get to work on it again.


Not anything too big, but... I wrote a program to merge Jupyter notebooks properly. The backend was mostly done, and I had a start on the GUI.

Then I found out about nbdime, which did nearly everything I wanted. I ended up just making a simple Python script to make using nbdime more convenient, and soon I'm planning to make a vs code extension to make it 1-click.


I specified and architected an internal ERP system (PLM/SRM side) to replace a paper system. This was a big Oracle/web thing in the early 00's at the peak of Six Sigma. This was resisted by the engineering teams who had been using the old system since WW2. Rather than use it, there was a mini strike that resulted in nearly 50 engineers taking retirement and lead to a national scandal when a huge defence project was delayed and over budget. It was one of the largest contributing factors of the project failure.

After doing lots of post mortem analysis, the paper system was far more capable and had a better audit trail and most of the objections that were formed were entirely spot on. But we steamrolled them because we were under the six sigma project flag.

After seeing the shit show and reflection, I quit and got a shit job throwing web sites together.


Hmm that's a tricky one. I guess there was one situation where one of the clients we built a website for turned out to be a scammer/con artist who got arrested for forex fraud. I guess our work in making their site look/function as well as possible sadly helped them gain customers to rip off, and gave them a false sense of legitimacy. But no one there knew the customer's company was a dodgy operation, so I guess hindsight is everything there.

I guess there have also been a few previous companies I worked on sites for that weren't exactly the most ethical operations overall.

But I don't think I can recall ever working on anything that was used for surveillance, or that itself was built for unethical ends. It's usually things associated with questionable companies that I didn't really know were questionable.


Tons and tons of technical things!

I've seen (and caused/fixed) so many horrific things that I feel compelled to improve my expression skills... so that I can write them up more formally.

Most recently, I moved some of our Ubuntu systems away from network-scripts to systemd-networkd

I didn't realize the gravity of this change. Be warned, systemd-networkd will significantly change how forwarding works.

Due to things outside of my control, we have some systems playing router. They didn't like this change a whole lot, and I neglected to test this.

On network-scripts with the usual kit of sysctl and iptables rules, you're good to go.

networkd however requires more explicit configuration; particularly which interfaces may forward.

Not a big deal, unless you don't know... like I didn't


Some replies over snipes would be nice, folks. Is systemd that upsetting, or is this not venture capitalist enough for the thread?

Not that I care about votes, but I can see at least three people have disagreed but said nothing.

I'm genuinely confused - this is a blunder I created/regret by implementation


> Is systemd that upsetting

Yes. And unkike the other confessions in this thread about surveillence here or there, it has a practical impact on many.

Of course, I'm now going to get down-voted by its fans.

It's a love or hate thing. And where something breaks, it's easily the latter.


Thank you for confirming!

I find myself closer to the 'fan' side of systemd, but I'm under no illusions either - there are several detriments.

I find some of the heavier responses to it strange, either for or against. It's like developing a personality around a preference of sporks over forks/spoons.

Use what you like, help those who have trouble... but neither needs proselytizing


I know a couple of engineers who built soccer stadiums in Iraq during the 80's. Those stadiums were also used for other purposes later on.


It's one thing to say "guns don't kill people, people kill people" to ease your conscious. It's another to worry about how someone will use a soccer stadium.


Worked in monetization and optimized ingame shops for some of the most profitable games at the time. I know there are probably people that really like the game they develop but trust me the monetizers don't care they just want more money.


coded email targeting for people with financial problems / poor credit and offered them sketchy credit repair deals or cash advance loans with rates that were essentially usury


About 10 years ago at the start of my career I built a prototype of a Google Analytics analogue that would suck up all your Facebook profile/likes and send it to a server. This is long before Cambridge Analytica when the APIs were wide open.


I did a similar one. For folks who signed into our app with Facebook login, we would go get all their Likes, all their Friends, and all their Friends' Likes. There was some vague idea that we could use this for marketing.

The data volume was huge though and it quickly filled up our database, so we shut it off and threw it all away since it didn't seem to be worth the trouble.

This was in 2012... I didn't think much of it until Cambridge Analytica.


At my first internship I built a program that generated reports with a ranking of call center agents based on their daily time on the phone and calls taken. It was used to fire the bottom X% periodically.

Not nefarious, but wasn’t how I want to spend my energy.


Once a metric exists, it will become a target to live/die by and bend all sorts of human behavior to make it regardless of secondary factors.

Feels like this is more of a human problem that hasn't become common knowledge yet, if it is capable of becoming that.


It used to be a content recommendation system for a chinese media company. We monitored peoples movements through their phone and gave marketers a really easy way to directly target people. It's sort of rampant now, but years ago it felt like it was a dangerous step in the wrong direction.

But recently I found out that an algorithm that I was a crucial part in building ended up doing some real bad things. I don't really want to talk about it directly because I'm not sure I really want to be implicated.

The point is, I feel terrible. I played a role in negatively impacting a lot of peoples lives. Sure, I wasn't the only one who built it. Nor did I play a part in what it turned into, or made any decisions about how it should be used. I just built a thing.

But I think we as programmers, tend to look fondly on our systems that we develop. They are sort of like our children (in a very loose sense). I spent years thinking back to building it, and being filled with joy. Now I see what it's done, what I helped create, where it ended up.

I just feel sick. I talked to a peer who helped on it about it. They also feel the same. Just terrible. Burnt out. Ready to switch careers entirely.

I think I might be able to continue in this field, make the right decisions, and think through the true impact of what I'm building before I commit to it.

But then again, I think back at all of the work I've done in my career, and all of it was exploitative to people at least in some sense. I'm not sure you can profit without exploitation in tech, it might be inherent (I realize that's a negative statement. I'm in a mood).

So I'm thinking I may just switch into a career I can feel good about, unless I can find a job or project that will allow me to be ethical.

We really need to come together as a community and stand up for ethics. Every day a programmer out there is faced with an ethical dilemma, one that will probably get them fired if they don't comply. Plus, that won't even matter, because they will just get someone else to do it anyway. There's not a good way to save your source of income while also doing the right thing.


Amazing thread!

Those of you implementing DPI, assisting CCP with logging, cryptocurrency daredevils, tracking enablers and even a slave helmet guy. Do know that you have changed the world. For worse. And you'll never git amend or git revert what you've done. Most likely you will never find rest for what you've done as the confessions are very indicative.

Funny, how Hollywood different the notion of an evil computer guy in movies (asian/western european/nerd) to an average american family guy Mikey Mike doing all this real damage.

But, I bet all those mortgages ain't gonna pay themselves, right?


Long ago, I worked on a popular dating app (maybe not anymore, but still top 5) and learned how they monetize "love" and "dating". Building features that claim one thing (marketing got it approved by legal) but under the hood work in a ridiculous way.

Worked on an e-commerce site for an extremely well known media company. Again, tech wise it was cool, but the way it worked and how the marketing and other folks talked about the audience and their schemes to extract $ from them was gross and disgusting.

Now I work in boring enterprise SaaS, but at least I know I'm actually helping our users do their jobs better. The job kind is boring af, the tech stack is lame, but that's fine. Every so often I'll be on customer calls and I love hearing them tell us that our fix or some new feature is wonderful.

I will never work for big tech or adjacent companies ever again. I want to be able to sleep at night and not be associated with psychopaths and people who care only about money at any costs.


A lot of "tech" companies are really just marketing companies. No innovation is being done, just optimizing some funnel.

Working on useful software is good, glad you're doing that now.


In the early 00s I designed and wrote a system that procured abandoned domain names, analyzed them for SEO purposes (existing pagerank scores, inbound traffic from other respectable domains, etc) and then generated a web of links and artificial content designed purely to sell ads and boost other client domains. The part I enjoyed the most was automating Apache and systems administration work for the server farm, but I regret working on it. I was broke and desperate at 20, and I ended up quitting the job after a few months anyway.


Something to convince German people to feel comfortable with Google sucking up all their data.

Hey at least I’m not the AMP guy.


Obviously you can't say what or details, but - do you know if it was successful at that?


“Google 10 Years in Germany” - was on front page of google.de. Honestly unsure how success was measured my main concern was canvas animation performance.


Interesting that most posts here have to do with monitoring or surveillance of others. Privacy is important...


I doubt the one who put the 737-max into a dive, the one who but the A400 into reverse, the one causing the Toyota runaways, and similar cases are going to post.


You may be right. But there's a bit of a difference in your examples. Your examples are more like bugs in development versus consciously knowing you're building tech that is designed to invade other's privacy.


I built a web SPA "crypto" calculator that performed basic and generic tasks such as symmetric ciphering with block padding, hashing with different algorithms at the same time, pkcs7 messages ciphering/deciphering, and utilities like base64 to hex to ascii, etc encoding/decoding, etc.

I did at the time Angular was hot and I wanted to learn it. Also because it made my life easier at my job. I developed it fully at home outside office hours (I did not work remotely at that time), published it on github and deployed it on a personal public VM, and I told one or two direct colleagues about it.

A few months later, some people in the company who I did not know started using it (from the public site, not running it locally) and then later even manual validation plans or troubleshooting guides referred to it (its url).

I noticed through the server logs that it was used from many different countries, it was barely active but still got between 2 to 5 visits per day. And from the location I knew that it was very likely people from my company (no zscaler at that time).

One day I wanted to upgrade the VM and also cut down old sites that I maintained. So I shut down the website. A few days later I received a complaint in my company from 2 guys asking me to put it back on. I had to explain them that no way, I would not put it back on, it was a personal project fully developed outside business hour on my personal laptop, hosted on a personal VM that I paid for, etc.

This could have got me fired maybe, even though the cryptographic functions were really generic, I could have been accused to have stolen company time or whatever. The company was really not the kind to give 20% of our time to work on personal ideas.


Spent a year building a financial analysis engine for automated commodities trading, including a home-baked distributed computing system. Ran it on servers at work (which was unethical) and ended up losing some money (not a lot) on trading a system it produced. The trades themselves did make profit, but I failed to account for broker fees. Good learning experience but wasted a lot of time writing code that I ultimately threw away.


Not really answering the question: I interviewed at a company that measured Internet traffic and would do so by installing proxy servers in popular software downloads. This was 15+ years ago now. I suppose this was the early versions of spyware. I got an offer but never took it because I disliked the concept and multiple layers of deception to the end user. no regrets here, but i always wondered how people could work on such products.


An xml parser.


I did a pull-stylee XML parser once.

In VB.

VB ..... 3

It didn't care (much) about well-formed documents.

You could mix it with snippets of RTF. We did. I used it to parse report templates out of hybrid RTF/XML files.

Not really morally evil though.


Did you use regex?


Nah, that’s for HTML


And... I also used another xml parsing library, because we "needed" our own. (context: first programming job at a startup in college)


I worked on a private jet plane computer for months, saving the project reluctantly (because private jets are very very rarely used for "good", mostly by entitled very wealthy persons, and are very polluting), just to learn the component I was working on would be used on a military plane as well. YMMV, but I don't work for military stuff, and it still haunts me.


A PBX extension to remind customers of a renewal they opted into. Highly successful but also no ability to determine time zone... so not great


I've spent the last four years now trying to start a business on the Internet (working on ideas roughly two hours per day before work).

I kinda regret that I didn't just build one thing, and stick to it until it succeeded, but each project had valuable lessons (both business and code/architecture) that carried over into the next one. So far I've built:

- bill splitting service (2017)

I spent days agonising over which new framework to use (this was late 2017 after all), eventually learned to just use the tools I knew (react, node, postgres). I didn't really care about the problem space, so shut it down.

- jobs aggregator (2017/2018)

I learned that implementation is meaningless to the user if you're not delivering value. I wanted to copy remoteok.io and make it serverless (effectively free to serve traffic), I didn't realise existing sites provided value via their traffic. The reason StackOverflow can charge as much as it did is the millions of page views per month it receives, creating value for its job posters.

- appointment scheduler (2018)

I built an appointment scheduler, had no real means of attracting users, shut it down.

- room booking service (2018)

Spin-off of the previous idea, but for meeting rooms. Tried to build the whole thing using Google APIs, eventually got stung by API limitations, gave up (learned not to rely on other's APIs without understanding their limits first).

- graphql API monitoring service (2018/2019)

Traction again, couldn't find users (tried in-person sales for the first time, too).

- site speed monitoring service (2019/2020)

Essentially running google lighthouse as a service. had some users, but fixing all the edge cases around chrome/puppeteer/lighthouse across super slow websites was a total pain. Couldn't figure out distribution.

- uptime monitoring service (2021-current) - https://onlineornot.com

Doesn't seem to be as useless as the other projects. Has bought me the MacBook Air M1 I'm typing this comment on now.

Rewrote my old graphql API monitoring service from scratch to monitor APIs, websites and web apps, seems to be going well so far. Now also a status page service.


Thank goodness none of us have the burden in our lives of have programmed this machine, that literally killed people with overdoses of radiation. About the most awful way to die aside from full body fire or chemical burns

https://en.m.wikipedia.org/wiki/Therac-25


I've built a website and a browser extension/addon that allows you to download any video at it's best possible quality or as an MP3, made it mostly for myself but it was public.

I made sure I don't collect any data except the URLs that come in, for debugging purposes, so that if I see too many failures I can fix whatever the issues is and attached an inbox so people can reach me.

I've seen some really disturbing stuff in the logs, you can tell from the URL alone, zoophilia, murder and executions, rape, but that's all stuff you can find on the internet.

I stopped looking at the logs long time ago, but I vowed that if I ever get a whiff of underage sexual content going trough the site, I will take it down and use it only in private.

----

Ow, I also get emails from horny people who really want to download specific porn videos from unsupported websites.


I wrote a web tracker that was oversized and inefficient, which got deployed to a lot of websites. At the time I lacked the necessary experience or guidance to do better. It should've been much smaller with a drastically reduced network footprint. At the scale it was deployed every byte counts.

I still feel really bad about this. Sorry.


20 years ago I bought a domain which is <my username>.co.uk.

I didn't know what to do with it, so I collected GIFs of women... Jiggling.

At the time I thought it was humourous but now I just cringe.

I should probably take it down sometime, but I just don't know what to do with it.


At least it's not goatse :)


I did some hobby work with a commoncrawl dataset. A year or so later I got contacted by a startup to see if I could do something similar for them. They basically wanted to collect phone numbers and email addresses of businesses from the couple of TB of data. I gave them some disclaimer like: you can use this for good and bad things, I trust it's good and also it is your responsibility to comply with privacy regulations. They ran my code in their own AWS account and probably collected millions of addresses. I think the startup didn't make it. No idea what they did with it but I still feel a bit bad.


I used to work in digital advertising company that had their on DPI technology and had deals with ISPs to tap into their network and some publishers. We profiled each user, by default it was opted in (: after some pressure it was by default opt-out but whoever was opted in and didn't know that remained opted-in. China was just meh, everybody opt-in we don't care about your privacy....

Truly ingenious technology but everything else was shit, truly bad moment in my career that fortunately lead to a better place for me...

(Also this was pre-https everything so it was super-easy to sniff the traffic)


I wrote an blog post about my biggest regret in programming:

https://iaindooley.com/post/57313703317/an-open-letter-and-a...

EDIT: actually I just remembered that around 2011 I repurposed SMS subscription software I had written to run a (basically) spam premium SMS service in Ireland. It wasn’t my service, it was for a client, but I knew it was shit and I did it anyway. What can I say I needed the cash.


I don't really have anything that I regret, as I have learned something from every project, but I have a number of projects that didn't do as well as I wanted; either from a performance/features PoV, or from the perspective of how they were received.

In some cases, something that I wrote some time earlier, and had "let go of," proved valuable, at a later time (that has been the case for the app that I'm writing now). In other cases, it took years longer for something to "catch fire," than I initially expected.


Eons ago, I wrote a bash script to split up a test suite to run in different order across our device matrix, so even though the suite took hours to run, it took only 10 minutes to get an email that a test was failing on some machine.

I was gone in 6 months, but 3 years later the team (having doubled and doubled) still used that dumb script. Had they buckled down redo it in Java, they would have learned a lot and would have relevant experience to get jobs in the then-burgeoning enterprise server market.

Not bad for society, just for them.


ever heard of ActiveX? you know, arbitrary code installing and running in your browser and available to be scripted by javascript? sorry. I'm not solely responsible, there were many of us. but still sorry, pretty responsible. we were young. code-signing as a means of validating origin was a great idea. it needed additional infrastructure to keep track of originators and to prevent abuse, though, and that wasn't perfectly thought through or executed. live and learn.


I was involved in building an app that tracks driving behavior for an insurance company. Of course live location data and names are logged in plaintext for all customers.


I built a utility to help plant personnel get up date to job information and documents on a tablet instead of having to refer to printouts from up to a few weeks before that may or may not have up to date information.

It was co-opted as a time tracking system. A bad one that, as far as I can tell, produces no actionable data while simultaneously being a pain in the ass for the poor bastards using it.

It is the last time I will ever go out of my way to improve a non-IT aspect of the company.


Worked in a medical start-up in one of the country's biggest incubators, but eventually uncovered that the whole thing was a scam. All what management did is launder the money to themselves with no actual product in sight. I was responsible for the pilots and demos to the municipal hospitals and government officials, and i regret i've spent ~year to help them cover their crimes.

The management guys are not in prison and i think will never be.


Deep packet inspection hardware/software that was sold to controversial governments/militaries who ended up in a coup and used to track and ** opposition.


I was asked to solve a relatively minor problem. I then turned it into a much larger project, more or less to entertain myself. Years later and the project just won't die, we've tried to get everybody off of it, but they just won't leave. Nobody wants to run this thing any more, it's just too big. In retrospect I should have focused only on just what the business really needed, and not turned it into a magnum opus.


I have wasted a lot of time building a two sided marketplace for gigs, that was the biggest thing i regret, that i kept trying for much too long of a time


Why sis you regret it?


Sounds like he regrets spending so much time working on something that didn't result in anything useful. That's been most of my career, so I empathize.


I built an integration from our CRM to a sales team messaging platform. For users that exist in the CRM, it worked great. The problem was the side uses of the messaging platform for users that were not active in the CRM or never in the CRM. It’s a nightmare to keep dealing with all the exceptions related to non-active CRM users.

I usually don’t let myself get caught in such a scenario, this one slid by and I regret it.


I'm not sure I understand- if I am not in a CRM then a sales person cannot call/mail me? Or is this some kind of facebook-like thing where you can infer I exist if you also have my colleagues details ?


Once upon a time I wrote a DNS zone sync shell script. It was great, and terrible. Truth is, it should never have been a shell script. I used curl to make API calls to Oracle (then Dyn), awk to turn API output into the local zone format, sorted the local and remote zone data, diff'd them, then more curl'ing to make the updates. It was brilliant then-- now, not so much.


That's funny it reminds me a lot of an awk script we used to use to push zone files... when I worked at domain name registry in New Zealand. It was wrapped in a lot of pearl for extra job safety, lots of weird issues with special characters, working in the DNS space is very interesting, lots of security overlap and problems like trying to stop people using the system for botnet command and control centres.


openIPMP (https://sourceforge.net/projects/openipmp/). At the time (2002), we were trying to jump start legal content consumption foolishly thinking that providing a POC DRM system might generate either real services/debate. We thought providing an infrastructure that demonstrates rights management within (the great MPEG4IP project) would facilitate this. We tried to implement some 'standards' MPEG-21, ISMA, MPEG4.. but at the end of the day I think it was just a dumb idea. We got some free press, even some consulting work out of it.. but it wasn't very good and we weren't going to move any needles with it. I learned a lot about mpeg4 a/v and built a cool rights store in PKCS12.. but we spent over a year on it and it ultimately went nowhere...


Too many things related to cryptocurrency.


I worked at Ashley Madison, enough said.


How many users (women) were actually real?


Less than 1%.


Same thing as the most impactful for me too.

It was a chemical thing. Toxic too.

You've got to figure it's a lot more likely to have impact if there's a somewhat likely negative outcome within the reach of unscrupulous operators, especially if popularization can be a factor in a more widespread negative effect.


I don't have anything to add except this is an awesome thread. One of the best I've read.


Software related to various "eye in the sky" wide-area surveillance the government conducts.


Well does it keep us all safe?


around 2008 i was working for a startup incubator.

there were 2 webproperties

a people search engine a travel social network a yelp clone

i was in charge of SEO

in it was a major success

the people search engine became part of the biggest websites of the western world, top 10 in europe

the travel social network became a travel guide with more traffic than tripadviser then

the yelp clone became bigger them qype, the then leading yelp clone in europe

all with technical SEO

felt like a superstar

all resources were shifted to SEO and monitization

all 3 webproperties dont exit anymore (sometimes the companies behind them still do)

we did scaleable SEO before we had a product that users wanted.

so by now, I don't touch projects before they are not (near) product market fit. SEO kills if done otherwise.

said that, the people search engine had a 100m exit i think, which was a lot at that time.


Nested HTML tables in Microsoft's web site in 1995. Mea culpa. Mea maxima culpa.


EQE (https://eqe.fm/about)

Because of the opportunity cost. It's a fun hobby but I wish I made something that made me money. Being a salaried software engineer kinda sucks.


I don’t think I built any regrettable things.

Except for that one time I built something pretty good and he didn’t want to pay me for it. Big regret. Shouldn’t have finished that job.


Has anyone built software that killed people? This is different from regret but similar in the sense some people regret this, others don't.


Awesome question, and awesome thread.


A financially debilitating coffee addiction. Basically if I don’t drink caffeine my heart stops.


Copy protection schemes. Cringe.


Basically every spreadsheet I built working at an investment bank during the GFC.


TikTok


Pretty much anything I built for $big_investment_bank. All largely in response to the 2008 crisis and all largely unused as a result of regulatory and management changes. Feels like a big fat waste of time and other peoples money.


I'm a bit late but just had this recommended to me by someone who knows what happened to me.

I set up a startup with an acquaintance (also the life partner of an ex colleague and now former friend). We were equal partners: I did the tech, they did the marketing/strategy and occasional bit of UI design.

We got pre-seed investment with a 7-figure valuation, and we were doing the standard startup thing: building features, looking for product market fit. We had a good working relationship, with zero arguments and barely a disagreement.

Then, my one-year-old son was suddenly taken seriously ill with a life-changing condition. There was a horrible period where we weren't sure if he was going to live or die. To add to this, my wife was also 6 months pregnant at the time.

My son had some very serious operations, and required a long time to recover. The operations didn't go as planned, leaving him still with a life changing illness with a very dim outlook.

Obviously, as soon as this happened I told my partner, and they told me they would take care of everything and to take the time we needed. Everything was set up to run without intervention, and for marginal cost, so I things could be on hold without really affecting our runway.

There were some accounts we had set up with 3rd parties where I was the account admin so I transferred these over when my partner asked me to. I did this outside the paediatric intensive care unit where my son's life was in the balance.

After nearly two months of bad news after bad news, we finally made it home and began adapting to our new life.

I told my partner that I would be ready to begin returning to work gradually if possible. I got no reply.

After a few weeks, I finally got a response. My behaviour was apparently so bad that it put the company at risk, and I had been fired from my own company, with all my shares being transferred back with zero value.

Now, obviously this was absolute nonsense, and I had done nothing of the sort, so I phoned our investor to see if they knew anything. Apparently my partner had told a complete tissue of lies about how we'd been arguing and etc., etc. which was all 100% false.

Anyway, I immediately instructed the most expensive lawyer I could find who told me there was absolutely no way on earth they could lawfully do what they had done, so we began action for breach of contract.

It turned out ok for me in the end, but not after a lot of turmoil.

I absolutely cannot believe someone could be so evil, cruel and opportunistic. Basically, I'd built something that was a working, sellable product as is, requiring very little human intervention, and they decided to steal it off me.

I'm actually glad to be out of it, but I have to say getting into business with that person is a huge regret. Also, my ex-colleague who was her life partner obviously helped with figuring out what accounts and stuff they needed to take complete control of everything. I didn't think at the time what was going on when they were asking for owner access to everything. It did strike me as slightly odd but I trusted them.

As bad as it was, I've learned a lot from it: 1. Don't go into business with people you don't know really, really well. 2. Some seemingly nice people can be utter, utter shitbags for money. 3. It turns out that some people will literally completely make up stuff about you and tell it to other people. Things with not even a grain of truth. 4. Expensive lawyers are worth the money. 5. It feels good to win when someone does something shit to you like that. 6. Nothing matters more than family.


tldr; I regret making bots in the early 2000's.

Sometimes we make things in our youth that end up getting people arrested. Sometimes nobody knows you even participated in coding and releasing some of the worst bots that are still used today in variants for banking theft software. Sometimes you just have to keep it to yourself and be the hacker you were when you built those evil things. Above all else you were/are a hacker and you should never claim your evil hacking deeds for yourself and should always do it for the love of the game.


amazon.com




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

Search: