Project Shelby

The last big company I worked for afforded me a number of different roles. At the start of my career, I worked for about 10 years as a software developer — a job I was passionate about and reasonably proficient at. After about a decade of that, though, I got a little tired of constantly learning how to solve the same problems again but with yet another new technology, but also afraid of turning into the guy in the cubicle next to me who was still doing the same job on 20 year old technology.
Fortunately, God moved my career toward more commercial roles, and I realized that my sweet spot would be somewhere between technology and business (kinda like this guy). It turns out there are a lot of different options for careers for people like me. I tried my hand at evangelism, business development, and finally product management. And that last stop, at Amazon, felt like home. As a product owner, you get to create the theories of market impact, define the vision, and once in execution mode, you can go as deep as you want with the engineering team on how to solve the problems that get you there. There aren’t many jobs where you can be in an executive board room one minute, and checking in code for the nightly build the next.
About 15 months ago, when I started my current job, our leadership had put out a dual challenge: do something in a space called “analytics”, and go fast. Analytics is just information software, which I wrote for years. And going fast is something we did really well at Amazon. It was a good fit. My new boss and I spent many hours reviewing analyst and market data, talking to customers and potential partners, and (for me) learning about what technology we had available to us in-house. Old friends and colleagues provided input and guidance, and a plan formed. We went back to the leadership and proposed assembling a small, cross-functional team with engineering, design, quality, business and product skills all reporting to the same leader (an “A-Team” if you like…) My boss would be that leader, and I would lead the product and technical effort. We set a goal of building a product in one calendar year, from sketch on a whiteboard to box on shelves — an unheard of target at this company, but one we thought we could pull off by combining new code with some existing bits pulled together to express something new.
In January of this year, after a few false starts and final approvals, we had the core of the team: 3 software developers, 1 part time designer, me as a product owner, and my boss as manager and business owner. Within a couple weeks we had added a test automation developer, a part time researcher and a front-end contract developer, and we were off to the races. Although we had those pre-existing bits, our computers, and a few cardboard boxes of tech that one of the developers brought with them, we were otherwise starting from scratch. The team built our test environment, simulating an industrial operation, our build system, pulling together and compiling the code from each participant, and our process, a combination of Scrum and Kanban with a lean Agile philosophy.
We work in 2 week sprints, automate our testing to ensure quality within a small team, and demo our work regularly to the leadership and potential customers. By August we had prepared a “preview release” that we invited 5 customers to run in their labs to validate our approach and ideas. And in less than 2 weeks, we’ll officially announce our product to the world at our annual conference. We lost a developer to retirement this summer, which impacted our velocity, but our contract developer moved to full time, as a great hire for the company, and we’ll soon have the empty seat filled for the final stretch of this race.
My job is a lot of things I love — and just a few I don’t. I do get into the code, a little more than I expected, but it helps take some of the pressure of the team’s deliverables. I present a lot, and throughout the year, as our product has evolved, those get more fun. Customers have never seen anything quite this cool coming from this space. We’re leveraging some consumer technology and ideas to make our product more approachable and interactive, with a focus on making sure customers can start using what we’re building within minutes (as opposed to weeks or months for most information software in industrial automation.) Because we’re in a big company, I also have to do a lot of paperwork — a necessary step for audit-ability and customer confidence — but thanks to some of the pre-work by other smart people in the company, we’re able to do a “light version” of the process, on the understanding that our product will be able to be updated and improved continuously after launch.
shelby128The codename for the product is Shelby — and as it started fetching information for us, Shelby took on a dog personality. Its software and hardware, married together as a single-purpose, near zero-configuration appliance. On start-up, it needs to know what language you speak, what time it is, and how it will get an IP address — and that’s about it. Shelby configures itself from there by exploring the operation its been connected to, identifying the parts, and building an information model about what it sees. Once that’s done, it starts analyzing the data and looking for problems in the operation, and producing information about what’s going wrong (or potentially, about to go wrong.) In the customer sites and labs we’ve been in, Shelby’s record so far is 121 devices and 23 problems — all discovered in less than 3 minutes. To be clear, this could be done before Shelby — but it would take weeks of custom system and tool configuration. Shelby makes turning data into information an instant and repeatable solution, that customers can buy as a (relatively) inexpensive product and service.
We’ve had highs and lows, support from outside has come and gone and come back again, but my little team has never failed to wow people with what we’ve accomplished in the short amount of time we’ve been working together. I couldn’t be more proud of my crew, and of our little product. Its industrial analytics for everyone; its a little bit of magic in a box, and its almost here.

To the Cloud!

Publicly available WiFi sucks — for more reasons than one. Other than the obvious slowness, there’s also traffic and packet shaping, ads, and the gaping security problems that come from being on the same network as strangers. Most sites are encrypted between the client and the server, but who knows what kinds of identity information you’re potentially leaking to the owner of the network — or the other guests using it.
But that’s nothing on your work network, where the IT department — or even the HR department — have access to your activity logs, including every request you send to a server. That’s assuming they even let you get to the sites you want to visit. Some employers are more open than others, leaving it to the discretion of the employee (and heuristics against your activity logs) to determine what parts of the internet are appropriate. My current employer is not one of them. Want to see that picture of your kids your wife just posted on Instagram? Too bad. Like to have some background music or video playing while you work? Not here. How about doing some work in the Cloud — y’know, when your software team is tasked with making Cloud software? You’ll need a special exception for that…
In short, if you want any sort of expectation of privacy while emailing with your spouse, or banking online, your best choice is to wait until you get home. Failing that, creating an encrypted tunnel from where ever you are through your home network is the next best choice. Enter VPN software. Long the domain of enterprise networks, with OpenVPN and a Raspberry Pi its available to any reasonably savvy individual. PiVPN provides a simple script that makes setting up a VPN a breeze. Set up a free Dynamic DNS entry, and poke a single port through your router, and its done. You can generate VPN configurations for your phone, or your Mac or PC laptop with a single command.
Once this is setup, you can flip a switch from anywhere and open an encrypted and secure tunnel through your home, and out to the Internet from there. Anyone on your public or work network trying to hack, limit or snoop your connection will see only garbage in traffic. And if you have resources on your home network, those are available to you (including remote desktop, file sharing and printing.)
Now if I can just get OneDrive syncing with my Pi…
Update: You can also run your own DNS, for more privacy and less ads. Check out Pi-Hole!