If you mostly write software with Go you'll likely enjoy working with protocol buffers. If you use the Python or Ruby wrappers you'd wish you had picked another tech.
The generated types in go are horrible to work with. You can't store instances of them anywhere, or pass them by value, because they contain a bunch of state and pointers (including a [0]sync.Mutex just to explicitly prohibit copying). So you have to pass around pointers at all times, making ownership and lifetime much more complicated than it needs to be. A message definition like this
type Example struct {
state protoimpl.MessageState
xxx_hidden_Value1 int32
xxx_hidden_Value2 float64
xxx_hidden_unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
For [place of work] where we use protobuf I ended up making a plugin to generate structs that don't do any of the nonsense (essentially automating Option 1 in the article):
type ExamplePOD struct {
Value1 int32
Value2 float64
}
Most of the modern frontend ecosystem is infuriating. The early React + Typescript era was mildly upsetting but bearable, and it hinted at a relatively nice future if abstractions improved. Then Vercel et al threw that slow progress into an overpriced garbage can.
Isn't Tudum mostly a static site? It must be a great project to try out cool stuff on, with a near zero chance of that cool stuff making it to the main product and having a significant impact on customers. Most of the traffic probably comes from bots.
If you want to know if an application is running, implement health checks. I hope I never have to deal with the pattern suggested in this article in a production system.
Yup, he's trying to solve monitoring and logging with the same setup. I don't think I'd appreciate it, but like all the IT horror stories can be probably made to work.
> As US-based companies become more aware of the fake IT worker problem, the job seekers are increasingly targeting European employers, too.
All the US companies I've worked for made sure I was legit before I could log into anything, so I assume background checks to be ubiquitous there, save for the cheapest companies. European employers on the other hand...
The thing I don't like is that US companies take it too far, to the point they're violating my privacy and making me uncomfortable.
Why do you need to do a hard credit check before you give me an offer? Why do you need to know exactly how much I owe on my credit cards, car, house, how much I'm paying per month, and how much I've made at every job for the past 7 years?
That feels... excessive. And weird. And kind of unfair. Now you know my paycheck, and the paycheck before that, and how desperate I am. Well, there goes negotiations.
It feels like you're going through some kind of security clearance.
To be honest, getting insight and access to a major company's networks and maybe customer data is perhaps the same kind of risk to the company as it is for the government to give someone access to (top) secret files. It might not be so much a negotiating tactic as awareness that more sophisticated spies and criminals than the ones in the OP article are targeting your company.
> That feels... excessive. And weird. And kind of unfair. Now you know my paycheck, and the paycheck before that, and how desperate I am. Well, there goes negotiations.
- don't or rarely offer remote jobs, so they often don't have this problem.
- even if they do some video or phone interview for pre-screening, they nearly always expect the prospective employee to come to a live interview if they are not weeded out by this pre-screening. It is thus expected that you at least live in a country from where you can easily travel to the place where the employer is located.
- often expect their employees to be able to speak the national language, or at least learn it fast. This also makes times hard for North Korean fake IT workers.
I live in Finland, and while it is not universal it is extremely common for IT-companies to have a working-language of English.
The country is small and hires both immigrants, and people who specifically relocate to start working at the English-only companies, as well as local candidates.
Learning Finnish will obviously make your life easier, in many many ways, but companies themselves do not seem to expect or require it.
I've heard this before about Finland and found it really interesting as to my knowledge English isn't particularly more societally prevalent in Finland than in nearby countries such as Sweden, Denmark or the Netherlands. Any idea if it's as common in those countries as well? By the sounds of it in Finland there's more IT companies operating in English than in Finnish.
It’s definitely common in Denmark, enough that it’s a perennial national debate. Maersk is a huge employer that officially made their corporate language English something like 20 years ago, which spawned discussions about whether you should need to speak a foreign language to get a job in your own country. In practice the answer is yes, for some sectors.
I worked for years in an English-language work environment in Denmark (I am not Danish), and learned maybe a handful of phrases of spoken Danish the entire time. I was expected to be able to read the occasional email in Danish, but 1) written Danish is not hard in comparison, and 2) even years ago Google Translate was good enough.
It would have been nice from a social perspective to have known more spoken Danish, but my employer didn’t really care, and it isn’t easy to learn if you don’t have strong local connections. Danes will just immediately switch to English by default, and even if you ask them to continue in Danish, you need a decent level of Danish pronunciation to make yourself understood, which is not trivial to get to.
In The Netherlands I think it's pretty rare to require Dutch in IT related jobs. I know of one software company that recently initiated a policy of only hiring Dutch speakers and I suspect it will really hurt their hiring going forward. When they initiated the policy they also retroactively exempted all the great developers that already worked there who could not speak Dutch.
I’ve never had this experience. Never once was I flew in for an interview and, in two of the previous companies I’ve worked for, I did not speak the language.
I wouldn't say that's generally true, at least in NL the work language in IT is often, probably almost always, English. I know people who have worked here for ~10 years who barely speak any Dutch.
I’ve seen reports from people who were contacted by companies asking to use their identity for jobs. The deal was that the company used their likeness and identity to secure the job, but they would do all of the work and split the paycheck with them.
There are a million reasons why this is a bad idea, but I’m sure they don’t have trouble finding people excited to collect free paychecks.
Great interview, good questions, really solid candidate.
His first day on the job, his English went to shit.
Then he refused to pick up the phone or call me back. Lame excuses about how it’s loud there, then he lost his voice, then scheduled a call with the real “Jeff” the American who couldn’t answer anything about what we had discussed an hour earlier.
Reported to Upwork but I sort of doubt they did much about it.
Video calls super important and asking questions that wouldn’t be a normal interview question. Helps to have candidates walk through and explain code they haven’t seen to reduce any prep work that may have happened. I’ve got a few questions I ask that no one is preparing for. I’ve interviewed a couple people that seemed kinda sus, maybe not working as someone else but definitely lied about their capabilities but somehow passing the coding test. This was before LLMs ruined everything too.
I also got contacted via LinkedIn by a “normal” profile of a Dutch guy with normal connections, that was even connected to people I know, offering me the same. I politely suggested it’s not a great idea and declined
The background checks don't always work because they typically use stolen identities or use the identities of Americans that they've paid. They basically have to in order to pass I-9 verification.
There are also different levels of background checks. For instance, previous employment verification can be time consuming so some companies skip it. Checking references aren't useful because they can be faked (you have to run background checks with employment verification on the references to make sure they are who they say they are).
Where I am in Europe you couldn't even get a (legal!) job in a bar without showing proper ID, and having your identification (id card number) checked and be present in the contract.
The fact that "fake people" can be employed for high level IT companies in the US is just unfathomable to me.
That’s only one of the scams. You pass background checks if you’re new to the US. It’s a fairly common grift to place contract programmers at big companies with fake degrees and experience, who then send the work back to Asia to be done overnight. It’s easier now with ChatGPT - you can send photos of screens and instantly extract the text.
You also have people who outsource themselves. That’s one of the ways that the people who work multiple jobs pull it off.
The Iranian state is playing the long game by letting Israel and the US celebrate their victories while they carry on with their plans. They will let the big boys bust a few rocks here and there if that's what it takes.
They aren't but does it matter? iranian regime (similar to CCP) prioritize long term goals and regime survival - which makes sense if you actually have long term goals - while we count short term victories and wait for next election cycle and netflix/apple release.
Israel (and SA) are the only ones with skin in this game and won't be able to easily interfere forever. yes, iran has been massively infiltrated - kudos israel. But after all this recent spectacle, the regime will be focus on survival - this includes cleaning house and continue bomb building efforts.
I've seen it happen at companies with 100s of engineers, some of them ex-FAANG, including ex-Googlers. The average FAANG engineer has a way more pedestrian work ethic than the FAANG engineers on HN want you to believe.
> The issue with this change was that it did not have appropriate error handling nor was it feature flag protected.
I've been there. The product guy needs the new feature enabled for everyone, and he needs it yesterday. Suggestions of feature flagging are ignored outright. The feature is then shipped for every user, and fun ensues.
Why do your releases involve non negligible manual work?
> We release 1-3 times per week.
If I were a customer, I would be concerned by this statement. Having an amateurish deployment strategy is one thing, but your release cadence implies low confidence and quality issues.
The cadence of releases is not related to quality. There will always be variances depending on the codebase involved and organisational constraints and product velocities. I could easily say that more frequent or less frequent releases are also a cause for concern.
We are talking about a Gen AI startup that has a handful of employees here. They have little excuse not to implement CI/CD, unless they lack confidence in their product's quality.
It means you release whatever you have first thing and then release a bunch of patch releases on top as the QA (outsourced on users, probably) results come back.
Sans security patches, why are your features not sized to roughly a sprint? What do you manage to prepare, build and validate in a day or two? To me release cadence less than every few weeks screams "whatever landed in master is good to go" and is a sign of mis-/un-managed development.
Yeah, could be user feedback. And if it's a public beta release why not?
3 devs working for 5 days on each their feature means 3 releases per week.
For the last 10+ years I have been working on the same project with 2 releases per year, so what do I know. But I have used projects with quick release cycles that work very closely with the community. Push new beta, feedback on discord. Was also fine from my (limited) perspective.
Because they should be spending one day writing scripts and github actions for their CI/CD system before pushing out new code by hand or AI assistance several times a week.
Releasing 1 - 3 times a week means it's 1 - 3 times more important to have a deterministic release process than if you release 1 time a week.
Why would a startup CTO choose to deploy a couple of times a week with a Claude script instead of implementing basic CI/CD? He makes it sound like he's running a clusterfuck and he isn't qualified for the job.
Aren't you assuming a bit much here? They have implemented CI/CD; their Claude script triggers the git branch part of the release flow, which is what in turn triggers the CI/CD pipeline—a completely normal thing to do, even in established teams (save for the Claude part).
The guy automated the toil away using AI. Not that I would feel confident automating away that part in particular, but it does neither speak badly of the code quality, nor his job qualifications.
Because there is more toil in writing a blog post about how you use AI to do a release, than there is in writing a script that makes the AI and the blog post unnecessary.
But then you wouldn't have something about using AI to blog about.
That’s an entirely different issue: people maintain a blog to improve their hireability, and that entails blogging about things that may not always be brilliant insights. It’s not this person's fault that that’s the state of tech hiring however. Don’t hate the player, hate the game.
Blogging is actually a good way for professionals to earn CEUs to maintain certifications.
Chances are, if you’re reading low-effort blog posts that are consistently in certain knowledge domains, they’re intending to apply for CEUs at renewal time.
Well looks like he had the last laugh on us: GitHub was down, so nobody with CI/CD GitHub Action deployment scripts could make a release unless they used AI or did it by hand!
An average engineer with solid problem-solving skills and a good manager is like a ~3x engineer. It's way easier to hire a few of those than a 10x engineer. But you need to match them up with a good manager, and that isn't easy.
When I think of a 1x engineer, I think of all the guys I've worked with that had a decade plus of experience but were advanced beginners at best. If you don't work for a FAANG company, you will be surrounded by those types. They make the same mistakes over and over and write the same unreadable code, year after year.