I have observed a severe lacking in areas like:
- Testing (i.e. usually none, which is often spun like an odd pro that they are so "fast")
- Devops (e.g. lack of repeatable/automatic deployments, things must be hand-touched, no continuous integration)
- Project management (e.g. no tracking of bugs, features, etc via issues, no milestone usage, no documentation)
- Git/Github basics (e.g. don't break the branch when doing PRs, create useful commit messages)
- Understanding of CSS/HTML basics (e.g. best practices, standards, anti-patterns)
- Understanding of React/Flux basics (e.g. child keys, anti-patterns, bastardizing with some weird approach)
- Understanding of functional programming basics (e.g. immutablity, HOFs, pure functions)
- Understanding of computer science basics (e.g. weird custom approaches that poorly mimic trees, no big-o concerns that hurt perf, memory leaks)
- Separation of concerns (e.g. making UI components know about and concerned with the data persistence layer)
- Security (e.g. secure credentials committed, pretty much an afterthought)
Are these issues simply the norm for frontend development and something I just need to get used to OR is perhaps my frontend network itself poor and something I just need to work on building up to more "solid" clients? I understand few companies are perfect and I am not asking for it all, but coming across clients with lapses in all these areas is what concerns me.