this is great news. the code below failed to compile in 2.3 but works in 2.4. it was an annoying bummer when working with ADTs in typescript. It's also nice that you can use string enum for the discriminators now. "{ kind: Kind.Ok, value: 'bla' }" feels less stringly.
Thank you, a very insightful comment. FWIW I think you made a smart choice by leveraging docker and it's ecosystem (not just the tools, also mind share, the vast amount of knowledge spread via blog posts and SO, has to be considered). While docker's technical merits over competing solutions were indeed arguable then, it's UX was a game changer in this domain, everyone got the concept of a Dockerfile and "docker -d" and many embraced it quickly.
Kubernetes came around exactly at the time when people tried to start using it for something serious and things like overlay networking, service discovery, orchestration, configuration became issues. For us, k8s, already in it's early (public) days, was a godsend.
Also, i can confirm: the k8s development process is incredibly open. for a project of this scale, being able to discuss even low-level technical details at length and seeing your wishes being reflected in the code is pretty extraordinary. It will be interesting to learn how well this model will scale in terms of developer participation eventually, i figure the amount of mgmt overhead (issue triaging, code reviews) is pretty staggering already.
so true, the self service aspect is indeed amazing. once developers or qa people grok the concepts and api it can do wonders to your productivity.
also, working with k8s will probably spoil you, it's pretty annoying to "go back" to other environments, where you're confronted with problems which would be effortlessly solvable in kubernetes.
It completely spoils you. My team got to do an Openstack cluster migration this month and there was definitely some grousing. The workflow of traditional private clouds is just so tedious and flaky. We could grow our Kubernetes cluster 10x without hiring any additional engineers for the ops team.
Germany, Lead Engineer at a company with a couple of hundred employees, my role involves architecture, full-stack coding, cloud stuff: ~$81k (some part of that variable bonuses, depending on companies targets).
While the job market seems to be in favor of job seekers these days (it seems to be practically impossible to recruit developers for small/medium shops, you get pinged by recruiters all the time) the salary does not really reflect this. it's rising but pretty moderately. you get offered $100k jobs once a while, mostly in finance.
Also the air gets pretty thin in germany when you actually want to do technically interesting and challenging things. Most jobs on the market are quite dull and involve enterprisey and/or legacy things. Most developers I worked with, however, do not seem to mind the backwardsness, are happily married to their languages and tools, and tend not to be overly passionate about their work (which might just be the right attitude).