Hacker News new | ask | show | jobs
by deadghost 899 days ago
My previous company was doing this. I basically quit out of frustration. They weren't much better than picking random people off the street and pointing them at code. It bled into my work life when they took over a project I was on and was pinging me constantly with "hello" and "good morning" expecting to jump on calls with their teams to explain exactly how to do their jobs.

An example to illustrate what I was working with:

Problem: input validation is too restrictive

Their solution: remove all input validation

For my mental well-being, I couldn't stay on.

6 comments

Pro tip: just don’t respond to the “good morning” messages. If they don’t follow up it wasn’t important anyway.
This is the reference I like: https://nohello.net
Bottom Line Up Front - opening your message with the core request or message first - is a related practice from the military that works really well for email. https://en.wikipedia.org/wiki/BLUF_(communication)

The way I apply this to emails is to ask myself: if someone only reads the first sentence would they know what I need and if they need to act on it immediately, read it at their leisure, or file it away?

I like this one, it's a little more subtle: https://yeshello.org/
I fear that one would be misinterpreted by a significant percentage of American office workers.

And by an even higher percentage of overseas colleagues in some countries.

Look at the timestamps. That exchange extends over three days on that site, showing how useless it is in a subtle way.
Consider all the people who are naturally inclined or conditioned to behave like the example, and then consider that many of them will miss the subtlety.

Especially those who for whom American business culture might be foreign. "Oh, they have politeness and trust-building conventions, much like we do. This is more pleasant than Hollywood led us to believe. It seems the difference is that you also verbalize what you are doing in their conventions. Maybe that's because they are a nation with a diverse immigrant mix, so they evolved that to reduce misunderstandings, and to help integrate people to common conventions. That's nice of them, and I will be sure to emulate."

I think the subtlety on that page is tuned for humor to those who already know, not to educate or persuade those who don't.

Agreed. Just ask the bloody question.
People, particularly family, calling me on the phone and then asking me what I'm doing as if it's any of their business and it's their decision whether what they need is more important than what I'm doing is such a pet peeve of mine.
How do you start the conversation when you call your brother/sister?
*ring*

"Hello?"

"IT IS TIME."

*click*

With whatever the thing is I need to talk to them about.
I admit to being guilty of the "YT?" or "Hi" type messages, but it's for a reason: the person may be presenting to a client and shared their screen instead of their window.

I've been on too many Zooms where the presenter's Slack pops up saying, "John, we have a call with <company name> about <topic> at 3:00. Can you join?"

Multiple times, this information was probably sensitive. I'd rather avoid that by waiting until I get a response.

While you have a point, the golden rule is to shut down everything related to email and IM during meetings.
But you can't control what other people do. You can control what messages you send.
But you can expect people to do their jobs. If a notification embarrassed the company in front of a customer then talk to that person's manager about training them to not be a numpty.

Stop having such low expectations of grown ass adults.

It's called snooze your notifications. Easy enough to do, at least on macOS, and surely all OSs with a unified notification manager.
You can control what messages you receive by closing your client
There may be a middle ground. In this example, you could say, "Are you available to join a call at 3:30?"; that gives a little information about the topic and the time sensitivity, but it may still require a follow-up.
At one point I installed a filter on my IM client to silently discard trivial messages like "thanks" and "OK". There were already delivery indicators so nothing was lost.

Perhaps a hello filter and "yes?" auto responder could help, at least during business hours. Then send an OOO message if after hours.

The next level of this is waiting a couple hours and reacting to their message with a waving emoji- not replying! only putting the reaction in there.

If they don't want to talk business then a friendly greeting is appropriate.

This is the real answer. If they ask you why you didn't respond, you can honestly tell them you were waiting for them to ask their question.

If someone says "how are you?" that doesn't work though.

Imagine being this guy.
My company's doing apprenticeships; take somebody with no CS education, not even a college degree, and teach them to code.

It's an interesting model, I remember folks on HN calling for more companies to try it since it seems to have had some success in Germany, but I predict a lot more security bugs and unmaintainable code in the near future.

I'm not college educated and I've been coding since I was about nine in different capacities. I was inspired by two engineers my dad worked with that were the same; one of them was a SWE and the other was a Systems Engineer. I ended up dropping out before I hit any of my CS courses, so I basically did a repeat of high school.

The stuff you need to know for most jobs can be learned through books (DS&A); everyone, including grads, learn to actually code on the job. Systemic thinking and breaking problems down into manageable chunks is harder to train for; this is where I think something that's akin to apprenticeship could really help. At least the way I view it, and maybe I'm wrong, is that in the early 2000's, much less the 90's, there weren't many CS or CE schools - much less accredited ones that followed CAC standards. If your company is doing this then they're just getting back to the roots of what a computer programmer used to be.

What's DS&A?
Data structures and algorithms
We've done this, and it's worked out pretty well - all of our apprentices were dedicated to learning to write software, about half were offered jobs at the end of the apprenticeships, and half of those accepted.

Remember that they're not just mashing code straight to the main branch; they're apprentices, so other engineers paired with them, others read their pull requests, etc. It wasn't a free-for-all, nor should it be.

> It's an interesting model, I remember folks on HN calling for more companies to try it since it seems to have had some success in Germany, but I predict a lot more security bugs and unmaintainable code in the near future.

German here. The secret sauce behind the Duales System is that it's, as the name suggests, a split system - one part of the training is at government-run schools ("Berufsschule"), and the other part at the company that trains and pays you. And since the curricula are virtually the same across the schools, even if they're a bit outdated, they still produce decent graduates.

Can you list some things graduates of this “secret sauce” have built?
We don't make glamorous "unicorns" in the US style as we lack both the financials (aka enormous amounts of dumb money floating around waiting to be invested - remember, we don't have 401k, we have rolling-contribution pensions so no need for that) and the culture (we're very risk averse)... but our "Mittelstand" has produced hundreds of small and medium size companies that are world leaders in their respective market [1], often dominating their market with 70-90% [2]. And the foundation of that, especially for the older companies, isn't academics, it's trades, training and apprenticeship. Many of the Mittelstand companies, you enter in your youth and remain there for the rest of your life.

Our pride as a nation, our role models, is not a few people who struck it right to become multi-billionaires, our pride is the millions of people working for the Mittelstand and the consistently high quality of the stuff they produce. Boring, but wildly profitable and very, very resilient.

PS: You actually might know some of these things our tradespeople built. BMW/Audi/Mercedes/Volkswagen cars, MAN trucks, Rheinmetall, KMW and ThyssenKrupp military hardware from tanks to the massive Panzerhaubitze 2000, Diehl's IRIS-T anti-air defense, Heckler & Koch/Walther guns, anything with "Siemens" on it built before Siemens fell to MBA shenanigans, all developed and prior to globalization also built in Germany. And a lot of it, especially the military tech, is up to par with what the US military builds - for IRIS-T SLM and PzH 2000, the Ukraine war shows that they are even better to some experts.

One thing we sadly lost was pharmaceuticals - up until the 60s-70s, Germany used to be the "apothecary of the world" [3], but we lost that to India and China.

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

[2] https://hbr.org/1992/03/lessons-from-germanys-midsize-giants

[3] https://www.deutsche-apotheker-zeitung.de/daz-az/2018/daz-44...

Very likely core-competence in technical work, which is priceless in my opinion.
This only works if you hire enough really good engineers and have them spend most of their time mentoring, and most companies aren't willing to accept the senior engineers individual contributions on paper dropping to zero.
I disagree. Actively mentoring, like what this demands, is more supervisory. I do it with college interns all the time. It's not suddenly different because the pipeline doesn't originate with college. The process generally goes:

1. In weekly one on ones we may discuss a topic. I ask them to apply that topic.

2. They pick up sprint tasks and look to apply the knowledge they've gained.

3. They may ask some questions along the way; it's important that other engineers are also available for question asking - the same way peers may depend on each others knowledge.

4. You peer review the outcome in a PR.

Rinse and repeat.

I'll add I end up having to do this with everyone if they're fresh to industry or came from a place with poor standards for code writing and/or problem solving.

https://www.yearup.org/ A non-profit that I've volunteered with,that explicitly trains folks from alternate pathways to place them at entry-level positions, with support from certain corporate entities, ranging from training support to directly hiring via internships/apprenticeships.
In Germany, and Portugal (where I went through similar system), you still need to finish high school, and there is a programming related curriculum anyway.

The part-time work is like doing the labs part.

Also at the end of it, you can still go to the university if feeling like it. I did so.

Going through technical school was a secure way to have a job, in case the university exams weren't good enough for the engineering degree, which by the way is mostly state sponsored on this side of the Atlantic.

My 23 year old son has ops experience, but not much development, though he's eager to learn.

This sounds like the kind of situation he'd excel with - is your company currently hiring U.S. based folks?

Are you allowed to say what company you work for?
Do you want to avoid it or do you want to join it?
Join.
Amazon has a few different programs to retrain people for tech jobs, such as non-tech Amazonians, people separating from the military, under-represented people, etc.
It's a FANG.
Thanks. If it's Google (and I suspect it is), what are they calling this employee development program and where can people apply?
That sounds like a frustrating experience. I wonder what caused this problem? We’re the people leading your company’s subsidiary’s hiring efforts incompetent? Was it a management issue? It’s not like there’s something about being German or British or Indian or Filipino or Australian, as opposed to American, that makes you think input validation doesn’t matter.

With contracted outsourcing the root of the problem is generally a third party with misaligned incentives. But here this is no third party.

Companies can have internal intermediaries.

Suppose you go to a country and talk to a charlatan who tells you that they have many qualified people and they'll work for 30% of what you're paying in the US. You hire them and tell them to hire more staff there.

Then it turns out there are many qualified people in that country, but they don't work for 30% of what you're paying in the US, because it's a global market and actually they can command the same wages as their skills imply anywhere else. But there are plenty of unqualified people who will sign on for lower wages, and you've been promised workers for lower wages, so that's what you get.

The good news: Each employee only asks for 30% of what your onshore resources want. The bad news: You need four of them.
You kind of can though. In Europe even 30% of a US FAANG wage would be an incredible wage here. 50% certainly would be.

There are other problems like timezones etc. and maybe payroll taxes are higher here too but I think the possibility for labour arbitrage is definitely real.

In my dealings with companies that had European offices, European workers had far higher non-salary costs that brought the total compensation numbers closer together.

Eg Europeans usually had much more time off. The costs of that time off scale with salary.

I do think labor arbitrage could work, I just don't think it would be in Europe. I suspect the total employee cost in Europe approaches that of the US, the money just goes to non-salary places (taxes, time off, labor protection, etc).

The thing about arbitrage is that it generally implies you know something nobody else knows or are otherwise in a different situation than they are. Otherwise everybody would do it, bid up the price, and there would be no more arbitrage opportunity.

Which is basically what happened. When the earliest companies figured out that you could do a lot of computer things remotely, they would hire some quality staff in e.g. India, pay them a little more than they'd usually get in India but a lot less than they would in the US, and that was great. Then everybody wanted to do that... but there isn't an unlimited supply of qualified staff.

So the competent staff started demanding more money, because they could, until they got paid enough that the savings was only just offsetting the inconvenience of different timezones and laws etc. But the current CEO still remembers that case study they read in business school from 1985 about how great outsourcing is at saving money, from before the arbitrage opportunity was eliminated by everybody trying to do it.

Now that's problem solving!
[little_bobby_tables.png]
At the very least it makes pivoting from mediocre engineer to ransomware kingpin much easier.

Pivot! Lean startup! Four hour workweek!

I've had them confidently tell me they verified functionality by decrypting a TLS session even though that was impossible because I hadn't yet implemented a way to expose ephemeral TLS keys and there was no way to do it from the other side of the link.
Maybe you encrypted with 8-bit keys? :)
Good news, I got rid of ALL the tickets!
You probably say that in jest, but I have seen — multiple times — someone just go and delete all the tickets. Boom! 0 tickets. No bugs, totes. /s
Reposting my comment from a couple of months ago:

At one of my jobs, they used Asana when I started. It was too full of backlogged issues, so we moved over to Jira. Then Jira got too full. A month before I was laid off, one of my coworkers said, "Maybe we should try out Asana."

that could be a great feature of a new product - "your jira is full? time to move on to...." ))
I've seen it too. Actually, I'm in SE Asia right now and the ISP I'm using routinely deletes tickets that haven't been resolved.
That's called ruthless prioritization.