Stefano Basso
Ok, the boring definition is software developer, or for more high level tasks, software architect.
If you have eyes, though, you can see magic in that: can you understand that great feeling when you've solved the Rubik's cube, or when you make domino stones fall in a delicate chain reaction? that's the magic in making computers work for us on their own!