The below is a list of areas that appear relevant to being a proficient Technologist, with a list of links/resources or other helpful findings.
These roadmaps appear to be good encapsulations:
Most Software Engineering Manager interviews expect:
- Strong knowledge of Data Structures & Algorithms
- Strong knowledge of System Design
Here are some specific areas to know and study:
Development Strategies
- Behavior-Driven Development (BDD)
- Test-Driven Development (TDD)
Security Concepts
- OWASP
- SSL/TLS
- Encryption-at-Rest
- Encryption-in-Transit
System Design Concepts
- Email Protocols
- Message Passing – REST, gRPC, Kafka
- Search – Elasticsearch, Solr
- Authentication – OAuth, Basic Auth, Token Auth, JWT
- Reverse Proxies – Nginx
Frontend Technologies
JavaScript/TypeScript
- Libraries: React.js
- Frameworks: Next.js
Backend Technologies
Python
- Frameworks: Flask, Django, FastAPI
- Database ORM: SQLAlchemy
JavaScript
- Runtime: Node.js
- Frameworks: Express.js
Java
- Frameworks: Java
Database Technologies
SQL
- MySQL
- PostgreSQL
NoSQL
- MongoDB
Infrastructure Technologies
Cloud
- AWS
Version Control
- Github
CI/CD
- Github Actions
Infrastructure Provisioning
- Terraform
- Herman
Containerization
- Docker
Container Orchestration
- Kubernetes
Logs Management
- ElasticStack
- Splunk
Application Monitoring
- NewRelic
Infrastructure Monitoring
- Prometheus
- Grafana