Как контролировать работу удаленного программиста?
Для начала, не надо было пытаться так экономить. Судя по тому, что на решение задачи тратятся месяцы - вы искали самого дешевого программиста, и с вами согласился сотрудничать новичок. Он сейчас скорее всего жалеет о том, что с вами связался. Простите, но вы сами виноваты. Семь шапок из одной овцы не выкроишь никак.
Любая задача решается не более, чем за одну неделю. Подавляющее большинство программ выпускаются в бету за 2-3 месяца. Если дольше - нужно бить тревогу. Или неправильное планирование, или проблемы в команде.
Мониторить просто - по списку задач в трекере и/или по коммитам. Не нужно ожидать, что разработчик будет выдавать какой-то прогресс ежедневно. Программирование - это не линейный процесс. Можно день-два протупить, а потом за десять минут сделать - такое происходит постоянно. Удобными для всех будут ежеденедельные итерации. Например, каждый понедельник проверять прогресс за неделю, и при необходимости, скорректировать его.
Не выносите разработчику мозги длинными беседами. У программистов мозг несколько иначе устроен, и длинными беседами вы ему мозг выносите. После чего ему работать сложно - таким образом вы сами создаете проблемы. Пишите вопросы текстом, и делайте это не чаще, чем один раз в неделю. Накапливайте вопросы, прежде чем отправить их письмом. Если вы нашли ответ на вопрос самостоятельно - удалите его из списка. Проверьте, нет ли ответов на вопросы в интернете. 
Это удивительно, но многие, будто конченные олигофрены, не понимают, что консультации отнимают и силы, и время. И именно поэтому должны быть регламентированы. С консультациями, как с сексом. Хотите, чтобы было качественно? Тогда нужно хорошо подготовиться.  И вести себя прилично. Всегда. Хотите хорошие ответы? Продумайте свои вопросы.
В состоянии потока любая хрень может отвлечь и нарушить рабочее состояние. Особенно - вопросы. Особенно  - глупые вопросы. Глупые не с вашей точки зрения, а с точки зрения разработчика. Программист работает циклами по 2-4 часа. Если нарушить цикл (например, задав глупый вопрос или позвонив по телефону) - теряется ПОЛОВИНА ДНЯ.
Поэтому мое второе замечание - проверьте, а не мешаете ли вы ему работать?
Есть отличные тайм-трекеры , причем некоторые логают все , запущение программы, делают скриншоты и все это шлется на сервис в котором вы как главный, Вы главный и поэтому Вы будете как  - менеджер, продюссер и тим лидер, который должен уметь контролировать все эти вопросы. Плюс, когда вы думаете работать с удаленным программистом, то - надо понимать какими методами разработки вы будете следовать, далеко ходить не надо и взять к примеру,  Agile. Ознакомьтесь с ним чтобы уяснить что Вам нужно от программиста и ему от Вас, здесь я больше указываю на  так называемые - "стори". Также , знакомьтесь с портфолио программиста, проводите интервью с ним же, сделайте список вопросов перед этим. Ну и главное , у Вас должен быть хороший капитал. Ну и посоветую книжку прочесть - Идеальный программист. Есть вопросы пишите. отвечу.