Taking Python to Production: A Professional Onboarding Guide
What you'll learn
- Set up a professional Python development environment - Visual Studio Code, pyenv, git, autocompletion
- Learn the professional git workflow with GitHub and CI/CD with GitHub Actions
- Make the terminal more intuitive with ZSH and plugins
- Version and package Python software and publish it for the community
- Setup automated code quality checks (testing, linting, documentation, type checking, etc.)
Requirements
- Basic Linux/bash knowledge: cp, mv, ls, rm, etc; <-- there's a resource within to help with this; ability to install commands
- A computer that supports a *native* Linux terminal. If you are running on MacOS or Linux, you're good. If you are running Windows 10 or 11, we'll cover how to install the WSL 2 (See the early Windows videos).
- Knowledge of Python syntax: loops, functions, classes, etc.
- Comfortable Googling errors to get unstuck
Description
This is a course about transitioning from a "coder" to a "software engineer". It specifically covers the tools needed to develop and "ship" production-ready software with Python.
As an MLOps engineer, my role is to help enable data scientists, analysts, and junior engineers become more self-sufficient at bringing products to production.
This course covers a mix of foundational tools, engineering practices, and career advice that new engineers should be given during the onboarding process when they join a team (but they often don't get guidance!).
By the end of this course, you should feel confident contributing to complex software projects in a team setting, whether open-source or at a company (or please request a refund within 30 days!).
You will understand how closed- and open-source projects are run and how to run your own.
In the course, we write very little code and instead focus on the non-coding aspects of software engineering that make you an effective member of the software engineering community.
That said, you should have a solid grasp of Python fundamentals (loops, functions, classes, etc.) before taking this course.
Expect to learn
how to set up a professional Python development environment
how to set up a professional workflow for Python development with Visual Studio Code; extra emphasis on autocompletion
how to use git, GitHub, "branching strategies", and their integrations with VS Code and the terminal
how to write clean, maintainable code and ensure that all code contributed to your projects is good quality (testing, linting, formatting, type checking, documentation, etc.)
how to publish production-quality software for a wide audience with packaging, versioning, continuous integration, and continuous delivery (pre-commit, GitHub Actions, PyPI)
how to templatize all of the above points, so you can create new, high-quality projects in seconds
Before paying for this course, please sample the preview lectures so you can get a sense of whether it's right for you.
See you in the course!
- Eric
Who this course is for:
- Lower-intermediate to advanced Python developers who meet the requirements and are interested in the learning outcomes.
- Data scientists, analysts, junior developers, and self-taught developers who want want to set up a development environment for writing "production-ready" software
Instructor
Hi, I'm Eric.
I've been working in the industry for 6 years--the first two years as a Data Engineer (Python, Airflow, Kubernetes, AWS, Snowflake), and the most recent 4 years as an MLOps engineer at a product placement company called BENLabs.
I co-organize the Utah, USA chapter of the MLOps-Community Meetup. Join us if you're around!
I have extensive experience architecting systems on AWS, making sure they are secure from a network and application standpoint; also that they are scalable, monitored, and tested. I've done a fair bit of work on CI/CD, writing and testing infrastructure-as-code, and full-stack development.