I had the same dilemma. After getting my BS degree in computer science I get an offer for an internship at Intel.
In my mind it was going to be for only few months while I write my thesis at the same time but it ended being a full time opportunity too.
Long story short, after 2 years as full-time developer I figured out how I left behind my goal of finishing my master's thesis.
After talking with a co-worker that just graduated after a long 7 years of working + thesis he gave my this great advice:
"Making a thesis is like running a marathon. You have to put in the hours. But see this, if it takes let's say 500 hours but if do an hour per week worth of work it won't take you 500 weeks, it will take you 2000 weeks. Because of the context switch. My advice for you is that you compress the time and make it happen as soon as possible."
Having that in mind I approach my manager with 3 options:
- Allow me to allocate 2 hours per day for my thesis.
- Allow me to take a unpaid license time off to finish it.
- If this does not work, I'll have to quit.
It happen often that big software companies have retention systems so their employees don't quit. It's cheaper for them to keep their staff than search a new fit.
After a period of trying working 2 hours in my thesis per day it turns out that was not enough time and I approached my manager again to tell about this. He offer me 1 month off.
After a long period of thinking about it I quit and I just few weeks apart from getting my degree. In retrospective it was the best choice that I could probably make.
I've a new project for my portfolio, so I have not 'dead time' in my resume. I have done my thesis really fast (2 months) and there are plenty of open positions for coming back to the same company.