Is anyone here a dev working in China? Would love to know a bit about what dev culture is like in China, for instance:
What are dev practises like - do people do Agile / Scrum? Is "post-agile" (sorry) scepticism a thing? What about TDD and CI/CD?
How about technologies, do people develop on Linux, are they using git, are american libraries/frameworks big - are people using React etc?
How about things like FP and niche languages - is there much appetite for people experimenting with new tech/languages or are Python/Java the defacto choices for application work and everything else shunned?
Is there a Chinese-equivalent to GitHub - is engineering in China big enough that they can have their own independent OSS culture? (Is companies contributing back to OSS a thing?)
EDIT: to add one last question - are developers seen as feature-factories or is the relationship between product and developers/tech more flat/harmonious than that?
I work for Huawei (Audience gasps)... but outside China. I can answer some of your questions based on what I've seen.
> What are dev practises like - do people do Agile / Scrum?
Yes. At least what passes for Agile in enterprises.
> do people develop on Linux
Yes. Huawei even maintains its own distro called Euler OS.
> are they using git
Yes. SourceSafe, ClearCase and SVN were used by different teams in the past but have now mostly converged on git.
> are american libraries/frameworks big - are people using React etc?
Yes. Although given the nature of the business, teams that can use a shiny new application framework are a bit of a niche.
> How about things like FP and niche languages
Would you consider TTCN-3 to be a sufficiently niche language?
> is there much appetite for people experimenting with new tech/languages
Containerization and micro-services took hold quite quickly.
> are Python/Java the defacto choices
C is probably the most widely used language but then again it's down to the nature of the business. Java and Python are used a fair bit and Go usage is growing fast.
> Is companies contributing back to OSS a thing?
Definitely. Huawei is regularly one of the biggest contributors to the Linux kernel each cycle. Hadoop, Postgres, OpenStack, ONOS etc. see a bit of participation. There are also projects like Apache CarbonData and OpenSDS that are primarily driven by Huawei employees.
Why is Huawei dragging their feet on doing basic library updates on their LTE basestation firmware?
HCSEC asked your company to update to modern OpenSSL a year ago and implement reproducible builds. Neither issue has been handled, and these LTE basestations are extremely vulnerable due to the inaction of your employer.
Combined with the poor engineering of your employer's Windows drivers, it is reasonable to cease use of Huawei developed software. Security is obviously not a priority, leaving users of Huawei software vulnerable to any person who can be bothered to look up a few CVEs and run Metasploit against your companies products.
TBH I don't think its has affected morale inside the company, especially at the lower levels. Nobody knows what the top management is thinking and it's just business as usual for us grunts. I haven't heard anyone voice a pessimistic view of the future. The reaction has basically been "Meh". But then again, this is outside China and in business units that aren't really affected by the trade war drama.
Chinese dev here, currently at xiaomi, worked for VMware and Baidu
> What are dev practises like - do people do Agile / Scrum?
Not full/standard practice I think, normally just standup meeting I guess.., when I was in VMware China, some projects used scrum.
> Is "post-agile" (sorry) scepticism a thing?
No
> What about TDD and CI/CD?
I'd say TDD and CI are common.
> How about technologies, do people develop on Linux, are they using git,
Yes, all the time.
> are american libraries/frameworks big - are people using React etc?
Yes
> How about things like FP and niche languages - is there much appetite for people experimenting with new tech/languages or are Python/Java the defacto choices for application work and everything else shunned?
Yes, go/rust is gaining popularity.
> Is there a Chinese-equivalent to GitHub - is engineering in China big enough that they can have their own independent OSS culture? (Is companies contributing back to OSS a thing?)
No, there are some github like services, e.g. gitee.com, but the scale and user base is not at same scale.
> are developers seen as feature-factories or is the relationship between product and developers/tech more flat/harmonious than that?
There are lots of jokes about product&developer here in China, so you can imagine.
To answer your last question, there not a significant Chinese-equivalent to GitHub yet, partly because GitHub is still largely accessible in China. A lot of Chinese tech giants have been active on GitHub and have plenty of repos:
'Fake Agile' is a term. But I think this is global.
It is hard to find Linux/Unix people. Those that develop the skillset are hot property for the BATs. Universities universally use Windows as a platform (students bring their own laptop) with exception for '985' classed colleges who are the elite institutions. But experience and certification is always needed for a new job. There is little positive-feedback for self learning.
Java is predominant, C# number 2. There is not a lot of appetite for experimenting as company culture is largely, though not always, hours-based. Python is very thin. Front-end is quite easy.
Have a try yourself: Go to 51job.com and do a search for skills. You can see a ton of Java (5:1 vs C# and 20:1 for Go) and not a lot of anything else.
There is no equivalent to Github. Github was 'blocked' two years ago for a few days and then unblocked because development teams ceased to function, BAT, government, international.
There is a sharing culture but little understanding of licensing.
Your edit: It really depends on the company culture.
Chinese devs I know are pretty versed with the rest of the world's developer community. Probably because they have to, it is way to get knowledge and acknowledgement.
One thing that is distinctly and decisively different though, is the cloud provider. AWS/Azure are operating under constraint there. While Alibaba Cloud is close copy of AWS, it is not quite the same thing, and indeed is developing into its own ecosystem focus on wholesale solution other than being the build block of internet.
With ongoing trade war and Huawei's sanctions, expecting Chinese government put raising domestic technology industry that mirrors to US technology at its highest priority.
The feeling I've gotten is that there are internal communities in China, Russia and possibly Japan. Then there is the rest that clumps together in English. I'd love to get some confirmation of this though, as it is just my hunch.
Yeah so this is my hunch too (which I want to prove/disprove)
When you think about it, there is almost a unidirectional knowledge transfer: plenty of Chinese people will study and work abroad and then go back to China. By comparison, how many people do you know of who do the reverse - in terms of ratios, how do these numbers compare? Open source code and academic research is all out there in English for people to read and absorb, but China also has the scale and funding to then internally propel these ideas and then publish in Chinese (if at all).
Though it sounds like there is some degree of open source and that Github is mostly the defacto in China too.
> Though it sounds like there is some degree of open source and that Github is mostly the defacto in China too.
It's not just some degree, afaik Chinese companies have been really embracing open source [0]. Some argue this is the result of the Chinese cultural perspective that ideas are not owned by anyone, which open-source perfectly aligns with. [1]
I don't know about Russia or Japan. For China, there are clusters around key universities and their satellites, and spin-offs from those satellites either directly/partially owned or from alumni.
But it's haphazard. Most universities are incapable or unwilling of even running an email service and all emails go through QQ. That's not 'QQ for Domains' but just personal QQ numbers.
I'll bite. Please note that I've worked for Alibaba and a startup (Video++) but both in research capacities so our practices will differ from the norm.
> What are dev practises like - do people do Agile / Scrum? Is "post-agile" (sorry) scepticism a thing? What about TDD and CI/CD?
A watered down fork of Agile is really common. At both companies, I've experienced poor management. No one ever asked if I had blockers, needed more resources, etc. It was just expected there would be delays and we build them into the development schedule. This can lead to weeks of getting nowhere because no one is there to help you.
> How about technologies, do people develop on Linux, are they using git, are american libraries/frameworks big - are people using React etc?
In my experience, regardless of verbal ability developers can read and write English purely because they need to do so to succeed in their jobs. There are some sites similar to github/stackoverflow in China, but in general, you need to be able to read and write English to solve your problems. In short, in my experience, people use git, and all the frameworks/libraries you're thinking of.
> How about things like FP and niche languages - is there much appetite for people experimenting with new tech/languages or are Python/Java the defacto choices for application work and everything else shunned?
Again, in a research setting, it was just like working in a US company. Lots of vetting and decision making before choosing a route, but never discouragement for some fringe tool or idea that might artificially limit our capabilities.
> Is there a Chinese-equivalent to GitHub - is engineering in China big enough that they can have their own independent OSS culture? (Is companies contributing back to OSS a thing?)
There is not a Chinese fork of GitHub. Companies do give back to OSS (see Baidu, Ali, etc) and often if the OSS product is valuable enough the company just acquires the team (see GRPC -> BRPC -> acquired by Ali for internal use). My team frequently collaborated with outside contributors and would pull from OS. This is because my lab also ran VLDB so we obviously care for the community and realize there's a lot we can't do.
> EDIT: to add one last question - are developers seen as feature-factories or is the relationship between product and developers/tech more flat/harmonious than that?
IMO unless you're in research developers are just an expense, not people and they're there to fill desks. In China the average salary for a dev is much lower both because of the skill-cap but also the quantity. If you need someone to write an android app they're a dime a dozen. If you need someone to write a new framework, that's more difficult. So in general, getting people isn't hard, but getting good people is. Thus, the vast majority of people at companies are expendable. I think this can be distilled to one example. QQ the most popular messaging app from Tencent in the early 2000s had 6,000 Android developers (still does). WeChat (also run by Tencent but under a different management style) has only 50 devs. The difference is they realized quality > quantity in recent years and learned the value of ROI.
>QQ the most popular messaging app from Tencent in the early 2000s had 6,000 Android developers (still does). WeChat (also run by Tencent but under a different management style) has only 50 devs.
This comment alone almost tells me everything I need to know - my impression is that tech used to be run like giant sweatshops or cost centre (like QQ) but progressively tech is more like a value generator.
>A watered down fork of Agile is really common. At both companies, I've experienced poor management.
Have you heard of other peers in China faring better? Do managers believe in the whole "Organization Y" self organizing/autonomous philosophy that underpins agile?
As a foreign developer (who isn't a research-level programmer) do I bring valuable skills to the table? As someone who didn't do a CS degree would that be career limiting?
> Have you heard of other peers in China faring better? Do managers believe in the whole "Organization Y" self organizing/autonomous philosophy that underpins agile?
It depends on the company. The more westernized the better the likelihood for good management. In general I’d assume looser than what you’d expect and then some.
> As a foreign developer (who isn't a research-level programmer) do I bring valuable skills to the table? As someone who didn't do a CS degree would that be career limiting?
Depends on the company. I can’t speak to all (I have interviewed with quite a few) but China is very meritocratic, meaning that if you don’t have a degree most places won’t even give you the time of day. This might be different at a startup but it is very situational. Also realize that getting a foreigner a work visa puts a huge strain on the company and many will opt to ignore you for that reason alone. Many startups will do this under the table but I wouldn’t recommend that if you want to stay in China as a career path.
I think there was a conference for Rust in China a month ago or something and it seemed to have ok turnout, but I have no real data on it. Just as a small answer to your "FP and small languages" question.
What are dev practises like - do people do Agile / Scrum? Is "post-agile" (sorry) scepticism a thing? What about TDD and CI/CD?
How about technologies, do people develop on Linux, are they using git, are american libraries/frameworks big - are people using React etc?
How about things like FP and niche languages - is there much appetite for people experimenting with new tech/languages or are Python/Java the defacto choices for application work and everything else shunned?
Is there a Chinese-equivalent to GitHub - is engineering in China big enough that they can have their own independent OSS culture? (Is companies contributing back to OSS a thing?)
EDIT: to add one last question - are developers seen as feature-factories or is the relationship between product and developers/tech more flat/harmonious than that?