Whenever I write an article, I feel the result is not good enough. Although every theorem is solid and correctly proven, something is always "squeaky".
The main evidence for my feeling shows itself when my co-authors revise theorem I've written. Suddenly everything becomes compact, precise and clear. Properties that were used several times get a name; modular parts of the proof become lemmas; etc. The math remains the same, but the presentation is way more efficient and easy to follow.
How can I improve my technical writing skills? Any tips and resources would be appreciated.
Comment: I'm not a native English speaker, which is an additional factor.
The only way to improve writing (technical or non-technical) is by writing and submitting your work to the criticism of peers. Thankfully, in mathematics there is a culture of blogs. When you learn something new, write it up on your blog and share it with your friends. This will help you better understand what you wrote AND let you practice writing. At first, you won't get much feedback, but as your audience grows you will naturally learn from the feedback they provide.
Another great tool is math.SE and mathoverflow; on these sites you are guaranteed feedback. Ask and answer technical questions, this will let you practice your writing. As your writing and clarity improves you will also notice an average increase in number of up-votes, etc. This will give you useful positive reinforcement.