I disagree with the lot that say you shouldn’t do this. The way you are approaching it is completely wrong, though.
You won’t know what your personal engine should have until you make a game, and you realize the features or aspects that you need.
My suggestion is to make a game, and in the process, make the more game-common parts as modular as possible so that they can be used on their own in any game. If you do this again and again over time, you’ll obtain a collection of tools that are proven useful, because you’ve already used them in at least one project.
To get started, begin with a very basic core framework(Make a container, a gameloop, a way to display your graphics). And then with that, build a game as I mentioned before, and let your engine build as a result of realizing the different things you need from the games you are working on.
And besides that, doing it this way allows you to work on games more than an engine. I promise you, building an engine is not fun on its own.
And at the end of the day, if all you wanted to do was build an engine, I still say go for it. Why people would tell you not to, I have no idea. Yes, with your approach, you will likely end up with a very poorly functioning engine (if you even finished it in some aspect), BUT, experience is experience no matter what the final product is. Researching and building your own engine is a great way to learn how they are generally built, which gives you a better understanding of how to work with them.