Hugo Hacker News

You don’t need to work on hard problems (2020)

ChrisMarshallNY 2021-08-17 11:41:28 +0000 UTC [ - ]

I enjoy doing pedestrian stuff; really, really well.

Most of my work is open-source, as I don't really do anything particularly innovative or patent-worthy.

Most of the value in my work is how I do it.

I work carefully, document the living bejeezus out of my work, test like crazy, and spend a lot of time "polishing the fenders."

This is something that anyone can do. It just takes patience, discipline, and care.

I'm weird. I enjoy the end results enough to take the time to do the job well.

It's been my experience that the way I work is deeply unpopular. Some people actually seem to get offended, when I discuss how I work.

Go figure.

gilbetron 2021-08-17 15:00:35 +0000 UTC [ - ]

One of the easiest periods in my career is when I was in charge (with one other coworker) with modifying a certain capability in a large, distributed "web application" (it was a for a DDOS detection/mitigation appliance and associated web UI). Every time it needed modification, there was around 50-75 code locations that had to be tediously updated. When I first encountered it, I had created a document outline all the locations and the pitfalls around modifying them, along with tests to verify them. I performed the process a couple of dozen times over the 2 years. It was trivially easy, easily tracked, and I was always given plenty of time to get it right (good managers). I've never had a project manager happier with me because my estimates were always spot on (it's the type of work that is easy to estimate after the first 2 or 3 times you do it), and management understood exactly what I was doing, and no one else wanted to do it.

I have since found that people still really don't want to do that work, are grateful when I will do it, and (except for one instance) management recognizes it as important, slow, tedious work. The only issue I have is that it gets boring, and so 80% of the effort goes into motivating myself to get it done ;)

tharkun__ 2021-08-18 01:08:55 +0000 UTC [ - ]

I've said it before here on HN I think but I always find it interesting/hilarious to what lengths people go to avoid a little bit of manual work. Like something that literally takes 2 minutes of manually doing the same sequence of click/type combo for 40 items total. Instead they must spend 2 days trying to automate it. And very likely still fail to do so.

Then on the other end I once automated a process ('running a report') that took one of the senior Devs at that place an entire day to compile in: exactly one day. Suddenly that report could be run when people actually needed it (once a month) but they only ran it every half year because of cost and blocking a resource for an entire day.

Your case feels like it might be somewhere in between (given I have zero context/actual knowledge of what these updates are/why they can't be centralized somehow. Has anyone tried?

gilbetron 2021-08-18 01:29:37 +0000 UTC [ - ]

Not there anymore (my story was about 6 years ago), and I was able to reduce it somewhat, but it was mostly a case of lots of, effectively, microservices that needed updating in case-specific manners. To reduce it further would take major architectural changes that would take more time than simply doing repeating the process I had created, even if done for a couple of decades.

TameAntelope 2021-08-17 15:17:47 +0000 UTC [ - ]

Depending on the details of what you mean by your description of how you work, you'd either be a godsend to a startup or a nightmare. It's kind of funny how it could still be either!

I personally have gone in the opposite direction, where I spend most of my time making sure I'm not going to cause irreversible damage, and then just letting the not-critical bugs into the wild, because I'd rather ship a flawed product now and get feedback on it from actual users, than wait to ship a product until it's "perfect" and get no feedback until then.

But I respect the hell out of what you're describing here, because for every one of me, there needs to be one of you. The trick, in my experience, is getting you and I to work happily together. It's very difficult, but when it works, it's wonderful for both of us.

I just wrote a "guiding principle" for my dev team that reads:

"As long as a risk doesn't have catastrophic (irreversible) harm severity (consequences), it may be worth allowing the risk to actualize before attempting to mitigate or eliminate it."

I'm guessing you'd hate that? Any way I could make it marginally more tolerable?

ChrisMarshallNY 2021-08-17 15:51:58 +0000 UTC [ - ]

I suspect that this comment might answer your question (Godsend or Nightmare -probably both. Old Testament Godsend): https://news.ycombinator.com/item?id=28211073

tharkun__ 2021-08-18 01:29:28 +0000 UTC [ - ]

Disclaimer: I'm not who you are answering to.

But whoa that's quite the story. I suspect that you are a godsend for the typical startup which will probably tend to be on the "physically sick from looking at the code" side of things and you are gonna pull in the other direction. In the end the startup would end up in a great 'middle ground' if neither side quits in frustration over the other.

Which is basically what your parent says is the hard part. To balance it out.

There's a lot of 'good enough' code and functionality you can 'get away with' that will actually be useful for your customers. And they can get it and use it now and not in 1 year from now. What is missing in a lot of companies is the 'sticking with it' meaning actually not just throwing the MVP out there and leaving it but collecting and _acting on_ that user feedback. Which is next to impossible with sickening code but easy enough with '80/20 rule code'.

toto444 2021-08-17 12:12:18 +0000 UTC [ - ]

I have been thinking a lot on a problem with the idea to find a tech solution that could help solving it. The more I was thinking about it the more I realized that what I think is the the best way to solve the problem does not involve any tech at all.

That's how I started working a a static website. I have been working on it for a few years now. I have realised my strength is that I can work on a problem for a very long time. My website solves a lot of very tiny problems one by one. Nothing impressive when you look at them individually. However after solving hundreds of them a big picture starts emerging.

When I was younger I wanted to solve very hard problems. I have let that idea go and have no regret about it.

ChrisMarshallNY 2021-08-17 12:17:59 +0000 UTC [ - ]

> and have no regret about it.

A worthy life goal. I feel that way, myself.

mathattack 2021-08-17 12:55:35 +0000 UTC [ - ]

Your kind of work is absolutely necessary for commercial software to run. You’d get crucified in an internal IT department where funding is entirely driven by new features, and 80% done usually has to be good enough.

jbverschoor 2021-08-17 13:05:33 +0000 UTC [ - ]

What I think is funny, is that developers get the most advanced tools out there (IDE, repl, debuggers, etc), for free. But deliver junk, blaming "the user"

The same is true for resource requirements and performance. People complain about their OS (windows, macos, sometimes linux or some VM), and that it takes 1 whole minute to boot, while some projects take a couple of minutes to start.

detaro 2021-08-17 13:10:28 +0000 UTC [ - ]

Heh, on the other hand it's also not uncommon to see complaints that developers refuse to pay for good tools, despite knowing first-hand that good software is hard to make.

3pt14159 2021-08-17 13:54:40 +0000 UTC [ - ]

My host OS takes about a second or two to boot and my VM OS takes about 5 seconds.

A whole minute would drive me insane. We should not be waiting this long for computers to turn on.

the_only_law 2021-08-17 15:15:59 +0000 UTC [ - ]

Currently my PC takes several minutes to boot, however I know the exact cause. I wonder how much boot time could be reduced by tuning settings, including not to start a lot if crap.

geebee 2021-08-18 02:35:11 +0000 UTC [ - ]

I like it too. I really enjoy knitting together data feeds from a bunch of different sources. I like using the ` character to deal with bizarro database headers that were imported from spreadsheets where people used strange characters or SQL syntax in column names. I like parsing JSON trees to pick out key value pairs according to odd patterns, getting the first nine characters of the names of a bunch of csv files on a website and adding whatever is new in them to a database where the column names are the first nine characters plus some other stuff. And so on. A lot of people find this hellacious, and for some reason, I kind of like it.

I read once that to be a good general practitioner physician, you have to kind of like dealing with bad breath and... well, it was a disgusting sentence, and you get all the info you need from the first half, so no need to take it further. But in a similar way, I kind of like totally messed up data sources.

tenaciousDaniel 2021-08-17 15:01:05 +0000 UTC [ - ]

So I've seen both sides of the "unpopularity" issue. On the one hand, the other comments about pushing too fast for new features are valid.

On the other hand, it very much depends on the developer in question. I'd say roughly 50% of the devs who claim to be in your category are, in fact, wasting dev cycles on pedantic things that have no impact on the end user. As an example, I had one developer take 6 months to build a (relatively simple) top nav for a web app. This shouldn't have taken more than 1-2 weeks, even with a careful eye for detail.

gilbetron 2021-08-17 19:34:29 +0000 UTC [ - ]

I've developed different red flags over the decades, and while I don't doubt you've encountered developers that are really slow, one of my red flags is the time estimate of "1-2 weeks". That's the off-the-cuff estimate that people give when they have no idea how long something will take. "A week or two" is "I can't imagine it would take very long, but my imagination isn't very good" ;)

drdec 2021-08-17 19:45:02 +0000 UTC [ - ]

Before it became a video game, Fortnight was a popular facetious codename for projects at my employer.

ChrisMarshallNY 2021-08-17 19:41:08 +0000 UTC [ - ]

ChrisMarshallNY 2021-08-17 15:39:53 +0000 UTC [ - ]

> I had one developer take 6 months to build a (relatively simple) top nav for a web app. This shouldn't have taken more than 1-2 weeks, even with a careful eye for detail.

Oh, you mean "bikeshedding."

Here's an example of the difference between basic quality, and High Quality:

If you look at most of the repos for SPM modules in my portfolio[0], you'll see that the vast majority have test harnesses. I prefer using test harnesses[1].

These test harnesses tend to be pretty damn robust apps. Many are "ready for app store" robust. A lot of folks would just publish them, "as is." I've been writing apps for a very long time. I'm pretty good at this.

I can write a fairly decent test harness, with full app capabilities, in less than a day. If I take the time to localize it, maybe add a day or so.

Here's an example of some test harnesses[2]. Note that there are four of them. These represent the four different target environments for Apple (iOS/iPadOS, WatchOS, TVOS, and MacOS). I'll probably need to fork iOS and iPadOS, in the future, but we're not there, yet. A single codebase is still good for both (But I hope that SwiftUI makes supporting multiple platforms easier. We'll see...).

They test a Bluetooth framework[3].

It probably took me around a week or so, to write each one. They are pretty damn good. I deliberately went "over the top," with them, because I like to exemplify what I consider halfway decent Quality coding practices. I think they are all "App Store ready."

I decided to actually go ahead, and create a set of apps, based on these[4], [5], [6]. Here's the codebase for those apps[7].

I spent well over a month, on each, after merging over the test harness codebases, to make them ready for the App Store. Lots of UX testing, removing code that only applied to testing, and adding "friendlier" user interface. I didn't do much "eye candy," like animations. If I did that, then I probably would have spent another month on each. Animations tend to bring ... interesting ... bugs. I'm going through that, right now, with the app currently under development.

I'm working on an app that I started about a year ago. Actually, I started it over ten years ago, if you include the two servers that I wrote, upon which it depends.

One of the reasons that it has taken so long, is that I have truncated months of work, and tossed them in the garbage, because they were not the proper way to go. I have an "evolutionary design" process[8], that means this can happen. I plan for it. I've probably shitcanned three months' of work.

Another thing that I do, is have an "always beta" approach to Quality. I maintain the product at "incomplete, but ship Quality" status for as much of the project as possible. In fact, I've been sharing it with the team, using TestFlight External Testing, since Oct 3, 2020 at 7:47 AM (I got that from the TestFlight metadata). The initial Git checkin of the project was Sept. 4.

That means that the app has been stable and robust enough for user testing, and approval for basic App Store release (TestFlight External Testing is a more relaxed standard, but try pushing out a crasher, and see how far that goes).

I add localization support, accessibility, Dark Mode support, leak testing, etc., at every turn. It's very useful, because I can solicit immediate feedback from non-tech team members. It also means that the "basics" for App Store release are constantly being tested and validated.

Even more useful, if we want to ask for money, it's dam easy. We just loop the person we're begging from, into the TestFlight External Tester pool, and they can run the app without a Marketing chaperone, or sacrifices to the demo gods. We can also get valuable feedback from them.

It's really, really nice, and it has been, for many months.

I feel like we are now at a "starting point." Even though it has been a fully-functioning, release-ready app for the last couple of months, it still needs the "MVP treatment," where the testing pool is expanded, and we start applying it to "in the wild" scenarios. We've kept it to a small user pool, so far.

Lots of companies use their customers as guinea pigs for the first several releases; usually by shoving baling-wire-and-duct-tape junk down their throats (and making them pay for it), before hitting their stride. It's a deliberate strategy. Some months ago, I read a post, here, by a founder, declaring that "if you don't get physically sick at the quality of the code in your MVP, then you are spending too much time on code quality."

Basically, deliberately write garbage, and force it on your users. This has the very significant disadvantage of establishing a foundation of sand. Everyone always plans to "go back and do it right," but that never actually happens. That "physically sickening" MVP is the product for life.

One of the reasons that I took on this project, was the founder is a friend of mine. He is running it as an NPO (501c3), and putting his own money into it. He doesn't really have much of it, to begin with. Also, more alarmingly, he didn't actually have a particularly good idea of what, exactly, he wanted the app to be. That's a recipe for disaster.

He asked me to help him vet some development shops he was approaching, to realize his vision.

It was eye-opening. He got a number of ridiculous quotes. I know what is necessary for this type of project (not small). For example, when one said that they'll deliver a full multi-server, multi-client app for MVP in three months (firm), upon getting a vague, hand-wavy requirements spec, it was hard for me to keep a straight face. The most honest one, was one that quoted a valid price (six figures, and minimum six months), then basically said "come back when you know what you want." I respected that one.

After a few of these, I just got disgusted, and said "Screw this. I'll do it." I've been developing it for free, as a native iOS/iPadOS app. We have refined the specification and mission, as the app has progressed. Having a high-quality, ship-ready prototype, goes a long way towards developing a good app.

He has to pinch himself.

[0] https://stackoverflow.com/story/chrismarshall

[1] https://littlegreenviper.com/miscellany/testing-harness-vs-u...

[2] https://github.com/RiftValleySoftware/RVS_BlueThoth/tree/mas...

[3] https://github.com/RiftValleySoftware/RVS_BlueThoth

[4] https://apps.apple.com/us/app/blue-van-clef-for-mobile/id151... (iOS -Includes Watch app)

[5] https://apps.apple.com/us/app/blue-van-clef/id1529005127 (Mac)

[6] https://apps.apple.com/us/app/blue-van-clef-for-tv/id1529181... (TV)

[7] https://github.com/RiftValleySoftware/BlueVanClef

[8] https://littlegreenviper.com/miscellany/evolutionary-design-...

lytefm 2021-08-17 20:53:53 +0000 UTC [ - ]

> "if you don't get physically sick at the quality of the code in your MVP, then you are spending too much time on code quality."

While exaggerated, I'd definitely agree. If you don't quite know yet where exactly your company will pivot to in the next year or whether the company will still exist, it doesn't make sense to optimize for code quality - but for product-market fit instead.

> Everyone always plans to "go back and do it right," but that never actually happens. That "physically sickening" MVP is the product for life.

After having raised an 8 M Series A and hiring some more developers and UX experts, we're currently rewriting most of our app code. It's not an automatism that the bad code gets built on for eternity.

ChrisMarshallNY 2021-08-17 21:00:12 +0000 UTC [ - ]

Or you could hire people who do it right, the first time.

Take a look at my work. Feel free to browse the commit logs, and see how fast I write it. I "put it all out there."

It's quite possible to do very high-quality work, in very little time.

Just maybe not from folks just out of code bootcamp.

And...just to make it clear. I'm not looking for work. My dance card is very full, with the work I'm doing for free.

commandlinefan 2021-08-17 16:57:05 +0000 UTC [ - ]

> I enjoy doing pedestrian stuff

I'm working right now on writing a shell script to exhaustively test a particular use case, because actually exhaustively testing it would (probably) take longer than writing the script. I'm doing this knowing full well that the next time this comes up two years from now, I'm probably not going to remember where I put this script, so I'll probably have to re-create it, but that's ok - because writing "boring" shell scripts is actually something I enjoy.

ryanianian 2021-08-17 19:51:39 +0000 UTC [ - ]

Put the script in a comment at the top of the code. It looks kinda funny and people tend to dislike that kind of thing in pull-requests, but I always just ask them to hold their breath and pretend the script isn't there. If the script isn't still useful the next time that code has meaningful change then remove it. I've never seen such scripts get removed - in fact they tend to evolve as the code they test/generate/modify does.

jacoblambda 2021-08-17 22:44:06 +0000 UTC [ - ]

Alternatively put it in a test scripts directory and put a comment linking to it in the header of the file (or readme if it's multiple files).

tharkun__ 2021-08-18 01:43:03 +0000 UTC [ - ]

No context here so I have to assume it's possible: why not include it in the automated test suite?

jacoblambda 2021-08-19 00:55:46 +0000 UTC [ - ]

Generally you should but depending on the type of test it might be prohibitive. I've definitely written up tests for validation purposes that I wouldn't use in a test suite normally before. Said tests usually require some complex or brittle setup and take hours or days to run. Because of that said tests are kept around for rare occasions.

Because they take so long and/or are so brittle, it's easier to just keep them on the side and update them when needed rather than deal with the back and forth on that in a project with a lot of code churn (i.e. when updating or retrofitting a legacy project). Once again, it's not ideal but it's better than nothing.

erichahn 2021-08-17 21:23:18 +0000 UTC [ - ]

Why not as its own file in the directory of the source code? Or in another directory...

ryanianian 2021-08-18 13:54:16 +0000 UTC [ - ]

I've seen junk drawer directories in repos full of similar files and usually the scripts don't get updated over time (perhaps the authors don't want to have their updates to the scripts reviewed). Having it with the file it manages commented out indicates it's intended as a purpose-built tool or historical artifact just for this file.

Beyond this it's just personal/team preference though.

tsian2 2021-08-17 19:21:29 +0000 UTC [ - ]

I like to intentionally go after the small bugs which other people have put off because they seem to be relatively high-effort. I like the idea that I can focus on something that's bothering some people (occasionally and indefinitely) and make it never bother anyone again.

mattarm 2021-08-17 15:42:11 +0000 UTC [ - ]

I'm much like you, especially in personal projects. In a personal project that I plan to stay with long term there is no way I want to be chasing my own bugs all the time.

At work, I've found I work best with fast moving get-it-done types. They push me to accept imperfect work, and I've learned to see the value in that. I polish the imperfect stuff, and signal to the team when a "boring" quality improvement really could reap benefits.

RHSeeger 2021-08-17 11:55:33 +0000 UTC [ - ]

This is what I focus on. I found a new way to do something (that is relatively common with my work) in a way that made it easier later to maintain the work that was done. It made my day.

BiteCode_dev 2021-08-17 16:25:21 +0000 UTC [ - ]

Well sir, you would be my ideal colleague.

gfodor 2021-08-17 16:29:32 +0000 UTC [ - ]

A common thing I've run into is people working on very, very toxic things for society, like human behavior modification (ad) systems, who get up every morning excited and enthusiastic about it because the technical challenges keep them interested. I generally avoid hiring people like this, who often will state openly they don't care very much about the application of their work, but "just want to solve hard problems."

jmfldn 2021-08-17 18:19:37 +0000 UTC [ - ]

I agree. I think it partly comes down to the extent to which they are apathetic about this though vs being actively aware of the wrong they feel they are doing. If somebody works on something that they personally believe is toxic and bad for society, I would be concerned about that person's level of alienation and what else that might mean about them as a worker and a person I have to work with. However, I'd be interested to know how many people are truly in this category. Are these engineers, enthusiasticly solving hard problems on some nefarious product, genuinely against what they're doing? Maybe most of them are simply apathetic about that part of it. That's not great either of course and it seems like an immature and selfish attitude at the very least. Of course, I would caveat this by saying that we don't all have the luxury of finding companies that align with our values and its probably a "first world problem". I'm very much aiming this at skilled software engineers, especially those in the major cities of wealthy countries, who can probably pick and choose a fair bit.

Personally, I don't want to work with people who don't care about the end goal for practical reasons as much as anything else. For the sorts of companies I've worked for at least, they make sub-standard contributions. I work on a very product-centric engineering team in a complex domain where not knowing the domain well will seriously hamper your ability to plan, refine and execute on features and bug fixes. Sure, we have a product manager but we still need that deep knowledge and you're probably only going to obtain that by being into the product and fairly engaged with it and the company's mission.

iainctduncan 2021-08-17 21:55:03 +0000 UTC [ - ]

So true. I recently found out an old acquaintance is now using his phd to do facial recognition for facebook. OMFG, not for all the money in the world....

Conversely I had another friend who switched out of his phd when he discovered every red cent of funding was somehow coming from the race to build killer robots. Props to you Henrik, if you ever read this!

arbuge 2021-08-17 17:17:23 +0000 UTC [ - ]

> very, very toxic things for society, like human behavior modification (ad) systems

I'm curious... since all advertising has the goal of modifying human behavior by definition (from the state of not buying your product/service, to buying it), would you consider all advertising to be toxic by your criterion?

And if not, where do you draw the line exactly?

gfodor 2021-08-17 17:19:59 +0000 UTC [ - ]

I don't draw any lines. That's generally not necessary. However, there are some systems that are clearly on one side of the line where I would consider it unethical to work on them.

The point isn't that I expect others to agree with me on this, but simply that I expect them to think about this and form opinions about it.

burnished 2021-08-17 19:00:48 +0000 UTC [ - ]

This seems like a kind of simple 'gotcha' question, right? Drawing an imaginary line and asking some one pick a point where it magically changes, when it doesn't work like that.

Some advertising is done as product discovery. You make something good, you want people to know about it. Some advertising is done to convince you to purchase regardless of its value proposition using psychological tricks. Or, since they were talking more generally about manipulating human behaviors, we can include 'dark patterns'.

Thiez 2021-08-17 20:25:48 +0000 UTC [ - ]

The gotcha question goes back a long time. See "Loki's Wager".

gammarator 2021-08-17 22:44:00 +0000 UTC [ - ]

Arguably (see the book “Disciplined Minds”) this outcome is one of the functional aims of STEM higher education. The exam structure selects for and thus identifies students willing to focus on technical problems divorced from ethical context.

2021-08-17 17:31:12 +0000 UTC [ - ]

dabfiend19 2021-08-17 17:00:29 +0000 UTC [ - ]

why does a person's interest in the application of their work serve as a signal for if you should hire them? I mean maybe for someone in a product role, but how is it relevant to hiring an individual contributor?

not hiring someone just because of their internal philosophies feels like gate keeping to me.

if someone is a cynic and realizes most start ups arent out there "making the world a better place"... doesn't really have any bearing on their potential output.

gfodor 2021-08-17 17:22:22 +0000 UTC [ - ]

It is gate keeping. That's the point. I don't want to work with people who feel like it's reasonable to be unaware or agnostic to the effect their work is going to have on actual people. I don't believe in the meme that someone's role ought to dictate if they need to consider the consequences of their creative efforts on other human beings.

I have a lot more respect for people who consider these things, and just have different opinions than I about what they consider worthy applications, than those who just consider it unnecessary to think about these things. We have an obligation, if we are going to call ourselves "engineers", to consider what we are working on from an ethical perspective.

SubuSS 2021-08-17 18:43:09 +0000 UTC [ - ]

I think there is a bit of goal most moving happening here:

- you started with ad systems as example of evil: they patently aren’t. They are more of a result of the deeper cause - folks don’t want to pay for things if possible. So now the bill gets moved to a different table, that’s all. All the humanitarian efforts (if any) are standing on the shoulders of the money generated from ads

- if someone says ‘I just want to solve hard problems’ - it is quite a leap from there to assuming they don’t care about social problems. May be they don’t feel empowered/qualified to tackle the big social questions and are just trying to make a living and possibly be productive doing so. Or they don’t want to tackle a social conversation in a workplace setting.

I am very wary of the forcing that’s happening of making everyone involved in social/philosophical questions whether they like it or not. A lot of people just want to make it through the day/build expertise in something and make it through their life. They’d prefer to pay taxes and let other entities / experts deal with those. This doesn’t mean apathy, it just means a lack of time and ability. I think that’s worth respecting.

Rioghasarig 2021-08-17 19:27:50 +0000 UTC [ - ]

> goal post moving

You're being silly. The guy is explaining his perspective. He's explaining what he believes and why he believes it. He's not writing a thesis or constructing some logical argument. This isn't a debate. Applying the term "goal post moving" to this makes absolutely no sense.

I just feel like you're taking a confrontational approach rather than just trying to understand his position. Nothing he says is inherently contradictory.

SubuSS 2021-08-17 22:14:23 +0000 UTC [ - ]

Lol isn’t it odd you consider the defense confrontational while the op started with calling a bunch of folks morally challenged?

Fwiw - I don’t work on ad systems. I was just stating my opinion about how borderline ethical considerations from misuse are pervading engineering and science today. What about intent?

gfodor 2021-08-18 00:55:11 +0000 UTC [ - ]

I didn’t say anyone was morally challenged. I said there are a lot of people I’ve encountered in my career that are ethically apathetic. I highlighted ad systems (not all ad systems, just some) as the kind of thing I personally consider toxic and where I have encountered people who check themselves out from caring about the ethical dilemmas involved in developing such systems, focusing instead on the fun puzzles involved.

My point isn’t that I won’t hire people who worked on such things, my point is I won’t hire people who are completely disinterested in the ethics of what they are doing. I’m not imagining this, I have worked with many people like this in my several-decades long career. Beyond the ethics, this is just good business, since people plowing ahead on things while being blind to ethics is how people get harmed and lawsuits get filed.

This isn’t a revolutionary concept in other engineering fields: you can lose your license if you violate certain codes of ethics, either maliciously or due to ignorance or apathy towards following them.

gfodor 2021-08-17 19:40:48 +0000 UTC [ - ]

I never said all ad systems are evil, yet you are saying no ad systems are evil.

I never said that if someone doesn't care about the purpose of their work, they don't care about social problems.

If you're going to turn this into a debate, at least try not tearing down strawmen.

The point of my post wasn't to make strong claims about ad systems being universally evil. It's just like, my opinion man, that some are. The point was to state that I do not want to work with people who, knowingly, do their work in an ethical vacuum, focused entirely on the technical problems at hand.

SubuSS 2021-08-17 22:28:05 +0000 UTC [ - ]

No you didn’t call them evil: you just called them

>Very, very toxic things for society, like human behavior modification (ad) systems

You didn’t say those points about people’s intents, you just said you won’t hire them / won’t work with them.

Sorry for paraphrasing. My argument stands.

Yes you’re allowed to have whatever opinions you want to hold. But here you’re proclaiming it in a public space where it can definitely be construed as judgmental.

Finally you call my arguments as fighting a straw man and yet you construct one yourself: ‘folks who work in an ethical vacuum’. My whole point is that’s probably a very minuscule amount of folks and something you are refining as a true Scotsman from your previous generic statements. My whole response is around how most folks do consider it but file it under fair use expectations and move on - so it is not a fair opinion. That’s all.

gfodor 2021-08-18 00:47:38 +0000 UTC [ - ]

You aren’t making any sense.

You sound like you were offended by my characterization of ad systems and extrapolated a ton of imaginary arguments from there you’re attacking. I’m not sure who you are arguing with, but it sure isn’t me.

burnished 2021-08-17 19:09:13 +0000 UTC [ - ]

Its ineluctable. If you are an engineer, your work has a moral and ethical axis that inseparable from the rest. This is what our professional societies believe, it is what you are taught in school, it is in many ways no more than taking responsibility for your actions.

What you are describing is apathy. You don't get to stand apart from the work that you do because it is hard.

SubuSS 2021-08-17 22:11:01 +0000 UTC [ - ]

I see two issues with that way of thinking:

- morality and ethics are a gradient and are fluidly getting defined as we evolve. Are you still immoral or apathetic if you use electricity generated from coal? Or are you saying we are all apathetic but this is the one instance you want to stake your argument on?

- almost all systems get misused over time: are all those makers apathetic? What about the intent of the hustlers using such systems?

burnished 2021-08-19 09:20:49 +0000 UTC [ - ]

Great, you've successfully diluted the statement with questions that are adjacent, if you squint.

Engineering work has an ethical element to it. I do not see how what you are your 'just asking questions' intersects with this.

Enginerrrd 2021-08-17 18:44:02 +0000 UTC [ - ]

Holy Christ, Are you seriously asking why ethics and concern for how the systems you design interact with end users and targets of those systems might be a worthy consideration?

Let me give you a concrete example:

Imagine you are an software engineer tasked with working on a facial recognition system to help police identify known criminals to help find suspects near the time and location of a crime. It observes nearby people and assigns a probability to them being a known criminal. Police department demands 80% accuracy for the product.

You design such a system using some blackbox facial recognition AI, and you get the following results:

Overall 78% accuracy with:

6.5% False Positive rate 31% False negative rate

Not too bad, you tweak some things, hit your 80% accuracy without messing with the false positives too badly, and you meet the specification provided by the client. Mission accomplished and you're ready to ship right? Makes the company money? No problems?

Cool. Except, because you didn't really care that much about how the technology you deployed would be used or the ethics surrounding its use, you failed to consider the right performance targets despite what your client asked for and your system is nearly 100% racist.

What happened?

You trained on equal numbers of prison mugshots, and mugshot like photos of people with no criminal records. You failed to consider that black people are over represented in the US prison system. (38% of prisoners but 13% of US population) Your classifier just learned to label someone a likely criminal if they were black and essentially no other criteria.

Yet, the actual likelihood the people identified by the system as "criminals" in fact have a criminal history is at most somewhere ~33% despite the fact your system labels it as 80% likely. Worse, even if we have a hypothetical situation where blacks and non-blacks are represented in their average proportions, there's a near equal number of black and non-black people with criminal histories in the vicinity of the crime! Worse still, since people tend to be more segregated than that, when blacks are in even more of a minority there will be more non-blacks with criminal histories around. When blacks make up a greater proportion, the likelihood of being falsely accused goes up even more.

And FYI... such systems with similar flaws have actually been built and deployed in the past. How do you think that plays on trust in the company and the technology in general in the long run? Considering end-use ethics brings value.

SuoDuanDao 2021-08-17 20:30:28 +0000 UTC [ - ]

Warren Buffet has a great quote on this topic. He says he hires on three criteria: Intelligence, energy, and character. He adds, "Those first two will kill you if you don't have the last one. If someone's immoral you want them to be dumb and lazy".

Being a high performer is not a positive when someone's looking to take advantage of you.

sershe 2021-08-18 06:50:41 +0000 UTC [ - ]

What if they disagree with you on whether it's bad for society?

vmception 2021-08-17 22:04:33 +0000 UTC [ - ]

the cognitive dissonance is strong in this one

nivenkos 2021-08-17 10:54:03 +0000 UTC [ - ]

But I think the reason that isn't boring is because you have autonomy and, in this case literally, ownership.

Being stuck writing boring SQL reports or struggling with open-ended problems so someone else makes more money isn't such a great proposition.

tr33house 2021-08-17 10:56:51 +0000 UTC [ - ]

I agree. Ownership is underrated. Perhaps one of the biggest incentives out there

WJW 2021-08-17 12:46:50 +0000 UTC [ - ]

Perhaps, if it is actual ownership and not the fake modern ownership that gives you the downsides but not the upsides. Whenever I hear that term I get reminded of the discussion from https://news.ycombinator.com/item?id=21550975:

> Jordanpomeroy on Nov 16, 2019

> I find ownership to be motivating. Good leaders inspire me to own results, but also empower me to own the “how”. When I do not own the method of obtaining success, I do not feel like I truly am responsible for success. The truth is, with more complex work, good leaders realize they’re at the mercy of those that do the work, because of the complexity only the people actually doing the work have complete understanding of the system. Therefore, the best card to play is to be very clear about the desired outcome, including the whole strategy and context behind it, and hope the team owns it all.

> paulriddle on Nov 16, 2019 [–]

> It's funny how carefully you're stepping around financially rewarding people who do the work. It's like you know your status does not allow you to own the money generated, so you're settling for owning the results, the process, the method, the responsibility, the all. You are weak.

A bit harsh towards the end perhaps, but paulriddle does make a valid point on actual vs fake ownership.

john_yaya 2021-08-17 11:13:23 +0000 UTC [ - ]

Thank you for saying this. I’m currently an engineering manager at a “fun” and “interesting” company in SV, and I absolutely hate it. It took me a while to figure out why - but in retrospect, it’s pretty obvious. Writing Jira epics and doing code reviews for someone else’s vision is, for me at least, deeply unfulfilling, no matter how ambitious that vision is.

Guid_NewGuid 2021-08-17 14:02:10 +0000 UTC [ - ]

This is what inspired me to write this: https://d22qefpbdavdoz.cloudfront.net/#let-me-work

We're working the wrong way across the industry, developers are being cut-off from the processes they are instrumental in. None of it makes any sense and it's soul destroying.

nivenkos 2021-08-17 15:43:51 +0000 UTC [ - ]

I agree with this completely.

It goes both ways too, like companies that try to keep business analysts and strategists completely separate from the database and data generation specifics.

gugagore 2021-08-17 11:15:42 +0000 UTC [ - ]

I'm assuming you have some ownership in the form of stock, and I'm wondering how that factors into it.

Can you imagine a vision that would be easier to get behind, even if it originated with someone else?

john_yaya 2021-08-17 11:20:18 +0000 UTC [ - ]

I do have some RSUs, but no real way of knowing how much they’ll be worth, if anything. I don’t get to see a cap table, nor am I privy to the investors’ term sheet to know what their overhang is.

Stock options used to be an enticing form of ownership, now it’s a crapshoot: you’re gambling that you won’t get screwed.

But all of that is beside the point. When I (and presumably the original poster) are talking about ownership, we mean the sense of originating and creating the thing we’re building, not just owning the material benefit from it.

apercu 2021-08-17 11:28:27 +0000 UTC [ - ]

"Stock options used to be an enticing form of ownership, now it’s a crapshoot: you’re gambling that you won’t get screwed."

I've had options and equity and RSU's and all sorts of things. Even diluted but still owned 11% of a company when I exited.

In 25 years of tech and startups I have probably received about $30k total in compensation related to equity.

Odds are you will be screwed.

fossuser 2021-08-17 15:27:11 +0000 UTC [ - ]

Not sure if you’re not in the Bay Area, but for a counter point many (maybe most?) of friends I know have had large payoffs (though not always with options, sometimes RSUs) - it does require some risk taking (holding onto them longer, not just immediately liquidating them, sometimes exercising options and floating that cost/tax until exit).

These payoffs range between 500k and $20M for people I know well with more clustered in the 500k-2M range. Higher level people I don’t know super well easily clear 50M+, this isn’t just one company exit event either *.

Equity should not be underrated.

* FB, Snap, Google (RSUs), Uber, Lyft, AirBnB, Tesla etc.

mvp 2021-08-17 11:39:27 +0000 UTC [ - ]

Ownership is one thing. If the company believes in a cause and everybody in the company is truly working towards that cause, it may be equally, if not more, fulfilling. Does your company work on a problem or cause that you believe in?

MagicWishMonkey 2021-08-17 11:48:29 +0000 UTC [ - ]

Options have always been a crapshoot with the odds heavily stacked against you.

zippergz 2021-08-17 14:33:20 +0000 UTC [ - ]

At any sufficiently large company, the connection between my work and the stock price is loose at best. If you're an executive, it might be more direct. But in the public companies I have been an employee of, I have never felt a shred of motivation from this stock-based "ownership" in the sense of a true belief that doing better work will make that stock be worth more. In the aggregate, yes, but individually, no.

sdevonoes 2021-08-17 11:35:29 +0000 UTC [ - ]

> Ownership is underrated

You meant perhaps overrated? At least in my experience so far in the tech industry, in all the companies I have worked for they always praise "ownership" as in: "as an engineer you own a product from conception to development to deployment to maintenance"... but they never talk about money. There is nothing like "If the company goes well and since you own part of it, here you have a bonus!" Nop, at least in Western Europe is not like that. You behave as if you must own the company, but you get no benefits at all; so basically: work more for the same money.

rhn_mk1 2021-08-17 12:33:39 +0000 UTC [ - ]

I think your observation confirms that it's underrated. The people who don't talk about money use a weird notion of ownership where it means responsibility, but doesn't seem to mean benefits.

Marx is turning in his grave.

Ownership that OP means is about having the agency to be part of the whole picture: responsibilities, work, challenges, and results.

kthejoker2 2021-08-17 13:54:27 +0000 UTC [ - ]

I just read Arnold Schwarzenegger's essay in The Atlantic (full disclosure: 110% agree) ...

A thing that stood out, when Arnie spoke out against people using "freedom" as justification for not getting a vaccine or wearing a mask, he said

> Many people told me that the Constitution gives them rights, but not responsibilities. They feel no duty to protect their fellow citizens.

I see a direct link betwen the decline of capitalist equity and civic responsibility. As you say, there are no benefits, and therefore no agency.

The generations Arnie holds up as exemplars of civic virtue also had higher tax rates, stronger unions, and a much heartier social safety net.

chubot 2021-08-17 12:52:51 +0000 UTC [ - ]

Paul Graham has an essay somewhere where he describes Robert Morris (creator of the Morris worm, kernel hacker, professor at MIT) as the FreeBSD sys admin for ViaWeb :) That is, probably the "most overqualified" sys admin in the world, because he was owning the whole problem.

----

The OP's post is related to the motivation for my work on https://www.oilshell.org/ -- I found that shell solves important problems quickly and effectively.

In contrast, in 1999, in college, I worked an an autonomous underwater vehicle project that didn't work very well. In 2021, I still think that autonomous vehicles don't work very well.

I also have a Erdos number of 3 due to a 2016 publication on deep learning, but that was mostly due to shell scripts as well. The publication has thousands of citations but I'm unsure if it will ever be useful.

The author of Please Commit More Blatant Academic Fraud bravely stated that publications from the same group (Google Brain), with common co-authors, are bullshit:

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

LordHumungous 2021-08-17 17:22:23 +0000 UTC [ - ]

My favorite project in recent years was a little python service that I owned end to end. The rest of the company deployed into this god awful monolith but my service ran on a little forgotten AWS account where I had full control. Eventually they got around to eliminating that account, and I was out.

geoduck14 2021-08-17 12:59:52 +0000 UTC [ - ]

>Being stuck writing boring SQL reports or struggling with open-ended problems

I REALLY like SQL amd open ended problems. But sometimes I don't like work because work gets in the way of my SQL and BI stuff

kirillzubovsky 2021-08-17 16:44:02 +0000 UTC [ - ]

This is the best and worst advice all in one.

It is the best because it is true. At least from what I've seen, there countless amazing engineers stuck doing really hard problems for little return, while their rather lousy counterparts razzle-dazzle the world with hand-waving; no brains necessary. If you can find an important problem that won't bore you to tears and solve it, it's definitely more important in the short term.

That said, without brilliant engineers working on hard problems and occasionally inventing really great new things, we wouldn't get far in life. So if you can forgo the fame and the riches, there is a lot of sense in working on hard/interesting problems. Someone's got to.

Personally I think picking a problem that fits your is more important than picking an outcome. The outcome won't make you happy, but the journey around the right problem will. I think.

posharma 2021-08-17 19:34:33 +0000 UTC [ - ]

There are at least 5 problems with doing pedestrian stuff in a corporate setup. Of course, this is part subjective, part circumstantial.

(1) Low pay.

(2) If you mess up you get penalized more severely. If you mess up a hard problem you get the benefit of doubt, but if you do well you get great rewards. Doing well on boring problems doesn't earn you any special rewards.

(3) Consistently doing pedestrian stuff makes you feel dumb in the scrum (esp. when others are tackling hard problems).

(4) You're first on the chopping block since you're not the "core".

(5) Your growth, both professionally and personally, will be shunted.

formerly_proven 2021-08-17 19:35:45 +0000 UTC [ - ]

The trick might be to work on problems that others consider hard but you don't. Or, alternatively, problems that might not be hard, but deliver valuable business value to people who value business value.

pjmlp 2021-08-17 13:17:01 +0000 UTC [ - ]

I rather work in solving customer problems, regardless of complexity, even if it is a two lines bash script.

The satisfaction of actually having an impact on someone's live and work.

brundolf 2021-08-17 19:00:40 +0000 UTC [ - ]

One of the most rewarding projects I've ever worked on was a catalogue website for a local music shop. It paid what I now make salaried in about two weeks, but in the years since I've heard back on multiple occasions how much easier it made the lives of these lovely people running this lovely little store. They didn't even have a CMS before; they made pages manually, via a WYSIWYG from the 90s, for each of their hundreds of instruments. And since COVID, more than half their business comes through this site. It's made a night-and-day difference for them.

I think the over-engineering problem described by the author comes down to the fact that most of the work that most of us do is deeply empty. We don't impact lives in meaningful ways, at least not directly and/or for the better. You really need both of those to feel a sense of personal impact. So we look for other forms of reward instead- we create puzzles for ourselves to solve.

It's hard to find work in our field that's directly impactful at all, much less that pays anywhere near what we'd make otherwise. Software companies that aren't eating the world can't afford to pay salaries that cover a comfortable cost-of-living in SF or Seattle or Austin, where many of us have put down roots already. And (my impression is that) they hardly exist at all outside of those hubs.

I don't know what the answer is.

gambler 2021-08-17 13:13:56 +0000 UTC [ - ]

>School is a closed-world domain—you are solving crisply-defined puzzles

Bingo. When people from US tech culture say "hard problems" they really mean "hard puzzles". A lot of those people are very proud of their puzzle-solving skills acquired at school (what Edward De Bono calls vertical thinking), while being absolutely awful at dealing with ill-defined open problems (lateral thinking). Instead of counteracting this tendency in some way most Silicon Valley companies actually amplify the problem by running puzzle interviews and structuring their work around glorified paperclip maximization. This is why so many systems we have to use today are extremely complex, highly optimized for some specific criteria, but ultimately designed like shit.

daveslash 2021-08-17 14:43:52 +0000 UTC [ - ]

This really hit me this morning, and the timing couldn't be better. We took on a CompSci intern from an Ivy League for the summer. Tomorrow's his last day. When he first came on, I was really trepidatious; I couldn't put my finger on why, but this blog post sums it up perfectly. We're doing important work, but it's not "hard puzzles". It's "hard" work, but we work with boring technology and solve boring technical problems ~ I was worried about how this go over with the intern from the Ivy Leagues. Day one we're tearing down hardware with vice grips because the guy with the hex-drivers is out and splicing wires. Tomorrow's his last day, and he seemed to really enjoy it, but I think he enjoyed it because it was not "just another hard puzzle" - he was given "ultra-vague end goal", had to "prioritize many different sub-problems", and "probably don’t even know what all the dimensions are, let alone which are the most important". Much different from all of his academia... I'm glad he enjoyed it, and I feel good having provided a valuable experience for a talented budding CompSci engineer.

ctvo 2021-08-17 16:33:03 +0000 UTC [ - ]

I was with you until the end.

> Instead of counteracting this tendency in some way most Silicon Valley companies actually amplify the problem by running puzzle interviews and structuring their work around glorified paperclip maximization. This is why so many systems we have to use today are extremely complex, highly optimized for some specific criteria, but ultimately designed like shit.

That's quite a jump. There are multitudes of interacting systems that cause complexity in software, from time constraints, to company structure, to incorrectly mapping the domain, to sometimes incompetency. Companies that don't hire and reward the behavior you outline have just as complex systems. Maybe there's something else there?

lixtra 2021-08-17 13:58:59 +0000 UTC [ - ]

I don’t see it so strict. You can put vertical and lateral thinkers together in a team and get the best of both worlds, i.e. solve the puzzles that matter and provide a sane system that actually works.

the_only_law 2021-08-17 12:56:43 +0000 UTC [ - ]

I don’t want to work on hard things, I want to work on interesting things, which may or may not be hard.

fatnoah 2021-08-17 15:01:02 +0000 UTC [ - ]

> I want to work on interesting things, which may or may not be hard

This was my first thought as well. I want to be able to do something that I find interesting or rewarding. Those things exist across the entire easy to hard spectrum.

caseyross 2021-08-17 13:11:26 +0000 UTC [ - ]

"Any run-of-the-mill engineer can design something which is elegant. A good engineer designs systems to be efficient. A great engineer designs them to be effective."

- from Akin's Laws of Spacecraft Design

li2uR3ce 2021-08-17 13:20:51 +0000 UTC [ - ]

> A solution’s performance has many different dimensions (speed, reliability, usability, repeatability, cost, …)—you probably don’t even know what all the dimensions are, let alone which are the most important.

The "hard problem" is finding the balance. Don't be a UI developer that lets beauty eclipse speed, reliability, usability, repeatability, cost--every. last. fucking. time.

The author is on to something in that academia's "one dimensional" evaluation shouldn't be used in the real world.

a_square_peg 2021-08-17 20:45:59 +0000 UTC [ - ]

"Solve problems that matter" is how I might describe it - maybe they are hard problems, maybe not.

The propensity to enjoy working on hard problems can also lead them to make any assigned problem harder than it needs to be. I regard software developer who likes 'coding' with somewhat similar suspicion that I would have with a dentist who likes pulling teeth out.

caffeine 2021-08-17 22:21:31 +0000 UTC [ - ]

Hard problems seem to crop up whenever you get far enough along doing something. At some point you’re not a beginner any more, you’ve reached the bleeding edge of whatever your domain is, and hard problems just start presenting themselves and you have to solve them to progress.

So I agree with TFA that there is no need to go explicitly looking for them .. just do something well enough and keep progressing for a long time, and the hard problems will come to you.

(A canonical example of this might be something like Facebook .. most CS undergrads could easily write the first version of FB, while years later it takes many, many CS PhDs to keep building what FB is now)

A corollary is that if you just start on day one with the hardest problem you can think of, solving it is probably not very useful (there are exceptions). The more useful hard problems to solve come up when you’re trying to accomplish something else.

toss1 2021-08-17 13:58:20 +0000 UTC [ - ]

>>...you’ll end up looking for trickier and trickier puzzles that you can get an A+ on.

>> The real world is the polar opposite. You’ll have some ultra-vague end goal, like “help people in sub-Saharan Africa solve their money problems,” based on which you’ll need to prioritize many different sub-problems. A solution’s performance has many different dimensions (speed, reliability, usability, repeatability, cost, …)—you probably don’t even know what all the dimensions are, let alone which are the most important. The range of plausible outcomes covers orders of magnitude and the ceiling is saving billions of lives. The habits you learn by working on problem sets won’t help you here.

The latter sounds like the very definition of a "Hard Problem". Not a single tricky puzzle, but a labyrinth of pseudo-randomly interdependent sub-problems, each of which looks easy, and the optimization goals map onto multiple independent dimensions (physical, commercial, political...).

So, yes, "hard technical problems", are a really minor subset of the truly hard problems in the world.

Endless fun to be had

dcolkitt 2021-08-17 18:09:45 +0000 UTC [ - ]

One reason that a lot of very intellectual people express a skepticism of capitalism is because so often you see very successful who aren't very bright. It's typical to see a small-to-medium business owner worth $20 million, who's maybe above average intelligence, but nowhere near the brain power of say a physics PhD who's grinding out postdocs at $45k/year.

I think one reason for that is because the market price system already does a lot of the intellectual heavy lifting. In many cases the market gives you very transparent signals about relative cost and scarcity of resources. For a typical entrepreneur, it's often just about putting in the hustle, grit, and risk tolerance to convert low-priced inputs into high-priced outputs.

For example, I can pretty clearly identify that my area needs a car wash. A lot of homes were built in this zip code recently, and there's no car wash to service a new, large market. The car wash business model is pretty easy to project. With a tiny bit of research I can easily figure out prices, wages, rents, etc.

Opening and running a successful car wash would not be a hard intellectual problem. What it would be is a hard pain-in-the-ass problem. The challenge of owning a car wash isn't solving differential equations. It's waking up to an emergency call at 6 am that your bathroom's flooding, and half your staff called out sick because they're hung over.

Rioghasarig 2021-08-17 19:52:14 +0000 UTC [ - ]

I don't see anything wrong with this situation. People who exhibit profit-seeking behavior (entrepreneurs) can make much more money than people don't exhibit profit-seeking behavior (PhD students). That sounds like a reasonable system to me.

tehjoker 2021-08-17 20:17:01 +0000 UTC [ - ]

Why would we want to give more money to the people that simply want more money? Aren't those the worst people to give more money and power to?

drran 2021-08-17 22:01:55 +0000 UTC [ - ]

When you will need to wash a car, hire a PhD. It's your money.

newbie2020 2021-08-17 18:53:27 +0000 UTC [ - ]

That in my opinion is the great thing about capitalism. Someone with average intelligence but an insane work ethic can make it big. I see this completely the other way.

And one thing I’ve learned as I’ve grown older is that my patience runs thin these days. That means I’m willing to pay big bucks for people to handle pain-in-the-ass problems for me. Conversely, I don’t know what I’d do with a paper on theoretical physics other than use the back side as scratch paper

kiliantics 2021-08-17 15:05:30 +0000 UTC [ - ]

Instead of the "hard problems" of writing numerical integral routines in quantitative finance, the author chooses to try doing something for less fortunate people in poorer countries. I'd argue the latter is far more difficult! Mathematical problems, while maybe complex, are usually well defined, whereas social problems are never straightforward. The author even admits that the app ended up being more helpful to bad actors than to the intended benefactors.

If the claim in this piece is "you don't need to work on technical problems, you need to work on social problems" then I could agree. I believe there is pretty much an ethical imperative, for anyone with the freedom of choice in their work, to choose to work on social problems of poverty, climate change, etc. But these are far from being easy problems!

shadytrees 2021-08-17 19:27:00 +0000 UTC [ - ]

> School is a closed-world domain—you are solving crisply-defined puzzles (multiply these two numbers, implement this algorithm, write a book report by this rubric), your solution is evaluated on one dimension (letter grade), and the performance ceiling (an A+) is low. The only form of progression is to take harder courses. If you try to maximize your rewards under this reward function, you’ll end up looking for trickier and trickier puzzles that you can get an A+ on.

> The real world is the polar opposite.

Terry Tao makes much the same point in this video: https://www.youtube.com/watch?v=MXJ-zpJeY3E

vishnugupta 2021-08-17 12:50:14 +0000 UTC [ - ]

A good corollary: http://boringtechnology.club/

jxramos 2021-08-17 19:56:59 +0000 UTC [ - ]

Here's a great complimentary nugget of wisdom Elon Musk shared on the tour he gave of Starbase recently that intersects with a closely related concept.

17:29 Possibly the most common error of a smart engineer is to optimize the thing that should not exist. And say, well, why would you do that? Well, everyone has been trained in high school and college that you gotta answer the question, convergent logic. So you can't tell a professor, "your question is dumb", or you will get a bad grade. You have to answer the question. So everyone is basically, without knowing it, they got like mental straight jacket on that is they'll work on optimizing the thing that should simply not exist. https://youtu.be/t705r8ICkRw?t=1049

raman162 2021-08-17 15:59:03 +0000 UTC [ - ]

As someone who is still trying to grow technically, this was a good reminder that at the end of the day we put our effort towards solving problems that matter.

2021-08-17 18:32:49 +0000 UTC [ - ]

ajot 2021-08-17 16:49:53 +0000 UTC [ - ]

This resonates a lot with the classic Richard Feynman's letter about "which problems to solve"

http://genius.cat-v.org/richard-feynman/writtings/letters/pr...

jollybean 2021-08-17 15:46:17 +0000 UTC [ - ]

Trying to stop fraud on a platform meant for migrants is absolutely a 'hard problem'.

Just trying to get the app out there for people to use is a 'hard problem'.

So it's mostly definitely 'hard' , just no in the bounded way puzzles are presented in classrooms.

Where I find it gets bad is in technical conditions wherein people are used to competing on these terms aka 'who is the smartest'. If find people end up arguing over the wrong things, and of course 'bike shedding'.

If the problem is framed in terms of outcomes, then it's harder bike-shed or wax philosophic because those activities are more or less exposed as having less relevance.

qualudeheart 2021-08-17 20:22:55 +0000 UTC [ - ]

Working on hard problems will soon be the only thing to provide my life meaning, as all trivial labor becomes automated.

There will exist a window between the automation of all trivial labor, and the eclipse of human intelligence by artifical intelligence, such that within this window meaningful work will remain possible.

I intend to try to contribute to hard problems within that time frame.

All else is a meaningless waste of time.

dang 2021-08-17 20:33:36 +0000 UTC [ - ]

Discussed at the time:

You don't need to work on hard problems - https://news.ycombinator.com/item?id=22398118 - Feb 2020 (43 comments)

jxramos 2021-08-17 19:44:15 +0000 UTC [ - ]

    Real world, 2016—Wave’s new second-biggest problem is that we have outgrown Quickbooks. 
Wow, I'm curious does anyone know what kind of scale that tool operates at and where its limitations arise from?

villasv 2021-08-17 20:32:36 +0000 UTC [ - ]

Somewhat related but kinda in the other direction: https://news.ycombinator.com/item?id=27988260

2021-08-17 15:39:57 +0000 UTC [ - ]

unixhero 2021-08-17 13:41:59 +0000 UTC [ - ]

I believe he was following his urge to solve hard problems by engineering a solution to them, instead of applying technology leadership. Engineering is worth its weight in gold, but not everywhere, everytime.

AussieWog93 2021-08-17 14:28:42 +0000 UTC [ - ]

I would also add, from experience, that it's easy to make a lot of money solving relatively easy/un-sexy problems.

If stoners or idiots can do it and earn a living, a skilled engineer can make a small fortune.

tingletech 2021-08-17 16:17:20 +0000 UTC [ - ]

so, use boring tech to work on hard "real world" problems

Forge36 2021-08-17 18:42:15 +0000 UTC [ - ]

There's pride in doing the easy things well. With enough of the easy stuff automated to minimal intervention, time can be spent on the important problems

2021-08-17 16:00:19 +0000 UTC [ - ]

LordHumungous 2021-08-17 17:25:20 +0000 UTC [ - ]

Easy problems are hard if you've never done them before. As a new grad, you can learn a lot at a "boring" job.

dehrmann 2021-08-17 16:43:44 +0000 UTC [ - ]

Hard technical problems are rarely the hard part of my job. People, ambiguity, and direction are where the real challenges are.

Zababa 2021-08-17 13:34:43 +0000 UTC [ - ]

Following on this, are there websites that lists non-profits that needs software engineers, especially for volunteering? Or is you best bet to find a local place and go ask? If anyone has experience volunteering with software, I'd love to hear your experience. I wish I could put my Excel skills to good use.

paganel 2021-08-17 19:47:04 +0000 UTC [ - ]

> or find the easiest problem whose solution would be useful (like identifying Kenyan names),

Not sure if that would have been possible for the OP but maybe he/she could have tried to match the incoming names to a known-database of Kenyan names, like a Kenyan phone-book or something?

I had a similar problem to solve in one of my personal projects when I wanted to put on a map the buildings nationalised just after WW2 by the communist regime from my country, buildings which belonged to Jewish citizens. I had a big list of nationalised buildings with a name attached to each of them, I needed to know if that name was Jewish or not. In order to do that I just matched that list of names to the list of names from Yad Vashem [1], list which contains only Jewish names.

[1] https://www.yadvashem.org/

Toine 2021-08-17 19:17:55 +0000 UTC [ - ]

That's how you tend to get better business ideas aswell

xchip 2021-08-17 16:58:36 +0000 UTC [ - ]

\o/ Please give all the hard problems to me! :)

andyxor 2021-08-17 18:47:36 +0000 UTC [ - ]

the only thing worse than working for an "A+ on a hard problem" is competing on a hard problem in a crowded space.

Mandatory "You and Your Research" by Richard Hamming: https://www.cs.virginia.edu/~robins/YouAndYourResearch.html