You may also want to look at Linear Advance. I wrote up a post on that and you can find it here: Linear Advance - How to enable this on TAZ Pro or TAZ Workhorse
The idea is that melted filament being extruded has a fractional delay as you start/stop extrusions. But also … as the print head changes speed … it needs to change the extrusion rate and there is a delay there as well. This results in slight under-extrusion or over-extrusion at the start or end of printed segments.
Linear Advance is a feature of Marlin firmware which allows you to tune the firmware to compensate for that delay. They have tool (web page) which allows you to generate G-code to test various values for Linear Advance to find the best settings for your printer/printhead/filament combination.