Engineering-Skills

As a software architect in today’s world, expectations of essential engineering craft have increased drastically with the rise of the spectrum of technologies. Full-stack architecture knowledge, product & design thinking with customer centricity, startup mindset to do experimentation applying platform engineering, proactive production monitoring & observability applying SRE practices, and many more engineering practices are the new normal.

The breadth of Engineering Knowledge is becoming more important than the depth of technical skill in a specific area. As quoted in Harvard research, Generalists are more valuable in innovation as they are Jack of All Trades and Master of Knowledge.

At a broader level, engineering crafts can be classified into eight different categories as depicted below. You don’t need to be a master of all but having the depth in selected areas and awareness of others is essential as you grow as a software architect.

Engineering Skills
Figure A : Engineering Craft/Skills

#1 – Software Engineering & Architecture, Design Patterns

Recommended learning path to cover essentials of software engineering, architecture, and design patterns is:

#2 – Infrastructure, Cloud & DevOps, Automation

Recommended learning path to understand infrastructure, Cloud, and DevOps is:

  • Infrastructure (Compute, Storage, and Networking) – Cover the essentials such as:
    • Compute: Bare Metal, Virtualization (Hypervisor), Containers, Container Orchestration, Edge Computing, Serverless, Load Balancing, etc.
    • Storage: Object Storage, File Storage (NFS, SAN), Database Storage, Storage Replication
    • Networking: Basic networking (Hub, Bridge, Switch, Router, etc.), Topologies, LAN, WAN, VPN, VPC, CIDR, etc.
  • Cloud Architecture – Cover the big three cloud service providers offerings covering key concepts, design principles, and architectural best practices for designing and running workloads in the cloud:
  • DevOps – Cover the Continuous Build & Integration lifecycle, Continuous Deployment, Differentiate between Continuous Delivery & CI/CD, etc. with the following essentials such as:

#3 – Quality Engineering, Continuous Delivery

Recommended learning path to understand the nuances of quality engineering and continuous testing is:

  • Continous Delivery – understand the basics of continuous delivery for the entire lifecycle. Join CD Foundation, which is an opensource based community to share best practices related to that.
  • Agile Delivery Practices – get certified in one of the Agile frameworks such as SAFe (Scaled Agile Framework)
  • Practices of Quality Engineering – cover the basics of standard practices such as unit testing, behavior-driven testing, functional testing, sanity testing, regression testing, progression testing, mobile testing, accessibility testing, pixel testing, performance testing, and security testing.
  • Continuous Testing – cover the essentials of automation with practices, tools (such as Selenium)
  • Software Qualityread this article to cover different aspects of software quality as an architect

#4 – Production Engineering, SRE

Recommended learning path to understand the dynamics of modern production engineering practices is:

#5 – Platform Engineering, Research & Awareness

Recommended learning path to understand the relevance of platform engineering and research is:

#6 – Data Engineering, Machine Learning, AI

Recommended learning path to understand the broader understanding of data engineering, machine learning and artificial intelligence (AI) is:

#7 – Observability, Monitoring, Analytics

Recommended learning path to understand the nuances of observability, monitoring & analytics is:

  • Application Monitoring – cover the nuances of application & system performance monitoring
  • Observability – extend the boundary of monitoring towards observability (logs, metrics, tracing, experience)
  • Analytics – understand the behavioral, performance, marketing and customer analytics tools

#8 – Business Value & Customer Centricity

Recommended learning path to understand the relevance of business value & customer-centricity is:

References

Relevant Articles

Leave a Comment