I had a bug submitted for POP Forums yesterday, with some nice feedback. Silly bug, but it's kind of what I get for not having any testing around the caching in my data access code. Still, it's nice to hear some positive feedback about the project. It's something more tangible than the download stats.
It also comes at an interesting time, where I've been highly reflective about my abilities as a software developer. I've come to realize that I've been at this for more than a decade now, and I honestly didn't get into it intentionally. I've had a wide variety of experiences from tiny start-ups to the world's largest software company, and many sizes in between. I've worked on apps used by two or three people, up to an app that gets more than 45 million page views per month. That's half a billion pages a year. How many people get that kind of opportunity?
But if I really strip away the resume and try to be objective, I ask myself if I'm any good at it. What does that even mean? Hanselman did a great post stating, "I am a phony." It's a sentiment that I think all good developers have from time to time. Heck, I have 30 domain names I'm not using too, all with good ideas dangling off of them.
The conclusions of the self-aware generally result in a rational acceptance that they are not, in fact, useless assholes. Awareness enables self-improvement, humility and motivation to be better at what you do. No matter what your skill level is, that's the opposite of being phony.
If you're in my line of work, you know that there are a lot of egos out there, and many of them want you to feel stupid. Interviewers continue to tease you with pointless algorithms you'd never encounter in real life, contrived debugging scenarios that don't exist and whiteboard exercises that pretend you have dictionary knowledge of framework libraries. Some corporate structures want to outline exactly the kind of role you should fill, and meticulously compose your future.
Don't ever let this nonsense make you feel that you aren't good enough. We're all individuals that roll in our own way, under our own motivation, with different priorities. One person might be a heads-down coding caffeine junky, another a big-picture thinker who likes to mentor and coach. Good companies, and especially entrepreneurs, know how to value us.
If I could summarize my advice to anyone developing software, I would say this: Understand what gets you up in the morning, and find a way to do it. If you can show people what you're capable of, with a sweet app in production, or an open source project, even better. Real things speak louder than resumes. Let those things be your voice. You can't be phony if you have a voice.