Software engineer, doing imperative OO programming for a living but slowly converting to declarative (denotational) functional programming.