Our Engineering team develops the tools and features that are at the core of our platform. They create the backend technology that ensures our entire operation is successful. Today we’ll meet Ruben Niculcea, our Mobile Software Engineer. In his six months at ShowClix, he has already introduced multiple processes to the Software Development Life Cycle (SDLC), which helps ensure our system runs smoothly.
Ruben graduated from Portland State University in 2015 with a degree in Computer Science. During his college career, he interned at Vernier Software & Technology as a Mobile Software Engineer. After four months, he was offered a full-time position working on iOS apps for Vernier Video Physics to bring automated object tracking and video analysis to iPhone, iPod Touch, and iPad. He then moved on to work as the Lead Software Engineer at the Carnegie Museums of Pittsburgh Innovation Studio, where he created engaging products for all four of the Carnegie museums, ensuring that good software engineer practices were followed.
When Ruben started at ShowClix, our mobile development team was keen to enact more software engineering best practices. As a big believer in processes, Ruben knew his skill sets would match well with ShowClix’s needs.
Today, Ruben works to establish a clear SDLC. This not only helps our team internally by making sure they can overcome any development challenges, ship apps more easily, and ease the on-boarding process of new mobile developers, it also ensures our partners have the best experience possible while using our apps. When not developing software he is out enjoying nature, usually by backpacking with his dog, Artemis!
As a Mobile Software Engineer, you develop and update iOS and Android apps to provide our partners and their customers with a better event experience. Tell us what a typical work week looks like for you.
A week’s work for me is often split 70% new development and 30% improving existing applications. This, however, can vary wildly as ShowClix has about five mobile apps, so my primary area of focus can change on a dime. Generally, we try to guard my time so new development is still progressing every week. As for the programming languages I use on a weekly basis, I generally do a bit of development in Objective-C, Swift, Java, and Typescript pretty much every week. I can take a bit of a productivity hit from too much context switching, so I try to block my days to ensure either iOS, Android, or React Native development.
ShowClix is an event technology company, so providing leading technology is clearly integral to our core mission. Can you describe how our engineers work alongside our product team to ensure we’re prioritizing the right projects and utilizing best development strategies?
ShowClix values low barriers of communication. This means our product and client services teams often talk straight to each project’s responsible engineer, which means that I get to hear about our partners’ experience with our apps very quickly, and we’re typically able to address any possible concerns or challenges the same day they’re reported. We use a variety of sources to find new ways to improve our mobile apps: bug reports, analytics, customer reviews, internal and external surveys, exploring the market, personal preferences, etc. So when we decide to implement a feature, we often have a variety of reasons why we are pursuing that current feature.
What do you find to be some of the most rewarding parts of mobile software development?
Mobile devices have become the main computers for many of us. I don’t mean that the majority of the population doesn’t use desktop or laptop computers anymore, but rather a very large portion of ‘computer things’ now happen on mobile devices. We much more easily reach for our phones and tablets than our laptops, especially during our downtime. Being able to write software that is so close to a person, both because it’s physically on their body and because it is a very personal device, is amazing and opens up a bunch of new possibilities.
What advice do you have for young engineers looking to break into the industry?
Structure your program in such a way that certain issues can’t exist. For example, using a programming language that enforces null safety means that null reference errors can’t exist in your program. Another example: write tests that, if they fail your code, will not deploy. There’s a proverb that goes, “Good Generals think about strategy, great Generals think about logistics.” I believe this proverb could be applied to software development as, “Good Software Engineers think about code, great Software Engineers think about process.” Thinking about code isn’t bad, but how can you make it so that bad/unsafe code can’t ship or is harder/impossible to write? I boil this down to the very 1984 sounding mantra of “Freedom through constraint.”
In your free time, you’re an avid backpacker. What was one of your most memorable backpacking experiences?
I’m out enjoying nature whenever I can. Last year I did around 21 miles in hilly terrain with my dog in a weekend. Which was a little too much for her, and me too honestly, but being able to completely tire out your dog is an amazing feeling. I still remember when we got home she let out the saddest sigh as she jumped on her favorite spot on the couch and napped until it was time for her nighttime potty break. I now know I like longer walks than her!