ByYou can homebrew a balanced dwelf race by reverse engineering the half-elf and combining those traits with that of a dwarf.
Variant humans get +1 to 2 stats of their choice, so since Half Elves get that and +2 to Cha, the first racial trait the Dwelf will get is:
ASI: Your Charisma and Constitution scores both increase by 2.
Half Elves also gain proficiency in any 2 skills, but variant humans already get one, so the next trait is:
Skill Versatility: You gain proficiency in one skill of your choice.
Both Half Elves and Dwarfs get 60 feet of darkvision, so your next trait is:
Darkvision: You can see in dim light within 60 feet of you as if it were bright light, and in darkness as if it were dim light. You can't discern color in darkness, only shades of gray.
We can now add the remaining features from half-elves and the dwarf base race.
Fey Ancestry: You have advantage on saving throws against being charmed, and magic can't put you to sleep.
Dwarven Resilience: You have advantage on saving throws against poison, and you have resistance against poison damage.
Dwarven Combat Training: You have proficiency with the battleaxe, handaxe, light hammer, and warhammer.
Tool Proficiency: You gain proficiency with the artisan's tools of your choice: smith's tools, brewer's supplies, or mason's tools.
Stonecunning: Whenever you make an Intelligence (History) check related to the origin of stonework, you are considered proficient in the History skill and add double your proficiency bonus to the check, instead of your normal proficiency bonus.
Languages: Common, Dwarvish, and Elvish
Speed: 25, not reduced by heavy armor
Size: Medium
This is a lot of features, but is this balanced? For that we can use Detect Balance, a tool for measuring the balance of 5e races. The average race has 30 points, the weakest, with 17 points is the human, and the strongest at 47 points is the Yuan-Ti pureblood.
ASIs: +16, Skill Versatility +3, Darkvision +3, Speed 0 (cancels out), Fey Ancestry +2, Dwarfen Resilience +5, Combat Training +2, Tool Proficiency +1, Stonecunning +1
Total: 31, so this is balanced