Grow as a person. Develop technical skills and soft skills.
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
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:
- CI/CD pipeline
Site reliability engineering (SRE)
- Load balancing
- Observability (monitoring, log processing, tracing)
- Database administration and performance tuning
- Load / capacity planning
- 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, articificial intelligence.
You can start by reading online from popular tech communites:
- 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.
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.
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
2. Backend roadmap
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
Recommended in-depth resources for frontend:
3. You Don’t Know JS
4. Frontend roadmap
Subscribe to receive latest updates