Content
This is Mike Mike’s job is to write highly performant code that can work under load and handle lots of requests concurrently. His apps also have to be highly precise and reliable – all user inputs must be thoroughly validated, concurrent requests must not interfere with each other, there must be absolutely no vulnerabilities. Mike needs to know how to find the best compromise between performance and data consistency: when to invalidate the cache, whether or not to wait for database write acknowledgement, and so on. He also needs to assume that his code will run in a cloud environment, in volatile containers that can be destroyed at any time. Mike is a backend developer. This is Jane Jane’s job is to write apps that will run on 200 different versions of 10 different platforms, on thousands of different devices with various screen sizes. All these devices must be able to download, parse and bootstrap Jane’s code in under 200 milliseconds. Jane works with a complex state tree that can be modified by various kinds of events, and the app’s UI must be instantly updated to reflect these changes in the most efficient manner possible. Jane needs to know how to do code splitting, responsive layout, render virtualization, serverside rendering, handle browser-specific quirks, and so on. Jane is a frontend developer. This is Bob Bob thinks that Mike is a real developer, but Jane isn’t. Bob is a moron.