Meet Jeremy Shimko of the Reaction Core Team
Introducing Jeremy Shimko, our newest addition to the Reaction core team. An infrastructure and security specialist, Jeremy is currently spearheading the development of Reaction’s hosted platform service, launching later this month. Prior to joining us, Jeremy was a full-time freelance developer, building real-time web solutions with Node.js and Meteor. We sat down with Jeremy to learn more about his personal and professional journey.
How did you get to where you are today? How did you get started?
In a former life, I worked for an audio-video production company just outside of New Haven, Connecticut. I had some recreational experience with Linux, which crossed over when we started doing live webcasting for entertainment and conference calls.
I built my infrastructure background by essentially distributing video to a large audience all at the same time. Setting up the server infrastructure was a big component of that. If you send out a live video stream, it’ll hit a bunch of servers and distribute that out to however many people are watching. Based on how many people are watching, that will need to be scaled out. That’s the core of infrastructure, which became my specialty and focus. And that’s exactly what Reaction needed for their hosted platform as a service product--which is where we are now.
Tell us more about the hosted platform.
I am leading the development for building all of the infrastructure behind our hosted platform, as well as the UI. Currently, whenever a developer signs up for Reaction, they download the code and set it up for themselves. Our new platform is the commercial product that does all that for them. Users sign up, click go, and our hosted application takes Reaction's latest code, sets up the servers and the databases, and wires it all up.
Essentially, we took a complex infrastructure setup, the foundation of any application that lives on the Internet, and put a nice UI on it, so anyone can use it. The new hosted platform really takes a lot off the user's plate. It’s also built around a technology called Docker, which essentially packages up an application, and all of its dependencies, into a portable container. It really takes the whole server setup process out of the equation. It’s hard to appreciate how significant that is without knowing how complex the process used to be. It used to be all manual!
What are your interests outside of technology? You're also a musician, right?
I have a huge passion for audio-engineering. I've been a musician since I was a child, but programming turned out to be a slightly more realistic career choice.
I largely play music with a good amount of improv in it, like jazz and funk. There's a lot of great, nerdy complexity there, and I think it's easy to see a lot of overlap between writing music and software because of the similarities.
Tell us more about why you use Meteor.
Meteor's framework, which is open-source, is completely altruistic. If it wasn't for Meteor, I don't think I would be in the picture here, or with most of the people I tend to work with these days. It's a fantastic framework, and it’s just a lot more approachable than most of what’s out there. These days, there are tons of people teaching themselves how to program and build web apps, and Meteor is incredibly attractive for that crowd. It does a lot of complicated things that, up until now, were a lot harder to execute, like real time. All Meteor apps are real time by default, which is amazing. The technology required to do that before Meteor was extremely complicated.
What projects/concepts/technologies are you looking forward to tackling in the coming years for Reaction?
The hosted platform release is our number one priority, so I’m working on polishing up the whole user experience and smoothing up the signup process.
Right now, the platform deploys a default copy of Reaction as it exists for any user. We want to give people a way to customize deployment, like they would if they were hosting it themselves. That'll probably be a popular request.
We also want to use the platform to aggregate data on how people are behaving. One of our goals is to give the shop owner a rich amount of data on what's working in their shops. We imagine developing a dashboard that feeds users real-time stats on what's selling and what’s not, although that may be relevant mostly for people doing a ton of volume in a short period of time.
Or for people with anxiety.
Analytics dashboards are a bit of an obsession for people. I have a product that I like, called GoSquared, which is a lot like Google Analytics in real time. You can see who people are, where they’re clicking around on the site, and how they got there. There's a real-time animated chart that goes up and down. It’s kind of funny and fascinating, predicting user behavior.
Google does a good job improving user experience across the Internet through predictive analytics. Everyone gets their own search results based on a complex algorithm defined by your interactions across your phone, your computer, your email, etc. This ties back to Reaction as well. We want to predict what people really want vs. what they actually do. Sounds obvious, but we're all notoriously terrible at predicting both what we want, and what other people want. Until you see the user's actual behavior, you're probably just guessing.
How do you juggle a full-time job and your freelance work?
Over a period of years, I started to realize that programming was what I enjoyed doing the most. Getting projects done wasn’t dependent on where I lived, so I started freelancing. That’s what I’ve been doing for the last several years, up until now. Full-time work doesn't feel too different from freelancing, although the lines get pretty blurred sometimes.
When I was freelancing, I had an open-ended contract where I did “25 hours” a week. But, of course, that's just not how freelancing works. I was doing twice the amount for the most part. On top of that, I was balancing other freelance work. In total, I was working about 60-70 hours a week.
The only thing that makes all this not miserable is enjoying the work. I like programming. I enjoy the problem-solving, the puzzle-solving, feeling like there’s always more to do. It’s often a stressful experience, but it’s also a part of why it's so fun. Programming provides me with that much-needed dose of creativity in my life, although it just requires a little bit of balance when you have a personal life and family life. And I love that I can work with people from all over the world from central Connecticut, all without having to drive anywhere.