I worked with PIC18 on a large project for about 2 years. The project was composed of some 10 devices all PIC18 based whose firmware was produced by tailoring the codebase with conditional compilation.
I had some fun and quite a lot of frustration besides having a hard time trying to understand while in the second millennia we were still doomed to use such an archaic and idiosyncratic architecture.
This series of posts was composed as a sort of survival guide, picking up everything you should take note and care about if you want to write a modern project with these 8-bitters. Some posts may be quite obsolete since Microchip changed IDE and compiler shortly thereafter, but I think that if you are forced to work with one of these chips you need every help you can find 🙂