Technology Pillar

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