Man, its been too long. I found about 10 posts I've started over the last 2 years that had reached various levels of completion, but realized that completing any of them would require me to recommend things that I now know to be wrong. So instead, I thought I'd relay some of the things I've experienced and what I've learned from them.
In my quest to become one with my Air, I've been in search of the best tooling to keep my workflow smooth. I did some playing around with MacVim, running rbenv in OSX, and various IRC clients. After a lot of hand-wringing and head-scratching, I think I've come up with the best solution.
Cheaters always win! 🔗
My fix is to give up and give in. Vagrant to the rescue! In all fairness, the choice to use Vagrant was sort of a team decision. We have quite a few devs, and find a way for them to work consistently seems like the perfect use case for Vagrant. So for day-to-day work, I spin up the project specific VM using the Vagrantfile in the repo, then just pull in my dotfiles using homeshick. This workflow allows me to always work in a consistent environment, no matter where I'm working from (even from a Putty session).
I am a Linux guy. Ever since my first install of RedHat 5.1, I've been hooked. My home router/firewall is a Gentoo box, ffs. For servers, I've migrated from VPSLink to Linode, with a few one off droplets on DigitalOcean. There isn't a machine in my house that doesn't at least dual-boot Linux. In fact, I inherited a Mac Mini when one of the startups I joined closed its doors, and even it runs Linux.
For the last few years, my primary dev box has been my ASUS behemoth. It's nowhere near an ultrabook, but it was mine. Mine in the sense that it has become an extension of my hands. It's heavy, it's massive, and I love it.
My most recent career stop was also my longest. With the collapse of my startup dreams,
I had to find employment back in the real world. I took a position with a local company that wrote Credit Union software in Delphi (basically Pascal). The only Delphi I had ever used was in writing InnoSetup scripts, so I really had no idea what to expect. Thankfully, I found out my first day that:
- They had some server components written in C++, and
- They also had a "web" department, which allegedly did internet stuff.
Rather than summarize what I actually DID during my time there, I'll instead highlight some of the issues I encountered, my attempts to solve their problems, and the ultimate reason for my departure. I won't address the fact they were still using Microsoft's Visual SourceSafe for version control. I think it speaks for itself.
Recapping the last chapter, I'm managing a dev team, doing a fair bit of C and Java development mixed with some TCL and the occasional RPG IV. I've gained a bit of arrogance, but also quite a bit of real-world development experience. Technically, I'm doing fairly well. I've also been able to develop some fairly decent team management skills. Unfortunately, I still have a problem with authority.
During a management meeting, I had a difference of opinion (fairly loudly and colorfully) with the president of the company, and it was decided (surprise!) that my services were no longer needed. By this time, I had moved home and been telecommuting for over 2 years, so logistically this wasn't as big of a blow as it could have been (thankfully). This was, however, the first time I had been unemployeed since I got my first job almost 8 years prior.