Chicago’s title might be locked in as “the Second City,” but what it offers its residents and visitors alike is nothing if not first place. A culinary capital; a cultural melting pot; an established hub of diverse industries and technical innovation. So why shouldn’t an engineering team’s tech stack in the Windy City reflect the same?
For engineers at nine of Chicago’s growing companies, the opportunity to access and combine different technical applications allows them to pursue new horizons and build crucial products for the clients they serve. Tackling these challenges from an innovative perspective also encourages team members to come together and let their unique capabilities shine – even while working remotely.
Ari Roth, lead software developer at CSC Corptax, attributes their particular success to the depth of their tooling.
“In most places I worked, ‘dev tools’ meant ‘a bunch of undocumented commands to run on the command-line that were passed down from engineer to engineer,’” Roth said. “Here, our DevOps team puts together scripts, processes, and even a Visual Studio extension to make common tasks easily executable and repeatable.”
However, even the most intricate and capable technology can only take you so far.
At Sprout Social, practicing inclusivity and welcoming team members of every level to be active participants in architectural conversations has led to a sense of collective ownership, Software Engineer Madelyn Nelson said. And according to Software Engineer Alex Barber at XSELL Technologies, fostering a culture of constant learning has encouraged subject experts to train fellow team members so that everyone can mutually benefit.
Built In Chicago recently checked in with Roth, Nelson, Barber, and six other leaders across the city to learn more about the technology their teams are embracing to tackle the projects that drive their creativity.
CardX is a provider of zero-fee debit and credit card transactions for retailers.
Their tech stack: “Our technology approach is not just focused on the latest tools, but rather on those that solve a business problem or improve the developer experience,” De Guzman said. “Some of the key technologies we use are Vue.js, Node.js, Datadog, Sentry, and LogRocket. LogRocket, for example, is a session recording and playback platform integrated into our products. If a merchant is having an issue or has a question, our client support team can use LogRocket to watch their CardX Portal session and recommend specific actions.”
“CardX Portal is wholly serverless residing within AWS. Though our infrastructure is primarily driven by Lambda functions running Node.js, we also make use of Simple Queue Service, DynamoDB, MySQL Aurora, and a number of other services.”
Simplifying the process: “CardX Portal always leads the pack. All our products are either part of, contributing to, or expanding the range of use cases CardX Portal can meet. It is the merchant’s one-stop solution for everything from running transactions all the way through line-by-line deposit reconciliation. Finance has many layers, and CardX Portal seamlessly integrates these layers into a single product and presents information to merchants in a way that is easy to understand.”
Growing together: “The engineering team’s dynamics at CardX are the best I have ever seen in my career. This is a team that is open to new ideas and is constantly learning and growing. We take pride in the fact that every engineer can make a big difference in the codebase, no matter how long they have been at the company.”
“Development is not perfect, and each individual sprint will have its own unique challenges, but I have consistently seen this team carry each other through it all. If an issue arises, we do not look to assign blame, but instead work together to identify the problem and fix it.”
Affinitiv is a marketing technology and social media company that focuses solely on the automotive customer lifecycle.
Their tech stack: “Most of our team members are full-stack developers who enjoy staying on track with the fast-moving world of software development,” Orozco said. “Our company is very flexible, giving us the freedom to research and use new tools and technology if we feel like it will add value to our projects. I have always enjoyed using Microsoft Visual Studio and C# to build code, GitHub for version control, Jira for planning, and Confluence for collaboration.”
Developing skill sets: “I enjoy working with some of the largest and most successful automotive companies in the world. I find integrating with their external APIs extremely interesting. Right now I’m working on a feature that integrates ride-share services with our scheduling applications. Being exposed to so many implementations has helped me mature as a developer, to feel more comfortable talking to external teams, improve error handling in my code and create more unit tests.”
Embracing diversity: “Affinitiv has, by far, the most diversified group of engineers I have worked with. A big number of our team members are from different countries, which implies talent from all over the world. People are collaborative and friendly and, as an agile team, we foster communication and encourage one another’s success.”
Silverwork uses technologies such as software robotics and machine learning to create intelligent automation built for the mortgage industry.
Their tech stack: “We’ve recently upgraded our entire tech stack onto the .NET architecture, and it’s done wonders for our ability to integrate projects cleanly and efficiently,” McClellan said. “The full feature set of Visual Studio keeps context switching to a minimum, and C# gets continuous quality-of-life improvements that keep the language fully modern.
“Outside of development, Postman is a must-have tool in my opinion. Being able to quickly test APIs gives us the necessary feedback we need to confidently move forward with development. Finally, even with Entity Framework in our apps, I like to do some good old-fashioned queries in Microsoft SQL Server Studio.”
Analyzing from every angle: “We are working on consolidating our codebase and making our product more scalable. Questions we ask ourselves: On the business side, which features should we add to our base product set based on client feedback, and which should we keep customized? On the software engineering side, how do we accommodate more features without proportionally increasing complexity? I get to see both sides of this process, and it provides a holistic experience of participating in the conception of an idea into a deployed solution.”
Contributing to a greater goal: “Some engineering teams I have worked with in the past have fostered what I can best describe as a ‘bro’ culture that is heavily competition-based and values one-upmanship. It can lead to a very cliquey group with minimal diversity. However, that’s not the case with Silverwork. The members of our development team all have unique interests and experiences that contribute to a great sense of individualism. At the same time, our primary value has always been cooperation in achieving common goals. It’s great to work with a variety of personalities who are all willing to set aside their ego and come up with the best solutions to satisfy all parties.”
Braviant Holdings uses advanced analytics and big data to solve difficult lending decisions.
Their tech stack: “We’ve upgraded this year from Java 8 to Java 11 for the backend services on Spring Boot 2.3 with plans to stay up to date with Java’s long term supported versions,” Ritchie said. “Currently we’re running with an Angular 9 UI and a PostgreSQL 12 database all deployed out to a 100 cloud-native environment in AWS. One of our favorite tools is IntelliJ – the built-in code completion and analysis tools even without any plugins are great! I’ve also had fun building a few bash scripts to help manage our microservices. When you get to have so many, it’s awesome to get to build tools yourself to help manage keeping your local machine up to date.”
Increasing capabilities: “Writing our own dynamic offer engine that will calculate out the best offer for a customer has some cool optimization considerations since finding the exact APR can involve multiple calculations. So on one hand, it’s a fun problem from a pure software engineering perspective. But it’s also going to let our business be more flexible on what offers we can provide, which will allow us to better serve our customer base.”
Witnessing real-time impact: “I think one of the things that really stands out to me is the sense of ownership we try to foster here at Braviant. We’re a small team so every day is impactful to both the project completion and creating and maintaining the application. All our team members are heavily involved in both new feature development as well as checking out issues in the live production environment. It’s one of those places where it’s easy to see how the projects you’re working on help the business.”
CSC Corptax provides customers with technology-based tax solutions including data and entity management, tax planning and tax compliance services.
Their tech stack: “Our current tech stack is SQL Server, ASP.NET (C#), Angular, with a move toward Azure,” Roth said. “While our server is web-based, we have both a stand-alone client and a web client. This is a pretty standard tech stack for a .NET shop, but one of our big strengths is how we stay up to date on those technologies. Recently, we’ve been migrating from .NET Core 3 to .NET 5, so we’re making sure we stay ahead of all of it. This keeps us relevant in the field and on top of changes to the various technologies.”
“In most places I worked, ‘dev tools’ meant ‘a bunch of undocumented commands to run on the command-line that were passed down from engineer to engineer.’ Here, our DevOps team puts together scripts, processes, and even a Visual Studio extension to make common tasks easily executable and repeatable. We’re constantly looking for ways to automate tedious, common dev tasks.”
Welcoming new perspectives: “I’m still relatively new at CSC Corptax, but I’ve had the chance to look into system-wide changes with a fresh set of eyes. I was recently assigned a research project to learn how to integrate both Hashicorp Vault and Azure Vault secrets into an Azure build pipeline. Not only did I learn how both systems worked, but I also got to write a pair of proof-of-concept apps and integrate them into the build process. It was a great opportunity to learn, code and present my findings – and it was a lot of fun.”
Quality over quickness: “We’re encouraged to do things right. I’ve been at companies through the years that focused on getting something done fast, regardless of how. There’s a time and place for that, but here the attitude is generally, ‘Do it right, and whenever there’s a better way, use it.’ In my five months here we’ve had two releases, so that gives us time – we’re not in a huge rush. A company with a ‘do it right’ attitude is a great environment for any developer, whether they’re junior and want to gain experience or senior and want to write good code.”
“Even though I’ve never physically met any of my coworkers yet, we all use Microsoft Teams and I don’t feel like I’ve missed anything by not being in the office. People are responsive during the day, and no one hesitates to get on a voice call and share their screen as we work on a task. In fact, I’ve been able to do pair programming with coworkers as well as, or better than, if we were sitting right next to each other at a single screen.”
XSELL Technologies helps organizations deliver personalized digital experiences to their customers to increase sales and conversion rates.
Their tech stack: “XSELL entered the market as a Rails shop,” Barber said. “As our product has evolved to address new market problems, we’ve evaluated all parts of our architecture. The nature of our product makes it a natural fit for an event-driven architecture, which we’ve started to implement using Kafka and microservices in Java and Spring. Data science is also a fundamental part of what we do at XSELL, and our data scientists build their services using Python.”
“Recently, we have been using React with Next while redesigning our frontend, and we are really excited about Next. The developer experience is great and it’s been a joy to work with.”
Continuously evolving: “We are currently in the process of redesigning one of our flagship applications. It’s rewarding to take what we’ve learned over the years with the previous iteration of the application and put that into practice in the redesign. We have also been working closely with our super talented designers, and it’s been a fun challenge to try and realize our shared vision.”
Fueled by passion: “Our users are customer service agents, and they use our applications in a professional capacity. Our team is passionate about engineering, and part of that passion is an appreciation for all of the incredible tools we use to help us do our job better as software engineers. So we don’t take for granted that the software we build helps other professionals succeed in their own field – we put the passion we have for the tools we use right back into building our software. It also allows us to consider some interesting questions: how does it feel to sit with our app for a long workday? Can both a novice and an expert benefit from using our app? As a team, we really enjoy working together to try and solve problems like these.”
“We have access to a lot of learning material like books and courses. If someone on the team is an expert in a certain subject, they make a real effort to train up others on the team. I am continuing to learn a lot at XSELL, and that’s one of the best parts of the job.”
Sprout Social’s platform is designed to help brands optimize their social media strategy.
Their tech stack: “Sprout’s platform tech stack includes Java and Python, backed by various managed AWS services,” Nelson said. “My favorite tech tool that we use is Amazon EMR. When paired with Apache Spark, Amazon EMR is an incredibly powerful and efficient way to process large amounts of data, which is a common occurrence for our engineering team.”
Designing innovation: “For the past several months, I’ve been supporting the release of the Instagram ‘Link In Bio’ feature. My role was to lead the development of the ‘metrics’ feature, in which we aggregate view and click analytics to help our customers gain insight into their SproutLink page effectiveness. I really enjoyed the challenge of architecting a robust, scalable, and efficient system for metrics using big data technologies like Amazon EMR, while also providing real value to our customers.”
An inclusive support system: “One thing that stands out is how supportive and welcoming Team Sprout is. We celebrate our wins as a team, regularly give kudos to one another, and take collective ownership of our growth areas without assigning blame. Engineers of all experience levels are encouraged to participate in architecture discussions, which is a very impactful technical and leadership development opportunity for junior and mid-level engineers.”
Jellyvision creates solutions for enhancing employee communication and program participation.
Their tech stack: “My team typically uses React and Typescript for the frontend, and Koa and GraphQL for the backend,” Gapar said. “We use a myriad of tools like VSCode, Slack and BrowserStack, some of which are integrated into our CI/CD pipeline. There are so many integration capabilities that you can leverage to make development and deployments faster. I think it’s super neat that you can write code, validate it, commit it, and trigger a deployment all within your code editor! Then, you can get status updates about the automated tests, deployments and alerts in one chat platform, and create communication threads for each one. These specific tools have been integrated into our day-to-day workflow and enable us to communicate seamlessly. Ultimately, the tools should be chosen so that they are used effectively and serve the needs of the team.”
Assessing every possibility: “I’m constantly thinking about how we can improve our content delivery pipeline so that we can do more deployments. It’s interesting because there are so many ways to achieve this. We could add linting and validation tools to speed up the development workflow, or we could structure our content data model to be more modular, or we could even replace our entire platform with an alternative that offers different development features. I enjoy thinking about the moonshot, which in this case is what the ideal development workflow looks like, and then work backward from there. This opens up more possibilities for improvements to our architecture and day-to-day development.”
Guaranteed team support: “We reserve one-hour blocks on everyone’s calendar from Tuesday through Thursday. We all have the ability to update this meeting so if someone needs to gather the team to discuss something, there’s already an allocated time for it. The reserved blocks are right after the daily team stand-ups and can also be repurposed to code reviews. This process has been working well for us because it frees up our afternoons from team meetings and allows folks to work without interruptions. Since we all work remotely, it has helped combat Zoom fatigue as well.”
Relativity is a compliance and legal tech company creating software solutions to manage legal data and pinpoint issues.
Their tech stack: “I work on the file-PaaS asset and storage (FAST) team,” Enuga said. “For the majority of our time, our team works in Azure. Azure is ever improving, releasing new features and products that aid in problem solving. Some of my top picks from Azure Serverless architecture are Azure Data Lake Storage and Azure NetApp Files. Bazel is an open-source build and test tool that supports caching for multiple repositories and users.”
Saving room for innovation: “Relativity requires file storage space for the data it produces and processes. The purpose of our team is to deliver an interface by which it can provision and configure storage space. Our team manages this storage space on behalf of Relativity, delivering availability, durability, integrity and performance while ensuring the application is scalable. This is one of the most innovative and exciting projects that is currently active and helps us improve the user experience.”
“I recently helped design and work on stock keeping unit (SKU) implementation. We need to support various instances of Azure Resources based on their configurations for infrastructure. SKU is a package of configurations with compute size, storage and other features based on usage. These predefined SKUs help maintain and track the costs associated with the Azure instances. Essentially, by implementing and standardizing SKUs, we can optimize the costs and only use higher performant SKUs when necessary, making our product cost-effective.”
“We are always trying to research and up our game to improve the performance, user experience and availability of our product.”
Full-service development: “The most unique thing about our team is that you get to design, develop and support the piece that you are interested in, and you’ll get end-to-end experience. As a developer you get to pick up a feature, research on the design, weigh in on the pros and cons and eventually develop, test, deliver and support the feature as well.”
“Our team members are always trying to challenge and help you move in the right direction both professionally and personally, which is a great opportunity for collective development. Every team member is given equal importance and all opinions are welcomed, which is not always something you see in other organizations.”