Here's one trick:

In the left there's a combined path (originally A of font Arial, because I cannot design good looking own letters) There's also guides on the top and in the bottom.
In the middle the path has got "dynamic offset" to make it fatter. The result is converted to path to have again a path with no effects. As well one could insert a stroke, then convert the stroke to path and make an union with the original.
In the right the path is scaled smaller to make it fit between the original guides.
If you want to avoid the automatic rounding you should instead of dynamic offset add path effect "Offset". It allows a well rounded as not rounded result.
As said, you can also work by inserting a stroke. The version made by inserting a stroke doesn't make automatic roundings if you select the proper stroke style. An example

The offset effect and inserting a stroke (+subtract instead of union) can as well be used to make a lighter weight version of a glyph.
Warning: Inkscape generates unwanted groups. To make the union of the inserted stroke (after converting it to path) and the original path you must ungroup them or select them in the Objects panel. Booleans do not work with groups.
I guess you have already found that mechanical mods such as skewing you used to make "Italics" and some trick which resembles the ones above are used in many writing and layout programs if the installed font doesn't contain Italics or Bold. They are better than no italics and no bold at all, but the result with them does not look as pleasant and balanced as the separately designed Italics and Bold versions created by a talented and experienced type designer.
You wanted "a programmatic method". It's up to you write or hire a programmer to write a script which applies the shown tricks. It's well possible that no programming is needed at all. Web browsers seem to have it already done. Unfortunately I do not read nor speak their language well. Check this to get a better idea https://alistapart.com/article/say-no-to-faux-bold/