Stacks on stacks: 4 Austin companies discuss the tools powering their teams

Austin tech leaders share how their teams crafted their tech stacks. 

Written by Katie Fustich
Published on Oct. 31, 2018
Stacks on stacks: 4 Austin companies discuss the tools powering their teams
Brand Studio Logo

A tech stack is a lot like a chemistry set: While you may be working with a defined selection of tools and instruments, it’s amazing to think of the range of results you can achieve simply by adjusting your inputs.

We spoke with four Austin engineering leaders to learn how their teams choose tools, learn new tricks and keep teaching each other.

 

Spreetail
image via spreetail

Since its launch in 2006, Spreetail has become a premier third-party partner to sites like Amazon and eBay through the sale of home and garden goods. Spreetail’s Head of Engineering Brandon Elliott explained how the company’s engineering team crafts seamless e-commerce experiences.

 

What are the three most important products in your tech stack, and what do they help you do?

 Over the past 12 years, our back office teams have created dozens of internal products that give Spreetail unique market advantages in a wide variety of areas, ranging from customer service to marketplace integrations and warehouse management software, which powers six fulfillment centers today. Our teams recently completed the migration of all of this software from an on-premises data center to Microsoft Azure.

 Spreetail’s Austin-based e-commerce technology team is leveraging Google Cloud Platform to build a fast, smart, progressive web app backed by dozens of microservices predominantly written in Node.js. With five agile teams and growing, it’s important that each team is able to focus on building varied products and features, rather than managing infrastructure or manual deployments. The combination of Google Cloud Platform, Kubernetes, various GCP data store services and a bit of DevOps magic allows the team to focus on the high-value objectives.

 

How did you go about building the tech stack for your company?

We start with the customer outcome and work backwards.  We know customers want  a fast, modern, mobile-first site.  From there, the team makes key technology choices and then continues inward. The eventual outcome will be a custom stack for the e-commerce technology team. A similar approach is taken on the back-end services.

Our team is growing quickly, so we felt it important to consider the available talent pool as we assessed which open source languages to start with. We broke down the available talent pool by language, then those who live around Austin today and put a weight on that as part of the decision matrix.

 

How do you get engineers up to speed with new tools?

For internal tooling, we’ve conventionally utilized a paired programming model: Jump in and learn by doing with someone who’s done it before. While this has served us well, we are exploring alternative approaches to further improve this experience. One approach we’re considering, aimed at engineers new to the team, is to pair a group of incoming engineers with a senior engineer for a week to work together on a micro-project. The micro-project is used to quickly familiarize new members with how we operate, our stack, tools, processes and e-commerce characteristics. It’s also a chance to build lasting relationships.

 

Blackbaud
image via blackbaud

At Blackbaud, employees work to build technology that drives social good. How they achieve that goal is ever-evolving, explained Andres Fuentes, senior manager, software engineering, because individuals are given the freedom to learn and teach each other new tools.

 

How did you go about building the tech stack for your company?

As our company has transformed to building our services in the cloud, it has opened the door to many new and different options that weren’t previously available to us. Ultimately, we believe in choosing the right tool for the job. While we do have a list of preferred technologies to use for specific situations, teams have the autonomy to build services the best way they see fit.

When it comes to incorporating new products into our tech stack, our engineering department creates time for our team to investigate new and exciting technologies that could potentially improve our stack. After we collect enough information through research, the product gets vetted by our application architecture counsel for a final approval.

 

How do you get engineers up to speed with new tools?

Fostering an engineering culture of continuous learning is something in which we take a lot of pride. For new technologies that are used across all teams, we have internal interactive training classes. These sessions are also recorded for later reference. Additionally, we actively document our tools and services in our internal wiki for reference for new employees and teams integrating with each other’s services.

We have “Friday of Learning” sessions that are driven by our engineers, who volunteer to share information regarding lessons they learned working on projects, technologies they researched, or information they found interesting at a tech conference they attended. Monthly, we have an event we call “Tech Thursday” where participants can use the day to learn, research or prototype any technology they may be interested in. The following day, participants share their research or demos in short presentations to their peers.

 

Civitas
image via civitas

For a company like Civitas, whose goal is to help higher education students succeed, finding the right tools for the job is key. Pierre Padovani, chief architect at the education analytics company, explained how the engineering team works together to try new products and find the best fit for school success.

 

What are the three most important products in your tech stack, and what do they help you do?

There are a number of products in our tech stack that all play an important role, and they work together to provide our end-to-end analytics pipeline and application stack. Products like Spring Boot 2, Amazon Web Services’ Redshift, Elasticsearch, Node.js and React are examples of products we currently use. These products allow us to streamline or quickly develop new microservices that engineers across the company can comprehend. They also help us perform our analytical computations and create ad hoc searches of structured data for our application stacks.

 

How do you go about incorporating new products into your tech stack?

There is a constant flux of new products appearing in the wild these days, and there is risk in adopting them into your tech stack before maturity or value is fully understood. So, what about that one new product that may be a diamond in the rough? Assuming a product meets a specific engineering or business need and is considered mature enough, we build a time-boxed proof of concept. If a product is chosen, it will be incorporated methodically into the current Civitas Learning stack by a small team to learn usage and behavioral characteristics in production. The product is then evangelized to the remainder of the Civitas Learning engineering team for full adoption.

 

How do you get engineers up to speed with new tools?

Change management around the introduction of tooling or products can vary by both complexity and the knowledge base of the engineers adopting the new technology. Given a general tool that is applicable across engineering teams, the adoption rate can be greatly influenced by providing a clear and concise business and engineering value.

Training is done either with experts on site, or with a lunch-and-learn to leverage internal expertise. Simple tools, on the other hand, can just have wiki-style documentation available for the engineers to reference.

 

Runtitle
image via runtitle

As the largest mineral ownership database in the world, Runtitle ensures its engineering team takes a thoughtful approach to its tech stack. Engineer Phil Rhinehart explained how product stability and employee training are key factors in maintaining a healthy equilibrium.

 

What are the three most important products in your tech stack, and what do they help you do?

Our entire stack is built on Kubernetes. It provides us with the building blocks to quickly and securely deploy new applications, and it allows us to focus on solving problems for the business. We use Kafka to drive our applications and data pipelines. It gives us a standardized way to move data throughout our systems in a reliable manner. Most of our applications are written in Python, which allows us to move quickly and write code that is easy for new engineers to understand. Python’s huge ecosystem of open source projects is a force multiplier and keeps us from constantly reinventing the wheel.

 

How did you go about building the tech stack for your company?

Before incorporating any new tech into our stack, we try to answer several questions to guide our decisions: Is the technology a significant improvement over what we can do without it? What are the alternatives?

We look for stability and maturity in the technology, along with thorough documentation and active development. We also consider who else is using the technology and at what scale. We have tried to optimize our stack for development speed and engineer happiness. If a technology is going to slow us down or make our lives harder, we’ll try to avoid using it.

 

How do you get engineers up to speed with new tools?

We try to give new engineers smaller, well-defined, projects that provide exposure to different parts of our systems and allow them to be productive while learning our tooling and infrastructure.

Responses have been edited for length and clarity.

Hiring Now
John Deere
Artificial Intelligence • Cloud • Internet of Things • Machine Learning • Analytics • Industrial