Welcome to wonderful world of game development!
So you asked different kinds of questions in your post so let me decouple them for you. First and foremost, there has been a somehow similar or at least related question about Gameplay Programming a while back which you can find here: https://gamedev.net/forums/topic/710147-basic-gameplay-programming/5439897/
WinstonDevs said:
I know a lot of large studios build their own engines and tools for games
This is true and false as well. Some really big studios like EA, Activision/Blizzard or Bethesda run their teams which develop mostly one but sometimes also multiple custom engines for whatever reason. My employer for example tries to minimize production cost (due to license fees) more or less successful. Our in-house engine is a mess currently where every team working on a game makes it's own fork of it and those forks are then reimplemented into the primary branch. Not very money saving in my opinion ¯\_(ツ)_/¯
There are however also small studios like Naughty Dog or Deck13 which have custom engines. The intention of those is mostly to have a product which is more related to the games they make, have better platform compatibility and bugs have a way shorter roundtrip until they get fixed. You can imagine how long this'll take for closed source game engines like Unity (Unreal's source code is available so it won't be that much of a problem here).
Don't focus/fear too much on in-house engines, they're following the same core principles than a commercial engine as like Unreal, with some differences however but you'll get into it quickly once you understood the basics
WinstonDevs said:
These techniques and skills I've learned while using UE4 seem to be more suited for a gameplay designer? I assume it is good to learn some of the concepts by using Unreal Engine especially when starting out, but when it comes to lower-level programming I feel a little lost
It is always a plus to know what you're talking about, even if it is basic. I'm for example a generalist too, interested in game (engine) development since I was young (back in the 90's) I made games on different platforms and studied techniques by learning by doing. My first ‘game’ was a custom map in Warcraft III, writing all the triggers to achieve some kind of gameplay and also a small portion if JASS. I learned a lot about gameplay mechanics at this time. Later I learned C# and then C++ in school and started writing my own game engine just for fun. Today I'm in tools development at my job and engine/framework development after work, knowing a lot about different aspects from platform related APIs which build up the core over graphics programming in OpenGL and Vulkan up to Networks and AI programming, always with the focus on ‘what features could be useful to be integrated into game development’. The hell, I even got myself into Bitcoin because I wanted to know more about the whole Crypto thing ?
So whatever you can get your hands on, learn it!
About low level programming, this is somehow required as a programmer in game development. You need to now the language your engine is running on and this is most of the time C++ and C# or Python for the tolling aspect. If you have something like Unreal, which allows to make games with Blueprint as well C++, try to replace your Blueprint with the same functionality in C++ step by step in order to learn the language.
As I wrote above, learning by doing
WinstonDevs said:
I'm wondering what else I can do to position myself more favorably in the job market
You should first decide for which position you want to go in game development. There are not just gameplay programmers (even if most work on a game is made by them) but also engine and tools developers, graphics programmers, animation programmer, audio tech and even tech-artists which all are more or less related to software development in games business.
You need at least solid skills in what you're doing, regardless of project experience, it is worth more if you know what you're doing than being involved in many projects. Practise yourself by for example take part at game jams, do some games in your spare time with some friends and don't worry to show what you have. Indie game development is based on people which like making games, some unique ideas and a little bit of polishing work in the end. Just stay on track and very important, finish what you started!
Finally, there are a lot of studios lokking for Unreal developers, so if you like working with Unreal Engine 4/5 and have the chance to do some projects with it, you're already a good candidate for such a position.
Don't know where you live but Obsidian for example is currently looking for UE4 developers in all levels of experience ?