In my view backend dev "done well" is easier than "frontend dev done well" for a few reasons, and spoiler - they mostly have to do with people aspects of software:
* Frontend is UI development. UI is hard (race conditions, hard to test, way more edge cases) _and_ a lot of the work you do is valuing, judging, reasoning about and improving aesthetics. You have to be comfortable (and kind) operating in fields where aesthetics and taste are a driver
* Frontend is way, way closer to stakeholders who will (often unfairly) judge what you make and express their opinions which you are going to have to take into account and balance. It is much easier for the pointy haired boss to see that the button is "off shade of green" than it is for them to see that a specific transaction is not guaranteed to be atomic.
* Frontend is much closer to the end users, with a variety of configurations hard to anticipate for (screen resolutions, browser versions, browser extensions, draconian MITM proxies and restrictions) but also just much more variety of _people_ who your product has to satisfy
* Frontend is UI development. UI is hard (race conditions, hard to test, way more edge cases) _and_ a lot of the work you do is valuing, judging, reasoning about and improving aesthetics. You have to be comfortable (and kind) operating in fields where aesthetics and taste are a driver
* Frontend is way, way closer to stakeholders who will (often unfairly) judge what you make and express their opinions which you are going to have to take into account and balance. It is much easier for the pointy haired boss to see that the button is "off shade of green" than it is for them to see that a specific transaction is not guaranteed to be atomic.
* Frontend is much closer to the end users, with a variety of configurations hard to anticipate for (screen resolutions, browser versions, browser extensions, draconian MITM proxies and restrictions) but also just much more variety of _people_ who your product has to satisfy