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.

If you have more questions feel free to ask.