The nested / chain for location/email/phone/url separators appears logically sound, but it’s extremely dense and will be fragile to future changes.
Consider refactoring to build a list of present contact items and render them via a loop (e.g., iterate over a list and join with \AND), instead of manually encoding every combination with nested conditionals.
In server/engine/src/main/resources/templates/resume/engineering/engineering.stg
around lines 40 to 76, the header contact-line uses a fragile nested if/elseif
chain to conditionally render location, email, phone, url and profiles with \AND
separators; replace this with a simple approach: construct an ordered list/array
of the contact elements that are present (e.g., push formatted location, email
link, phone link, url link, then profiles), then iterate that list and render
items joined by the literal separator sequence (\kern 5.0 pt \AND \kern 5.0 pt)
so you only maintain one rendering path and avoid combinatorial conditionals.