Hi @ericlin
Yes it does look like an uneven copperclad surface. One trick to mitigate that is to use a G-code sender that has “auto-leveling” feature, which leverages an electrical probe to first map out the copperclad surface, and then automatically remaps the G-code onto that surface to compensate.
I believe bCNC offers this feature, there might be a way to do with CNCjs, and that thread also mentions “Candle”.
Alternatively, you may want to look at this neat technique discussed in the forum a few months back:
Near the end of the thread there is also a mention of using a spring-loaded engraver, which would take care of copperclad uneven surfaces too.