I've been pretty frustrated with my 3d print quality, decided to make my self an esp32 based heater control board. It connects to wifi and is based on esphome so you can automate it via home assistant. The prototype worked well enough so designing an integrated pcb and in the process of ordering it on JlCPCB
Why would the code be subpar? Is a google employee in US somehow more competent than the one in India?
What you are thinking about was outsourcing which is very different than Google hiring in India.
Just because you are paid more you are not a ‘better’ programmer
I've worked with both brilliant and mediocre people from many countries, including India.
It's hard to criticise offshoring without seeming racist. The problem that I have seen is not the developers - it's that the people in charge are fixated on the hourly rate as the key metric, and the suppliers are then complicit in gaming that metric.
As soon as you make the lowest hourly rate the most important metric in software development, I guarantee you that quality will suffer.
> Is a google employee in US somehow more competent than the one in India?
It depends.
There are people in India that are brighter and more hard-working than most people in the USA, just by statistical chance. But there is something that can happen there that I don't know what it is and affects some.
In another job our company had a site in India and I remotely supported them. Most people I interacted with wanted step by step instructions and hand-holding. One day someone news enters, bright and full of energy, so we could give him the documentation, point him in the right direction and he did the job. Until he didn't and also wanted step by step directions and hand-holding.
To this day I don't know what prompted the change. My only guess is that there's something cultural going on that can make people tone themselves down and not be proactive.
I've had similar experiences over the years. The Indian devs who were worth their salt were salaried employees; the ones that took all the ELI5 hand-holding were the contractors who seemed to have just graduated from a 60-day programming bootcamp and wouldn't tell you they had a problem and needed help if their lives depended on it.
I have always attributed this to the management of the consulting companies that supply the contractors - they're all about the billable hours, and quality control isn't really their problem so they don't focus on it.
This just isnt true about "statistical chance". The IQ distributions are very different and a huge amount of the top talent emigrates anyway. 130 iq is order 1/100 in america and more than 1/1000 in india. Population difference doesnt make up the gap.
You're going to hear the same answer you always hear, which never satisfies people, but it's a culture thing. Americans are more willing to say "no" or try and negotiate with their boss/leadership on what they can realistically accomplish. The end result is that engineering will push back against unrealistic deadlines or unreasonable feature requests - theoretically making a successful outcome more likely. You'll notice this has nothing to do with skill or intelligence (well, maybe "soft skills"). But - and this might be controversial - providing that feedback to leadership makes you a better programmer.
In the US the expectation setting works both ways: management tells employees what it expects of them, and employees tell management what they're realistically capable of achieving. Management will ask for extra, and employees will sometimes get less done than they promised (sometimes because there were unforeseen difficulties, extenuating circumstances etc), but in the end it all works out.
It seems like it's a two-way street, isn't it? If American devs are more likely to say "no" and push back, then American managers/bosses on some level come to expect that behavior.
I wonder what it's like at Indian tech companies with Indian engineers. Managers there must have a cultural way of dealing with this that works.
IMO, that's the big problem with offshoring. It's rarely the case that the company that offshores stands up an office in the other country and staffs it with people who were held to the same standards in hiring as candidates for U.S.-based jobs would be. If companies did it that way, they might be more successful at navigating cultural differences, but most of the time they use subcontractors instead.
It's not much to do with country/race and a lot to do with pay. I've been sitting through more interviews than I can count as my F500 company is trying the same thing. Despite alleged pre-screenings, I've been amazed by how many devs with 10+ years of experience on their resume that can't code fizzbuzz (let alone answer actual questions in a way I'd expect of a senior dev with that much experience).
Companies don't go to India for their best developers -- they go to save all the money they can. If a US dev costs $150k, they aren't going to spend $150k for an Indian dev. To make this scheme "worth it", they won't pay more than $75k (likely no more than $40-50k).
You get what you pay for. A smart, talented Indian dev isn't going to work for next-to-nothing. They're smarter than that. They'll relocate to the US/EU, work for a large Indian company (where they get better working conditions), or even work freelancer jobs instead.
Quality from India is awful. Both from functionality and just… caring. They don’t really care as much it’s always just good enough. They are generally very difficult to work with.
Once you get into a mindset of quality not mattering and only pushing down the costs there’s no coming back. Look a large retail brands and how disposable we treat things. They went from northeast to southern US to Mexico to China. The creation of the product will happen in the US for cultural reasons (you cannot outsource marketing generally), but it all hits a wall.
> Is a google employee in US somehow more competent than the one in India?
Yes. I can’t speak for Google employees but I’ve worked with Indian FTE teams at another big tech company. Indian FTEs are generally less competent than US FTEs at the same level. Upper management knows this and they don’t care because US employees are 3-4x more expensive, so they can hire 3 senior engineers in India for the cost of 1 in the US, which is still a good deal on a cost-per-output basis.
I think the reason for this competency discrepancy may be the huge incentive to move to the US because of pay. In other words, if Indian engineers were as good as their US counterparts, they would move to the US and make 3-4x as much, which leaves only those incapable or unwilling to move in the Indian market.
Yes, US engineers tend to be better. In India engineering is not a prestigious career. It is a stepping stone to management. So few Indian engineers stay in the profession long enough to get good.
Software quality has ultimately always been around requirements and understanding the problems being solved. That's already hard enough with collocated native speakers.
On top of this is the fundamental master/slave or imperialistic nature to first world/"third world" software development. It is of course buried under self-interest, desperation, and "professionalism". This will always lead to a reduced sense of involvement in the code and mission of the project.
There is the educational issues, where India values memorization and and devalues creativity and independent thought. Where those exist in Indian workers, the regimented nature of orgs over there (related to the imperalism vibe) stamp them out, and the rest is lost in other language and culture barriers.
I would also hazard to say that India is much more obsessed with cultural status (echoes of the caste system), and low software developer jobs aren't good enough on the hierarchy. They aren't Brahmin. Brahmins are managers and leaders.
Of course the cultural barrier represents a turf war. Indians want to own sections of code/orgs with just Indians. The managers explicitly scheme this. Of course all middle managers scheme, so I don't want to seem like I'm casting Indian managers as any more sociopathic than US ones. But it is still a turf war that divides along racial lines. The US-side companies expect multicultural cooperative work. Unless there is the owner/master dynamic, you don't see Americans of non-indian descent working in India except as liasons or owners/managers/bosses.
It's all related to the lifespan arc of software. The software is made/architected in the first world, and eventually is handed off for "maintenance" to outsourcing. Eventually that becomes untenable, and a full rewrite or rearchitecture is performed, and the cycle begins anew.
I apologize if anything I wrote offended anyone, I wanted to be as dispassionate as possible.
Just thought about sharing a blog post I’ve written to document how and why I built up a home server. This can be thought of as a guide as well to get started on cheap.