My freelancing to date has largely consisted of ML, stream processing, data integrations, microservices, and other backend work. However, more recently I've shifted to include frontend work with react/reflux/react-native/electron and I have run into a high number of issues with development practices. I find myself declining most work for obvious lapses in development practices and, on occasion, "duped" into accepting a client that sounds good on paper but isn't.<p>I have observed a severe lacking in areas like:<p><pre><code> - 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)
</code></pre>
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.