If you work in technical teams you will ultimately end up having a disagreement. These disagreements can be as minor as what should be linted and as major as the ethics of the product you are building. Being able to proactively address potential sources of conflict and choosing battles judiciously is an art that I have yet to master.
A few years ago, I was talking to a very talented engineer about what I was working on, lamenting that the product was 'over-engineered', he stopped me and told me 'over-engineering' is a misnomer. When great engineering teams successfully collaborate, the result is a well built product that satisfies company objectives. What I was calling 'over-engineering' happened when workers sought out and attached themselves to complex issues without thoughtful attempts to reduce their complexity.
Like many of my colleagues I haven't ever felt like I really understood what Cross Origin Resource Sharing (CORS) policies accomplish. I feel like when I try to learn more about it, I understand it even less. Of CORS My Request Failed
Developers often pretend to know what they're doing, especially when they're insecure newer developers like myself! Sometimes we happen to stumble upon interesting patterns, think they're elegant, and get attached to them rather than using the solution that performs better. In the course of building a file directory, I gleaned some interesting insights into recursion, search, memoization, virtualization, and generator functions. The path getting there exposed me to concepts that I haven't really dealt with since my algorithms course in college. Fortunately, my first slow-but-elegant solution, a recursive react component, was supplanted by the use of generator functions in
react-vtree, an equally interesting technology. Dealing with folder-based file systems has been one of the more rewarding small features I've had the opportunity to work in my short career.
Kent Dodds delineates a pretty good approach to auth in a react app here, https://kentcdodds.com/blog/authentication-in-react-applications.If you're using react-router and useContext in your app just auth that way. Its very convenient to have
UnauthenticatedApp as the sides of your ternary in that authentication check.
As a preface I wrote this some time ago when I was extremely burnt out and getting over some personal stuff. Take the histrionics here with a grain of salt. I have Beginner Fatigue. I imagine many others have been in the same place. Being a beginner is hard work. When we see the mistakes we've sent out into the field, or accidentally destroyed a company's property (in my case an EC2 instance), we feel like frauds. Often, the real problem is a lack of guidance or appropriate review when we make these mistakes, but they are damning to self-confidence nonetheless. These hits to the ego are salvos in a battle of attrition. It is not one setback that causes self-doubts, but the curse of a good memory that only seems to remember the mistakes you've made. It is death by a thousand cuts, and the psychological toll is severe.