Well, if you get hired by FAANG in Germany, you don't get the SF salary. My experience is that companies that do offer extreme salaries do not do so out of competition with FAANG (since FAANG does not compete with itself globally, i.e. FAANG companies tell you something like "if you want SF salary, come and work in SF," which tends to be difficult due to the exploitative nature of US immigration system).
Rather, there's some kind of a catch, like "we need you to know this highly specialized thing that globally only a handful of people have experience with" (I'm looking at you, AI solvers), or they provide conditions very few people can tolerate.
You do get a total comp that is 2-3x local market if you manage to get into FAANG like companies and even the tier below. I think this is what Gergely is describing.
That is still life changing for a lot of engineers, and worth the 3 month grind to get through the interviews. At least it was for me, and this article was a big part of why I made the jump.
Another question - with a normal fixed interest loan for 30 years, does that normally include paying off the principal? I.e after the 30 years, the loan is paid off?
Here, fixed interest usually don't pay down the loan whereas a variable loan pays down 100% of the principal after the 30 years
Wait, what? Americans can fix for 30 years?!! The longest I've seen in Australia is 7 years fixed, but the usual home loan is 3-5 years fixed and then a renewal at the new market rate.
It might have been a pretty good deal for the people who bought homes with 25 year 0.7-0.9% interest rate mortgages these last few years.
So you can just contract for international companies out of France, pay your taxes as normal, and you still get unemployment if you get fired unexpectedly?
When it comes to health insurance or retirement you're generally covered though.
You need to find the pockets in the market which do compete for talent on an international (at least EU-wide) level. That may be foreign tech companies, remote jobs, maybe the very hottest of startups in your country (with stock grants). I like this article (https://blog.pragmaticengineer.com/software-engineering-sala...) which goes deeper into this.
A "trick" which works in my market (in France) is to work as a contractor instead of a full-time employee. When I did this move I basically doubled my income overnight while keeping the same job title. A lot of companies will balk at an engineer asking for 70k€ as an FTE, yet have no qualms paying the same person 7-800€/day for 2 years as a contractor.
Would you suggest it as an option to a team with limited devops budget?
The documentation seems reasonable comprehensive. Do you have a brief summary of issues?
https://edx.readthedocs.io/projects/edx-installing-configuri...
If you start from scratch today things may have gotten better. You might want to look at https://github.com/overhangio/tutor, I know Régis has been hard at work making it easier to run Open edX.
On the team I'm a part of, our strategy is to build open source tools around Open edX, using it as a site builder that stitches together all our external services (video hosting, live conferencing, course content, quizzes, web-facing portal, forum, etc.). That is, until we cover enough scope that we can start to replace it with a flexible and lightweight LMS that would basically just do the aggregation.
IMO it's not necessarily a good fit for the LMS category to try and build a gigantic software codebase that handles everything the way every single learning institution wants it. You end up with a glorified site builder with a bunch of specialized features tacked on.
This is correct behavior though, and what you propose would be wrong. The type isn’t narrowed. Type U satisfies type T when the keys of U are a superset of the keys of T, so long as the keys map to the correct value-types in the intersection of (keyof T) and (keyof U)
This is because the only time extra keys are outlawed is when you instantiate an object of type T and explicitly declare it as a T. I can link if you need but this is an important subtlety which is why Object.entries returns string instead of keyof T, and it’s not borne of MS/TS developer laziness
Could they add a strictness flag that lets objects actually be type safe and enables related functions to work out of the box? For me this stuff is a regular pain point as you end up typecasting at every call site :(