"Developer" is appropriately diffuse in its meaning. It includes all the steps of making software happen, requirements gathering, critical thinking thereon, etc. "Programmer" can sound like just "guy what taps on the keyboard". It can even be faintly perjorative in some contexts.
I'd use "software engineer" if I could in good conscience, but "software developer" is pretty neutral while still being accurate.
To clarify, I use "programmer" when speaking to very non-technical people, usually elderly. Many other languages have a similar word but it might have different connotations, for example, be less negative (pejorative).
I'd use "software engineer" if I could in good conscience, but "software developer" is pretty neutral while still being accurate.