Skip to content

Advanced Python for Senior Software Engineers • Design Patterns • S.O.L.I.D • OOP • Concurrency • Python Libraries • System Design

Rustam-Z/senior-python-engineer

Repository files navigation

Senior Software Engineer Roadmap

By Rustam-Z 🚀

Can be used by Backend Developers, Data Engineers, Automation Engineers, and anyone who wants to advance in Python.

Senior Python Developer Skill Set

  • Advanced Python topics
    • Object model, data structures (mutable and immutable, LEGB rule, shallow and deep copy, dict hashing, data type caching in Python)
    • Dataclasses, collections
    • Decorators
    • Iterators, generators
    • Context managers
    • Advanced topics in OOP (Method Resolution Order MRO, Inheritance diamond problem, dunder methods, ABC abstract class, super(), descriptors, property, method overriding and overloading, duck typing, monkey patching, mixin)
    • Concurrency: threading, asyncio, I/O bound
    • Asynchronous programming (coroutines, async & await)
    • Parallelism: multiprocessing, CPU bound
    • Memory management
    • Global Interpreter Lock (GIL)
    • Garbage collector (reference counting, three generation garbage collection mechanism)
    • Metaprogramming (runtime code execution)
  • Python clean coding, and engineering excellence.
    • Check resources below ⬇️
  • Development principles (SOLID, DRY, KISS)
  • Coding design patterns
  • Testing
    • Mocking, patching, fixtures
    • PyTest, unittest for unit, integration testing
    • Selenium for UI end-to-end testing
    • Code coverage and static analysis tools
  • Profiling and optimization with cProfile
  • Package and environment management (Poetry, PyPi)
  • Must know libraries: logging, argparse, pathlib, os, sys, requests, itertools, json, yaml, csv, regex

Python Resources

Advanced Python Resources

Clean Coding

SOLID & Design Patterns

Parallel programming

Python Testing

  • Book “Python testing with PyTest”
  • Book “Python testing with Selenium”
  • Book “TDD in Python”
  • Book “Python Unit Test Automation“
  • Book "XUnit Test Patterns" book

Python Books

  • "Python basics"
  • "Python tricks"
  • "Clean Python"
  • “Practices of the Python Pro”
  • “Python Workout”
  • “Effective Python”
  • "Fluent Python"
  • "Learning Python”
  • "Python Cookbook"
  • "Advanced Guide to Python 3"
  • "Mastering Object-Oriented Python"
  • “The Python workshop”
  • “Expert Python Programming”

Other GitHub Repositories

YouTube Channels to Follow

Software Engineering Resources

Books

  • "Clean Code: A Handbook of Agile Software Craftsmanship"
  • "Clean Architecture"
  • "Code Craft: The Practice of Writing Excellent Code"
  • "The Clean Coder: A Code of Conduct for Professional Programmers" (Robert C. Martin Series)
  • "Beautiful Code: Leading Programmers Explain How They Think"
  • "The Pragmatic Programmer: From Journeyman to Master"
  • "Code Complete: A Practical Handbook of Software Construction"

Soft Skills Books

  • "Soft Skills: The software developer's life manual"
  • "On Managing Yourself"
  • "How to answer the 64 toughest interview questions"
  • "The Mythical Man-Month: Essays on Software Engineering"
  • "Programming Interviews Exposed"
  • "Elements of Programming Interviews: The Insiders' Guide 2nd Edition"
  • "Programming Pearls 2nd Edition"

Engineering Blogs

🚩 What's next?

  • Dive into System Design topics: watch the "Systems Expert by AlgoExpert" course, read the "System Design interview" book.
  • Dive into DevOps and Cloud Arch, pass AWS Solution Architect Certification.
  • Dive into database topics (scalability, sharding, replication, NoSQL databases, CAP theorem).
  • Learn best practices in the areas of your interest: backend, AI, automation.
  • Constantly upgrade your coding and engineering excellence skills.

About

Advanced Python for Senior Software Engineers • Design Patterns • S.O.L.I.D • OOP • Concurrency • Python Libraries • System Design

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •