The Linq version is clearly superior to the imperative version, but I find the following even easier to understand:
(into [] (map full-name
(sort-by :last-name (filter #(= (:role %) 'developer) employees))))
It's good to see mainstream languages adding declarative constructs though.