I've used both Unity and Unreal in a professional capacity. The best way to describe Unreal is that is has a specific way that things should be done and once you stray from that, it gets painful. But a lot of the time, you don't know what that way is.
Unreal is extremely powerful, but horribly documented. You know the blueprint editor? The same APIs are available for your own use if you want to make a similar graph editor, but you're on your own. You're best bet is generally to look at the editor source or a plugin that uses the APIs that you're interested in. That really applies to most of the API. If you want to use it, the documentation is generally of little to no help.
Blueprints can easily call C++ functions, but the opposite is extremely painful to the point that you shouldn't do it if you have any other options. But it's incredibly annoying to see that there's a blueprint function that does exactly what you're looking for when you're working with C++. If you're lucky, the BP function will actually be implemented in C++ and you can figure out the actual class name and call it directly. If not, then you'll either have to rewrite that functionality in C++ or attempt the aforementioned horror of trying to call into a blueprint from C++.
Blueprints are powerful, but they quickly become convoluted when doing non-trival things. If I have a blueprint function with more than ten nodes, I'm itching to rewrite it in C++. Doing things like loops and complex flow control is just so much easier and compact in C++. Need to set a couple of variables? Enjoy having that take up half of your screen.
Did I mention the lack of documentation? It took me an embarrassingly long time to write some code to figure if a targeting reticule widget is over a specific point in the world. The relevant functions were vague on exactly which coordinate space they use. It took a while to figure out that when one function projects a world location onto the screen, it actually means the viewport. While the widget absolute positions are actually relative to the overall window/screen, which matters in the editor because the viewport doesn't take up the screen and there's UI scaling on top of that.
Unity's documentation is great compared to Unreal. It also has the benefit that searching for most things will generally bring up a relevant forum post somewhere. There's also only one way to do things in Unity. You don't have to deal with trying to find out something for C++, only to have all your results be about blueprints.