I am applying to Ph.D. programs in Computer Science at top 20 schools in the USA.
I have been working as a professional software developer since I completed my B.S. around 4 years ago. My professional work has been at medium-large, well respected companies making shrink-wrapped software. Serious projects, no enterprise web apps or anything. But as a mere B.S. I have mainly been "wiring up" heavy algorithmic components written by my co-workers with Ph.D.s. Talking to hardware, real time user interface stuff, graphics, moving large amounts of data quickly, but nothing really research-level theoretically. That is why I'm going back to school.
I got my undergraduate degree in math from a mid-level school. I did serious undergraduate research for a year, but only showed a poster at a small conference, no paper. I feel that my research experience might be weak compared to other applicants'.
I'm thinking it will pay off to emphasize my programming skills because, as one self-help article said, the department is essentially hiring me to work for them. I believe my software engineering and project management skills are better than the average applicant straight out of undergrad. I know the C++ language well and have a very solid understanding of which language constructs lead to high-performing machine code. I know how to plan my projects and diagnose problems so that I don't get stuck. I spend a lot of time maintaining old code so I am careful to write code that will be easy to understand and modify in the future.
If someone gives me a paper and says "implement this algorithm," I feel that I will be able to do it quickly, independently, with good performance and production-grade code quality. On the other hand, implementing algorithms from other people's papers won't get you a Ph.D.
How much of my personal statement should I devote to this topic? How should I phrase it?