My son’s headed to college in about a month, and I’m realizing just how much I’m going to miss being able to discuss purely geeky things with him. My wife’s eyes will glaze over instantly when I tell her about the cool process I got working on AWS with Vagrant, Ansible, and…whatever, she stopped listening at “process” anyhow.
Darien didn’t necessarily get it, but he listened, sometimes just politely, but generally with interest, and he asks questions. And he poked around with enough things out there that he has been finding new and interesting topics too. He also asked enough questions to drive new approaches and ideas into the topic. He’s always been my geek buddy, but it’s only been the past couple of years where he’s been at a high enough level of knowledge that any topic was fair game, and spending so much time at home this past year, I expect to be able to talk with him almost any time.
My daughter doesn’t realize what she’s in for as I seek out a new outlet. I presume that I’ll be spending more time in the robotics team’s “chatter” channel on Slack too.
Switching gears from managing teams and doing fairly high level business and technology system design form many years, I’m finding myself having to get deep into many different technologies that I knew about, but didn’t actually know. This isn’t bad, per se, but it is daunting. The technology landscape for building a complex data driven system, with multi device front ends, analytics, security, and a supportable, distributable (i.e. cloud based) environment from scratch narrows my technology search down to a few million items. Different languages don’t really scare me (despite not really being up on any of them), but every language comes with a plethora of frameworks and development tools that also need to be learned. Development patterns change with each selection and the ability to make an informed decision (without a well versed team around who can call BS when appropriate) is a major challenge. Hello World! applications aren’t going to tell me whether the application will be able to distribute amongst multiple back end providers and maintain an acceptable database throughput and remain stable.
So I’m in the midst of not so much evaluating technology based on their actual capabilities, but based on the risk level each brings, assessed by the capabilities I can infer from very limited use. Some decisions are pretty easy, despite minimal experience with them. We’ll be using node.js for many of our back end elements. Why? It meets the design needs, has a reasonably comprehensive ecosystem, and I’m convinced it’s moving forward, not stagnating. I’m a believer in lightweight frameworks and that tends to be the mindset of the developer base.
What about Ruby/Rails? Not out of the question, and will probably be part of the mix, but it’s not going to be primary unless somebody shows up on the team and can knock some things out of the park quickly with it, and we can develop appropriate strategies for scaling.
Yes, there are a ton of options, but so far, it’s just little old me making these decisions, so aside from calling friends and asking them dumb questions about the tools, I’m going on gut feeling of what can produce a viable product without a short street with a dead-end.