A lifelong analog EE, Dave has built and used many DC power supplies in his career. Well-known in the online engineering community, Dave makes some very good engineering content, like this video. It covers his work on a DIY Source-Measure Unit project, DIY-SMU, which is capable of 6 current ranges up to 100mA, and 3 voltage ranges up to +/- 150V. His project is open source and Arduino-based.
For more design details, see: http://www.djerickson.com/diy_smu