We live in a time of increasingly rapid change, and few professions feel that acceleration like software engineers. Languages, libraries and techniques they used just a year ago may be hopelessly out of date by now, while problems previously unknown rear their heads just as old demons are finally laid to rest. To get a sense of just how quickly the technology industry evolves nowadays, we spoke with engineering leaders at six Seattle-based tech companies about what their tech stack looks like today, and how it has evolved to leverage new opportunities.
Big names — we’re talking the likes of Cisco, Spotify and Verizon — use Skilljar’s technology to create customer training programs. Enterprises use Skilljar to train new customers in the use of their technology, boosting the actual usage of their products and thereby improving client retention.
CTO and Co-Founder Jason Stewart highlighted opportunities for his engineers to work on a growing platform during a larger evolution in the SaaS landscape.
How has your technology evolved since the early days of the business?
We started Skilljar as a Python/Django application running on Heroku, backed by a PostgreSQL database. As we’ve grown, the scaling needs of our application have changed. While a good portion of our application is still written in Python/Django and hosted through Heroku, the application infrastructure itself is shifting from a transactional, database-driven application to a near real-time stream of events. Last year we began utilizing the Apache Kafka platform to stream changes in our database (a design pattern known as change data capture) to multiple consumers. What used to exist as a large, slow batch process that would update every hour or once per day can now be updated incrementally in near real-time by listening to changes in the data stream.
Broadly, there’s been a fundamental shift in how large-scale SaaS applications are architected. Rather than an application or set of microservices sitting atop one or more databases, systems can now be built on a robust messaging backbone of events. It’s an exciting opportunity for engineers at Skilljar to be building a modern, scalable application during this paradigm shift in the industry.
I like having engineers working on functional features specific to Skilljar...”
How do you choose what tech to use to complete a project?
There are a number of factors we consider when choosing a technology. Working backward from what we want to create, we look at what building blocks already exist against what we need to develop as an engineering team. I like having engineers working on functional features specific to Skilljar rather than building, say, another message queue or a slightly different type of database.
When evaluating new technology, I look for its maturity; its support in the community; how long it has been used in production environments; and what programming language is required to utilize it. Skilljar uses Python whenever possible because it’s easy to learn, most of our existing application is written in Python and there’s a vast library of Python frameworks, libraries and components available for constructing distributed web applications like Skilljar.
VIZIO is one of the world’s leading soundbar and high definition television brands in the United States. With its headquarters in Irvine, California, VIZIO’s Seattle engineers — based in Lower Queen Anne — work on the company’s SmartCast platform, which uses a cutting edge combination of voice, casting and mobile technology.
Director of Software Engineering Leif Norcott has been paying close attention to the IoT explosion, and how his team can leverage that technology in their own products and services.
How has your technology evolved since the early days of the business?
When I joined VIZIO three years ago, we had just begun the process of modularizing our mobile applications to account for the diverse network topology for features that existed, and those on the horizon. We knew modularity would give us the ability to pivot correctly and build upon those foundations. The need for this has grown with the expansion of IoT initiatives such as Digital Twin. We have been able to gain major coverage in unit and integration testing and feel more confident in what we are delivering.
The vast evolution of mobile in Android and iOS has opened many options for our teams.”
How do you choose what tech to use to complete a project?
The vast evolution of mobile in Android and iOS has opened many options for our teams. Adding to that is the explosive growth of the IoT space. It has become more important to understand and consider new features coming from all angles. While we use many of the latest choices, such as Kotlin and Coroutines, we are also strategic about when and how we integrate these new choices. Examples of this are found with GraphQL and Swagger schema definitions, and how they can be reused for our tooling.
DomainTools monitors key indicators across networks, including IPs and domains, and connects them with every active domain on the entire internet. It then uses those connections to profile attackers, assist fraud investigations, inform risk assessments and map criminal activity back to its original infrastructure.
It’s crazy stuff, and as VP of Engineering Gunawan Herri explains, the company’s shift to serverless computing is opening up new realms of possibility.
How has your technology evolved since the early days of the business?
The technology at DomainTools has changed a lot over the course of more than 15 years. We’re designing and building software solutions with a cloud-native approach in mind, relying on solutions like Docker and Kubernetes to run and deploy microservices. In the past, we’d need to consider physical specifications when configuring and purchasing servers. Today, utilizing serverless computing allows us to significantly cut down on that overhead and instead focus our efforts on creating business value. In addition, our next generation platform is designed to be near real-time and takes advantage of streaming-based concepts as opposed to traditional batch-oriented processing.
DomainTools is always looking for ways to contribute back to the open source community whenever possible.”
How do you choose what tech to use to complete a project?
Some of the factors that are considered include whether the technology addresses the business need; whether it aligns to our established best practices; the overall cost for implementation and productionization maintainability going forward; and the maturity of the technology. Once those factors have been evaluated and the technology organization is in alignment, we will begin the process of integration. Lastly, DomainTools is always looking for ways to contribute back to the open source community whenever possible.
Ever book a flight only to check back weeks later to find that the price has dropped since you handed over your cash? The founders at Yapta have, and the experience made them mad enough to do something about it. The company’s technology monitors airfares and sends a notification if the price drops after a purchase has been made, along with instructions on how to get the money back and rebook at the lower price.
CTO Brandon Evans likes to give his engineers the freedom to explore new technologies on certain projects.
How has your technology evolved since the early days of the business?
Yapta’s current stack is a mix and match of Python and Java. Yapta’s original codebase was developed in 2012 in Python as a fairly large monolithic application servicing both our FareIQ and RoomIQ products. By 2015, the existing codebase experienced those problems you would expect with a growing monolith, and we started refactoring our supplier code into web services using Java. The refactor and extension of the codebase into Java based services reduced our complexity and allowed Yapta to better integrate with our vendors, which not only sped up development in those areas, but also reduced our blast radius of unintentional escaped defects. This was also our first venue into defining our infrastructure as code through both Amazon Linux and Ansible, taking advantage of AWS to consolidate and manage our services.
In early 2018, Yapta invested in two major architectural areas. First was a transition from AWS Linux and Ansible to a platform we built on top of Amazon’s Elastic Kubernetes Services. This allowed us to further reduce operational overhead, while more efficiently managing the deployment and operation of our containerized services. Second was a shift from our current data management technologies to a data platform using AWS Kinesis, AWS Elastic Map Reduce and Spark to load and transform data into and within a Snowflake data warehouse. Both of these investments have helped Yapta pave the way in its rapid growth in the industry.
While there are some guidelines in the technology we use for projects, we try not to be prescriptive while defining projects.”
How do you choose what tech to use to complete a project?
While there are some guidelines in the technology we use for projects, we try not to be prescriptive while defining projects. Projects that simply add value to our existing products are usually done in the technologies they were developed in, with the exception of our intentional pragmatic refactoring to break down our legacy monolith. Other projects are fairly open-ended, with the freedom to prototype and explore new technologies. A recent example is in the redesign of our customer dashboards, which were originally developed in Django. We have so far played around with a few options, ranging from using RESTful Web Services serving a front-end built in Angular or React, to building GraphQL services as part of a React or Vue stack. Once we have the prototypes done, we weigh the pros and cons from our learnings and pick a direction.
Denver-based Adswerve arrived in the Emerald City last year by acquiring local startup Analytics Pros, creating a unified team of media and analytics experts. By combining the two teams, the company says it is both a leading Google Marketing, Analytics 360 and Cloud partner, making it one of the few players able to provide services across the full Google Marketing Platform suite.
Senior Data Scientist Luka Cempre highlighted the sheer amounts of data his team is now able to process, and the opportunities therein.
How has your technology evolved since the early days of the business?
In my five years with Adswerve — formerly Analytics Pros — we have gone from rigid, locally run to more Agile, cloud-based solutions. With the development of technology in general, we’ve also started to collect and process far larger amounts of data and process it a lot quicker. Today we’re often talking about collecting and processing terabytes and sometimes even petabytes of data, which just a few years ago would have been hard to comprehend. Despite everything moving quickly and being bigger, the processes and technology around it have made it possible to have much better control over the development and deployment of our solutions.
We like to have our clients involved and hand them a product they can understand and maintain...”
How do you choose what tech to use to complete a project?
Adswerve is a team of more than 160 industry leaders who use data discovery to help our clients create insightful marketing strategies. With this data-first approach, we choose tech based on what type of a process or application we’re developing, what our clients are most comfortable in and how the final product will be used.
When identifying the process we will usually look at whether it’s a one-time or an ongoing process and dive deeper into an architecture that will be needed to complete it. We like to have our clients involved and hand them a product they can understand and maintain, so we’ll try to get as close to their “language” as possible. Finally, we pick tech based on how the final product will be used — will it be something that requires a website and a UI, a notebook for a data scientist or maybe a background application that requires little to no input from the user?
If you’re an organization interested in a more quirky and relevant domain name than “yourname.com,” Bellevue-based Donuts is your one-stop shop. The company’s range of individualized domain names help businesses stand out from the crowd and engage audiences in new ways, while protecting brands’ trademarks and prevent so-called “cybersquatting.”
VP of Engineering Ben Levac outlined the new technologies his team is currently watching.
How has your technology evolved since the early days of the business?
Our current platform is built primarily using .NET web applications and Windows services, and leverages SQL Server as a data store.
We are currently in the process of migrating our systems to use .NET Core, so that they can be operated on Linux. We are also packaging these applications using Docker containers so that we can more easily run them in cloud environments. We are looking at adding PostgreSQL as a datastore.
We like to look at technology in an objective way.”
How do you choose what tech to use to complete a project?
We like to look at technology in an objective way. We want to pick the platforms that will help us get the job done on time, on budget and that will be reliable in the long run. We don’t shy away from new technology, but like to make sure we pick the right one before we hit the ground.