I was lucky enough to have some quick conversations with the docker developers there, and I found that it's really mature now. In fact, TaoBao also used docker for the internal deployment procedures, so I decided to try to move some projects of our company into the world of docker.
Now, after 5 months of development for Firefox extension of Simple Gmail Notes, most features are stabilized and the features could be shared between Chrome and Firefox easily. In the last few revisions, the cross-browser migration (Firefox -> Chrome or Chrome -> Firefox) all took less than 1 hour. Basically, the initial pain on the development of extension development gradually passed away.
However, I would like to further discuss the review process of Firefox. As mentioned before, Firefox uses a manual review process, it is much more strict than Google Chrome extensions (which is, basically, nil).
I have been using open source software since I started my first job around 10 years ago. By then the world was very different, Microsoft still dominated most of the software world (Windows, Visual Studio, .NET Framework, MS Office, SQL Server), and open source was still a small part of the whole ecosystem. Yet open source spread up like a virus over the last 10 years, and now even Microsoft is forced to embrace open source (well, it's also CEO related I guess).
To me, there are two major advantages using open sourced software:
free of charge
able to inspect, modify and recompile the sources.
It has been 5 years since I started to set up the new branch of NB office, and I think it is probably a good time for the review of works now.
In the last 5 years, the size of NB office expanded from 1 single staff (me) to a total of 18 now, with 13 engineers, 3 testers and 1 PM. And the project size changes from internal and toy projects to the big ones of theme parks, banks, and government.
In total we have worked on 43 projects, among of which 8 projects did not get a happy ending at the end. Most of them still get released. Yet they were not released in the best shape, and the customer was not most happy about that. Sometimes it is due to the budget problem, and sometimes it's because the immature execution or wrong choice of technology.
Like many other things in the world, the success of a project need coexist of a lot of different factors, yet it only needs one single factor to fail the entire project.