PCB was designed in Kicad6 and will be routed in TopoR, so it will look a bit weird, yes... take a look on Google Images how those PCB looks like :)
Firmware is being created in C, CubeMX was used to configure hardware peripherals. Eclipse is used as IDE.
In order to cut time needed for development and make possible software development before assembling the hardware, a PC based simulator for firmware was created.
Simulator was done using Python+Qt, it uses firmware compiled to .so object.
Below you can find a screenshot from early state of the simulator (when the project was less generic, since e.g "Generate GM pulse" because originally it was intended as logger for GM counter). The simulator is heavily outdated but core concept and implementation is ok.