Sounds like you played it smart developing industry-relevant skills. I lucked out with that myself and got a thesis project that helped me get a software engineering job afterward. This is really one of the things they should emphasize to new students: the odds you will get a good academic gig, even if grad school works out well for you, are very low, so make alternate plans. Glad to hear things have gotten better for you after getting out - good luck!