Back when I was preparing to apply to a FAANG, I built a game engine as my vehicle for practice. From scratch. Well almost from scratch, if you consider bare nekkid OpenGL to still be "from scratch".
There's tons of opportunities in a game engine for exercising and honing your performance chops and your algorithm chops. It also gave me an opportunity to learn a new language and programming model - the GL shader language. Building it onto a game helps to keep it real.
You can get away with making a working, performant (basic) engine with some neat functionality nowadays without delving too deep into algorithms or using any advanced data structures.
Off the top of my head, there's pathfinding on a navigation mesh, mouse hit-testing and FOV pruning with a space partitioning tree, triangle mesh sorting. You can also do some agent work by building up an automated opponent.
There's tons of opportunities in a game engine for exercising and honing your performance chops and your algorithm chops. It also gave me an opportunity to learn a new language and programming model - the GL shader language. Building it onto a game helps to keep it real.
Best of luck.