[1]: https://quarto.org/
I do, however, recommend that you upgrade the RAM, 8GB is barely enough as is, so getting at least 16GB would be better. (I don't recommend upgrading the SSD though, since because of Thunderbolt 4 you can have a fast external SSD for half the price that Apple charges for storage).
Other than that I've built some tools just for the sake of exploring some hypothesis that I had, but all of those always felt like work. The game development was something that truly felt like "cooking at home".
Most of the knowledge I was able to glue together came from webinars/lives/tutorials/books I found that already solved the same problems I was looking for.
If you have a solid Python foundation and already have some experience in Machine Learning in general, I would recommend the Practical MLOps book( https://www.oreilly.com/library/view/practical-mlops/9781098...), or even Introducing MLOps (https://www.oreilly.com/library/view/introducing-mlops/97814...) as starting points.
EDIT: Also, nothing beats a good project end-to-end, where you take a toy problem, and try to build an entire stack around it, from the training of simple ML models, tracking the models' versions, creating APIs to serve these models, monitoring, and so on.
Most of my time, I spent trying to better understand how to "approximate" the Data Science/ML workloads to the Development stack of the company, so I spent a lot of time learning about containerization, and multiple ways to deploy those artifacts. On top of that, I started learning about the CI/CD stack, and introducing the CT (Continuous Training), by tracking metrics of the live models that were being served, and triggering data-drift alerts.
Most of my work was done using Python, and the FastAPI library, and the containerization was done mostly using Docker, but I had to gain an understanding of how to deploy it in cloud environments, at the time it was really valuable to learn Terraform to understand how to use Infrastructure as Code.
1. The demand for software-related jobs is quite high, but the breakthrough in some companies (especially big ones) is quite challenging, in part because of the recent waves of layoffs, but a lot of the hiring market here is based on connections. For me, it was especially hard to get a job offer before arriving in the country.
2. It depends on where you want to live, but most of the jobs are in large metropolitan areas like Toronto, Montreal, and Vancouver, and a lot of them have been requiring at least hybrid work, so you need to factor in the cost of living in this cities. Afaik, the average Canadian household spends half of their income on living expenses (shelter, heating, power). Also, telecommunication services here are quite expensive, so if you plan to have good internet to work from home, you might need to add a couple hundred dollars to your monthly expenses for that.
3. About immigration, the best way is for you to reach an Immigration Attorney or Consultant, each case is particular and there is no one-size-fits-all for this. I've met people from the most diverse backgrounds, with completely different immigration strategies, and it worked out for them. Find what works best for your scenario and customize your immigration strategy based on that.
4. I'm still planning to visit Vancouver, but having known Toronto and Montreal, I feel that Toronto is a really good city to start, there are plenty of opportunities, and many Canadian companies choose to have their offices.
I would agree with another commenter who said that building a solid portfolio might go a long way in getting job interviews.
Good luck on your path!
I believe it is a great tool, especially if you want to skip the beginner's lessons, however, it seems to me to have diminishing returns with time.