Technical Skills

Develop technical skills to further your tech career.

T-shaped Person

The best way to develop technical skills is to become a T-shaped person, expanding both your breadth and depth. To quote from Wikipedia:

The vertical bar on the letter T represents the depth of related skills and expertise in a single field, whereas the horizontal bar is the ability to collaborate across disciplines with experts in other areas and to apply knowledge in areas of expertise other than one’s own. T-shaped skills

Breadth

Develop your breadth by venturing into fields adjacent to software developments, as well as gaining exposure to the wider spectrum of technologies.

Here are some examples of areas that could expand your breadth as a software engineer:

DevOps

  • CI/CD pipeline

Site reliability engineering (SRE)

  • Load balancing
  • Observability (monitoring, log processing, tracing)

Infra

  • Database administration and performance tuning
  • Load / capacity planning

Data

  • Data analytics and visualization
  • Data pipeline - Extract, Load, Transform (ELT)

It is also useful to gain exposure to technologies that are less relevant to your work, such as signal processing, hardware, artificial intelligence.

You can start by reading online from popular tech communities:

  • Hacker News is good place to explore interesting topics around tech and others.
  • Towards Data Science is a beginner-friendly place to learn about machine learning and data science.

Depth

Another way to grow as a person is to dig deeper into the whatever that you are currently using or working on.

It can be concepts, patterns, tools, languages and frameworks.

Let’s dive into this topic for backend and frontend separately.

Backend Depth

For backend, in-depth topics can be:

  • Backend service architecture and system design
  • Concurrency and multithreading
  • Best practices in handling idempotency
  • Language-specific depth, for example JVM internals and tuning

Recommended in-depth resources for backend:

1. System Design: The complete course

Learn how to design systems at scale and prepare for system design interviews

System Design: The complete course

2. Backend roadmap

Step by step guide to becoming a modern backend developer

Backend Developer Roadmap

3. The System Design Primer

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

The System Design Primer

Frontend Depth

Frontend depth includes topics such as:

  • Visual design principles
  • Intensive graphics rendering using WebGL / WebAssembly
  • Data visualization
  • Framework-specific depth, for example React or Vue internals

Solid understanding of JavaScript is very much needed to grow as a frontend engineer.

Recommended in-depth resources for frontend:

1. Structure and Interpretation of Computer Programs (SICP) - JavaScript Edition

Best way to learn JavaScript as a functional programming language

SICP JavaScript Edition website

2. MDN JavaScript Guide

Learn less known parts of JavaScript

MDN JavaScript Guide website

3. You Don’t Know JS

Dive deep into JavaScript and learn subtleties

You Don’t Know JS - 1st Edition

4. Frontend roadmap

Step by step guide to becoming a modern frontend developer

Frontend Developer Roadmap


Previous: Personal Growth Overview

Next: Soft Skills


Subscribe to receive latest updates

Using ChatGPT or Claude 3.5 Sonnet for coding?

Check out 16x Prompt to streamline your AI coding workflow

Try 16x Prompt Now