We started using docker and kubernetes not long ago.
Every deployement in production must have a release number as a tag.
If one element of our environment need a rollback, I redeploy an old image on kubernetes. Its very fast, only a few seconds to rollback and you can do rolling updates to avoid downtime.
Another opinion than the others: I'm french and in my country, the position of software engineer or developper or any technical position in the making of a software product / services is still a relatively new job.
I am working in a startup and until now we had more non-technical employees (it changed after a big pivot and big layoff).
We were the one making the product but every other positions did not have any considerations for us except treating us like weird wizards accepting any requests.
As their understanding were limited, they usually had more respect for other job like finance, or sales, without regards for the actual responsabilities of the employees.
There is a strange cultural bias that do not recognise the capabilities of a software engineer as more complex than the work of a young salesman.
Its hard to tell, is the situation of the company bad ?
What were the reasons behind there departure ?
It could be a red flag, but there will always be bad managers.
Are you impacted directly by this bad management ? Are you stressed because of it ? If not, maybe you should wait a bit more to see the situation.
I am in a startup too, the management was bad when the startup situation was good, now that we are in trouble, the management approach improved.
It can change, but I think most of the times, depending of the people in charge, it will not.
So don't be full of hope for big change and think what is more relevant to you ?
What if we don't mine asteroids in space? We just change their courses and make them crash on earth. There is a lot of math to be done and we might have to pick an international location as a crashing ground, but it should be easiest and more profitable.
First, I noticed that I had much more impact teaching things I had done recently (even if I know the theory).
So when you create your exercises, try to solve them in order to 1. check the difficulty and 2. know where your students will strugle, what are the main pitfalls you will have to explain them or give them more hints.
Second, a session should be composed of a few exercises with immediate feedbacks / rewards (something quick to code but with enough notion to understand the subject of the day).
Then build the momentum toward more complex exercises.
The last exercises should be a bit more advanced than the current expected level of your students.
When I was a student, I had this structure were we had a between 6-10 exercises to learn C in 30 days (even if we did not understand all of it under the hood) from nothing to pointers, circular list, object-oriented (with structure) C. I found out that even if most of the students struggle, some of them will try to solve all of the exercises.
After many days, they had made tremendous progress and were capable to achieve all of them most of the days.
These students boosted the rest of the class for the next few years as we were encouraged to share knowledge and teach each other.
I don't know if you plan on going freelance remotely or having a standard position, but I would recommend you to either:
1 - pick one language you like/fill strong with, play with it and train a bit (like 2-4 weeks) and then go seeking new jobs with this language as your main skills.
It will allow you to discover the job of developer and help you gain knowledge on what you will have to learn (languages, frameworks, etc). You will also be able to see what position you like: front-end, back-end, dev-ops, data, etc.
2 - pick one field you are strong with, search for what technologies you will have to learn. Again, train with these for 2-4 weeks. Go seeking a new contract.
For both, I will recommend to be humble and pick the first job as junior-junior dev. Explain your situation. The first one may not be a remote contract, as you are not trustworthy yet.
In one year (if you are good and serious about it, 2-3 years if you have more troubles), you should have enough knowledge to be able to train with any technologies and adapt quickly to new fields of application.
As nobody answered with a technical aspect, I would recommend you to watch the tendencies: what are the fields with the higher salaries?
For the US, for example, it seems that mastering AI/ML is one of the ways to go.
This might depend on your country. In mine (France), it seems that being good technical dev with pure-python and full stack skills with a touch of project conception/management skills.
Our startups have a lot of trouble in finding developers and we don't need that much of one particular special skills (which might be true for big companies, but the salaries there are not that high when you start and it takes years to obtain one).
Exactly what I was missing after 15~20 questions (and then I left)
Seemed easy at first (got the first 5 right), but I guess that was mostly luck because I got a lot of the next ones wrong.
Edit: being from France, pokemon here have different names, making the english names less recognizable (I never played the games anyway so that doesn't change much for me)
French here too but playing Pokemon Go in English. After a while I can recognize most names but I still think the French names are funnier. The translation team did a real good job. Also, a lot a English names are straight coming from Japanese (e.g. Zubat) which make use of some English in the first place, so there is a bit less creativity on this side.
I believe it was only like this the first year, where the selection were pretty tough and the list of candidates was insanely large.
Here, most computer sciences degree are in private schools. You have to take generic engineer studies oriented in computer sciences otherwise. Some are great but I found people with a private degree focus in computer sciences more skilled in general when I worked with them.