I am a programmer, not a coder, not a software engineer, not a warm body.
I am not a Java programmer, a C++ programmer, a PHP programmer, a Web programmer, a game programmer; I am all of these but still just a programmer.
My first full program was a simple carnival in Basic via timeshare on a teletype with a paper tape reader, but the programming style I came up with is still with me.
I am a programmer, not an architect or lead or designer or a PM or a BA or the guy with the final word on shipping a product to 100,000 people on floppy disks or the company President but I've been all of those, often at the same time; but always a programmer.
There hasn't been a month in the last 28 years I haven't written code.
I love to work with people who can teach me something and let me teach them something, and especially mentor the inexperienced.
I can't stand people who talk big and let everyone know they are God's Chosen Programmer but ship crappy code or even ship nothing at all. Real Programmers ship!
Over the years I've learned that not all new technologies, methodologies, systems, tools, and frameworks are worth using; if they make things work better or faster or make me more productive then I'm excited to use them but most aren't worth it.
Simple is always better, more is rarely worth it and anything too complicated to understand is useless.
Other than one CTO/CIO who was really an architect and programmer, all the CTO/CIO's I worked with/for were clue-free morons at best. One was so bad he only believed vendors but never his employees.
A good PM tries to understand the technology and the business, keeps everyone informed and acts as a BS umbrella. Most of the ones I've worked for didn't do any of these; the worst took all the glory and blamed the programmers for anything that went wrong. The best PM I ever worked with was an ex-marine.
I've had one company die out from under me, one layoff the entire US division's employees and one told me to leave when I wouldn't quit because I insisted on doing what the CTO wanted and not the architecture team. I started two in my early days.
I've been on several architecture teams and generally it was a miserable existence.
I don't think I'm smarter than average, but I will answer to being creative and having imagination. I think I can learn anything and be productive quickly. I am a programmer after all.
I like working on the impossible or things no one has ever done before, i.e. "where no one has gone before". I fear no program.
I hate bugs and hate giving code to anyone, even testers or other programmers, if it doesn't work correctly. Shipping code to 100,000 people on floppies teaches you to get it right.
The most important things about a program are having it do what the customer needs, work correctly as much as possible, be easily maintainable/extensible and be productively written. If the environment has something in it that doesn't contribute to these then I want to get rid of it.
A desire to fix broken things is one of my strengths and a weakness. I try to make things better, but people who made them worse usually don't like it much.
I do work for a game company with little money because I love the product and want to make it better. Sometimes I think I am pretty dumb here.
I hate interviews as people never read my resume, my blog, or even know my name and then decide they need to see if I am really a ditch digger. No one ever asks details about projects I have done and list on the resume. I always ask for details from the resume as you can't fake talking for an hour about something that takes 2/3s of a page and occupied a lot of your life.
Sometimes I wish I had gotten a PhD. in Computer Science instead of piddling around in Chemistry.
If I ever lost everything and wound up living under a bridge, I'd be the only homeless person with a computer, because I am a programmer.