Freecad is... rough. But, it has python API, and that's what I ended up using for almost all my stuff (there also was a period of using cadquery, but installing it is a horrible pain, so I gve up).
Also using onshape every now and then, but many things are just too annoying to do with a gui.