Roadmap
Senior Software Engineer
Skills every developer needs, in any language: code design, testing, data and distributed systems.
Must know You will not get hired without it.Good to know An extra plus.Specialist Only for special roles.
1
Good code
Code the team can read, test and change.
Must knowClean CodeGood names, small functions, readable codeReadyMust knowSOLIDFive basic object-oriented design rules, with examplesReadyGood to knowDesign patternsStrategy, Decorator, Factory, Mediator and moreReadyGood to knowDependency InjectionService lifetimes and common mistakesReadyMust knowCode reviewWhat to look for and how to give feedbackReady
2
Algorithms and concurrency
Fast and correct code, even when many things run at once.
3
Data
Store data correctly and read it fast.
4
APIs and security
An API that is correct, safe and reliable.
5
Testing and delivery
Change and release without fear.
Must knowUnit tests with xUnitWhat a good test looks like, mocks and fakesReadyMust knowIntegration testsTestcontainers and WebApplicationFactoryReadyGood to knowTDDTest first, then code: red, green, refactorReadyMust knowGit and version controlBranches, merge, rebase, a clean historySoonMust knowCI/CDPipelines, automated tests, safe deploysReadyGood to knowDockerSmall images, multi-stage builds, layersReady
6
In production
Know what happens when the code runs, and handle failures.
Must knowStructured loggingSerilog, log levels, correlation IDsReadyGood to knowMetrics and alertsPrometheus, Grafana and good alertsReadyGood to knowResilience with PollyRetry, circuit breaker, timeout and retry stormsReadyGood to knowSystem designHorizontal scaling, load balancing, sharding, replicasReadyGood to knowEstimation and planningEstimating work, splitting big tasks, riskReady