The right tools for the job: Talking tech stacks with 5 Chicago companies

Building standout software starts with choosing the right tools. But that decision depends a lot on the kinds of problems you’re solving.

Written by Andreas Rekdal
Published on Oct. 04, 2017
The right tools for the job: Talking tech stacks with 5 Chicago companies

Building standout software starts with choosing the right tools. But that decision depends a lot on the kinds of problems you’re solving. With that in mind, we asked technologists at five Chicago companies about the most interesting challenges they face — and how their tech stacks help in taking them on.

 

 

Developing for the consumer market comes with its own set of challenges. Performance issues and bad user experience can lead potential customers to abandon your application for good. For Trunk Club software engineer Ryan Prinz, technologies like Kafka, Sinatra and Postgres are key to keeping the system performant while enabling cross-team collaboration.

Which technologies does Trunk Club's tech team work with?

We have really enjoyed using Sinatra for building APIs, React for building our web user interfaces and Kafka for message streaming between our services. And, of course, I can't fail to mention our system's bedrock: Postgres!

What are the most interesting tech challenges you're working to overcome?

Innovation is not easy. For our team, we share a pretty wide range of challenges, from scale and uptime to customer acquisition and revenue growth. We organize teams around products, users and metrics. For example, one of our metrics is how many items a customer will keep from a shipment that we send them. Our ability to predict and improve upon that number has really impressed me.

What makes your stack good for taking on those challenges?

We have built an increasingly nimble system over the last couple of years. Our software engineers, data scientists and business intelligence staff can all collaborate system wide. We have product managers writing and deploying code. We have engineers writing UI components and deploying them in their first week on the job and, in some cases, their first day. My proudest technical achievement in my two and a half years on this team was helping to launch an entirely new line of business in a few short months. Our women’s business has a fundamentally different architecture, consuming product data streams from our parent company, Nordstrom, but it’s all built on top of our core system services.

 

 

 

Connected to a wide range of custom-built systems, the project44 platform needs to be easy to adapt with short notice. For that purpose, support engineer Ben Zifkin said his team relies heavily on Java and Spring Boot’s capabilities for tracking how changes in one location reverberate throughout the system.

Which technologies does project44's tech team work with?

project44 is built in Java on the backend, which is what I mostly deal with. We use Amazon S3 and dynamoDB to store a lot of the data from production. We use Kafka for our data pipelines and logging. For build automation and dependency injection, we use Gradle and Spring Boot. Also, since I'm a support engineer and may have to reference the specific details of a single request that comes through our system, we need something to help find that one request out of the millions that go through our system. For that, we use Elasticsearch.

What are the most interesting tech challenges you're working to overcome?

Right now the most difficult technical challenge I'm attempting to overcome is how to grab an ID number from a bunch of noisy input. The ID number is of variable length, sometimes purely numeric, but occasionally containing letters and special characters. Sometimes it is preceded by an identifier, but usually not. While this would be a trivial task for a human, it's fairly tough to build a system that will consistently catch the ID number under these constraints. I've considered building a neural network, but at the end of the day that would involve bringing in a bunch of other libraries and frameworks into our stack. Other than this one task, it wouldn't be particularly useful, so that's unlikely.

What makes your stack good for taking those on challenges?

Since we are building APIs that connect to various parties who may change their systems at the drop of a hat, an object-oriented language like Java is really fantastic because it is easy to understand and very modular. Similarly, Spring Boot helps to keep track of how the changes we've made may affect the rest of the system, which is absolutely invaluable. Elasticsearch is also tremendously useful. Not only does it help me to track down a specific request that may have come through our system weeks ago, but it also provides a great tool for collecting test data and edge cases.

 

 

 

Operating in the fast-moving yet highly regulated online lending space, iLoan puts a premium on tools that help it adapt quickly without compromising on security of performance. Software engineering manager Afra Ahmad said his team has arrived at a stack that combines Ruby on Rails with PostgreSQL, Ember and React.

Which technologies does iLoan’s tech team work with?

The backend of our stack is the latest Ruby on Rails stack with PostgreSQL as the core database and Ember and React for the front-end portion. We also utilize Java in some areas, and other state-of-the-art tools, such as Ansible and Looker, for deployments and reporting.

What are the most interesting tech challenges you’re working to overcome?

Due to the nature of the financial sector, strict precision and accuracy is a must. This means we need to handle concurrency in a high-performance environment. Since this is also a heavily regulated industry, moving fast and being able to adapt and iterate quickly is crucial. Fraud detection and analysis is also a very interesting and challenging area to work in, as this constantly needs different methodologies.

What makes your stack good for taking on those challenges?

Because of how modern the toolsets are and the ease of deployments, developers can focus on the task at hand. Service-oriented architecture makes testing and iteration quicker and easier.

 

 

 

Why change a winning team? That’s one of the most important questions Sprout Social co-founder and CTO Aaron Rankin raises upon encountering new technologies his team could adopt. That’s not to say he isn’t open to adding to the stack — so long as the benefits of the new tech outweigh the downsides of a shakeup.

Which technologies does Sprout Social's team work with?

We place a large emphasis on what's right for our teams and our customers. Oftentimes, tried and tested technologies that we've used for years and that have large developer ecosystems are best. They give us the time and space to put our best work toward our products. MySQL, Python and Java come to mind. Occasionally, something new comes along that offers a lot of promise, and we cautiously adopt it. We adopted Backbone.js in 2010, Cassandra in 2011, React in 2014, NSQ in 2015 and LMDB in 2016.

What are the most interesting tech challenges you're working to overcome?

A few in progress include: Migrating our production environment of more than 400 servers and 35 terabytes of data from a legacy hosting provider to AWS — without interruption to our customers. Enabling our customers to search and filter the many billions of social media messages their 200,000 social profiles receive. Giving our customers confidence in rock-solid uptime of our message publishing tools. Building a powerful and user-friendly chatbot builder service.

What makes your stack good for taking those challenges on?

Our teams are very familiar with them. That confidence empowers them to quickly build powerful products that are loved by customers. Engineering confidence and efficiency are key.

 

 

 

For ReviewTrackers VP of engineering Nate Reynolds, community support was an important factor in choosing between frameworks and technologies. By opting for well-supported technologies like React and RabbitMQ, his team can avoid unnecessary hurdles in developing and maintaining features.

Which technologies does the ReviewTrackers tech team work with?

We use Node.js for two web services, and React Redux sits in front for both with an Android and iOS React Native app. Golang is what we use for our API layer with RabbitMQ with Ruby for asynchronous processing, and we have a couple PostgreSQL databases with everything running mostly on Heroku. We also use Python for NLP initiatives.

What are the most interesting tech challenges you're working to overcome?

The analytics piece to our product. We have seen some compelling results from early development and are excited to launch a few deep learning products in the next two months. We have learned a ton along the way and are excited to share our experiences and knowledge for others with our engineering blog.

What makes your stack good for taking on those challenges?

The tools we use have a large contributing community, have been around for some time and are continuing to see development. That reduces the likelihood that we will run into framework-level bugs that are difficult to conquer and makes the barrier of advancement in our technology much smaller.

Also, looking at it from a few angles, Node.js and Ruby — along with Rails, which we don't use — are arguably the most utilized frameworks and languages in Chicago. With engineers having that entry point, combined with the opportunity to get into Golang, it’s exciting to incoming engineers, which helps to recruit top talent looking to learn and work in a fast-paced environment.

 

 

Images via featured companies. Responses have been edited for length and clarity.

What sets your company's culture apart? Send us an email or tweet us @BuiltInChicago