I am a software engineer. That alone is ill-defined.
My current position has me in charge of two or three features on one product and a feature area on a super-secret internal project. The former is the team that hired me. It's a suite of Windows Forms controls for the .NET visual languages, but my particular component happens to be non-visual. I have 6 years of experience in C# and know plenty of nuances of the .NET CLR. I've got 2 years of hobby and 3 years of professional experience in writing Windows Forms controls and I'm working on expertise in WPF control development. I'm weak in practical application development experience but the patterns and methodologies are my current study focus. Knowing how my customers write applications helps me write better libraries for them to use. I'm highly skilled in C# and VB .NET. I'm capable in IronPython, HTML, CSS, and VB6. With a reference handy I can work my way through F#, Ruby, Python, Perl, PHP, and C/C++. I'd like to have a better grasp of Lisp, JavaScript, Erlang, and a handful of other languages, but my edge in .NET is slipping and it pays the bills.
On the one team, the customer's requirements are generally well-known and I'm in charge of maintenance, optimization, and occasional implementation of features in response to demand. My position on the other team involves a high degree of innovation. It's a problem space we haven't attempted to approach yet. So my job consists of lots of research to generate a set of requirements followed by implementation work. The goal is to make the released product good enough it won't need much to make it complete.
In short, when I'm not solving problems, I'm writing components for tools that other engineers use to solve problems.