- Python
- Typing
- Sequence
- Set and mapping
- Functions, lambda
- Iterator and generator
- Class, objects
- OOP
- abstraction
- encapsulation
- polymorphism
- inheritance
- Modules, packages
- Exceptions
- Decorators
- Metaclass
- File & Input/Output
- Testing
- Functional programming
- GIL, Threads, processes, Concurrency
- PEP8
- Django
- Django ORM
- Meta class
- Inheritance model, Proxy model
- DRF
- Django admin
- Django form
- Django authentication
- Django template, JINJA
- Middleware
- Django caching
- Signal
- Logging
- Testing
- Postgresql
- Query
- Postgresql data types
- Sequences
- SQL functions
- ACID
- CAP
- Transactions
- Scaling
- Indexes
- Normalization, Denormalization
- Database security
- Logging
- Replication
- WAL, MVCC, Checkpoints
- Basic layout skills ( optional )
- VSC Version Control System
- Git
- Git basic
- Git workflow
- git and GitHub basic
- Branches
- Git ignore
- merge, conflicts, stash
- forking
- Version control system
- Subversion ,Git
- VCS types
- CI/CD
- Linux
- Basic knowledge of the OS: directories, users
- Commands: cd, ls, cat, mv, cp, rm, ssh
- Ability to work in a remote development environment over SSH
- OS: processes
- Software management (e.g.
apt)
- ps, tail, grep
- command-line editor (e.g. nano or vim)
- df, du, free, top, htop, chmod, chown, scp
- running bash scripts
- Elasticsearch
- Elasticsearch basic
- CRUD operations
- mapping, indexing, searching
- REST API
- Document and indexes
- Aggregations
- Query
- Analyzers
- Tokenizer
- Tools
- Celery
- Redis
- Sentry
- Rabbit MQ
- Kafka
- load balancing tools (nginx, haproxy, envoy, ingress)
- Selenium
- Docker
- Network & System Administration & Tools
- Cloud
- Algorithms
- Testing
- Programming Principles
- Design Patterns
- Software architecture