В типичной фирме у программиста есть некая верхняя планка, до которой он может расти, оставаясь программистом. В Москве это, как правило, 150-200 т.р. Дальше ему нужно становиться менеджером. Неважно, каким - техлидом, менеджером проекта или ещё кем-то. Логичнее всего, конечно, техлидом. Этот человек не кодит, он организует своих подопечных, требует с них сроки и раздаёт люлей за их срыв. Также он может решать сложные технические вопросы на проекте. Как правило, ему нужно также присутствовать на деловых встречах и общаться непосредственно с заказчиком / клиентами.
В небольших фирмах и стартапах грани между этими должностями более прозрачны. Например, технический директор может быть одновременно главным и (чуть ли не) единственным программистом. Причём получать больше, чем те самые большие манагеры.