In the last year I have applied to two big IT companies (Google and Amazon) and went through the whole recruitment process with them. I got rejected by both, and the feedback I got was very similar. On the positive side they consider I have good people skills and high level understanding of programming (design, architecture). On the negative side they consider my coding skills are not up to their expectations for somebody on my position.
I have a Bachelor in CS, Master (distributed systems) and PhD (Cloud Computing), and I have read a fair share of books (Code Complete, the Pragmatic Programmer, etc.). Also I went through Cracking the code interview as preparation.
I know people say experience is one of the key ingredients in programming. However for the last two years I have been working in positions where coding wasn't one of the main tasks: leading and managing a couple of programmers, Scrumm Master, and now defining the architecture and APIs of new components, and creating prototypes and proofs of concept.
My concern is that I may be lowering my chances to get a new or better job by not reinforcing my weak points, and maybe I should work out of the office on that. On the flip side, it may very well be worth to focus now on my strong points, and with time apply to positions specific to these skills where coding is less relevant.
How can I improve my coding skills to be better prepared for job interviews? Should I even bother?
EDIT: To put the question from another angle, should I try to improve my coding skills outside my current job to have a better shot at these job interviews? Or should I focus on polishing my current skills, apply to matching positions and hope that they don't emphasize coding as much?