Tradeshift Engineering Intro Part 2 — Platform and Team Structure
This is part two of the Tradeshift Engineering Intro Series. In our previous post I described our mission and the high-level technical approach we’ve chosen. This post describes the types of engineering work done at Tradeshift.
The boundaries are often blurry, but the work that we do involves both building out the Tradeshift core platform services, enabling application building, and building end-user applications to enable certain key use cases for our customers.
There are four different types of teams that accomplish this. The first three can be thought of different layers of our stack, and the last bullet point are teams that work across multiple layers and are force multipliers:
- Core Platform Services
- App Development Platform Services
- Enterprise Product Teams
- Supporting Teams
Core Platform Services
These are core services to run the network, and some primitives on top of which we will build other services. Getting the core primitives right, reliability, and building for scale are especially important.
Some of these services include:
- Tradeshift Company Graph and business network management
- Underlying security model, user management and authorization
- Data processing pipelines
- Multi-tenancy and tenant isolation management
- Support for multiple data centers
- Rule-based routing infrastructure for sending business documents between companies (a.k.a. “business firewall”)
The layers described below build on top of these services. The separation is not very strict, and if application teams need enhancement in the core platform services, they can contribute to the code bases directly, or work with the teams to get the enhancements they need.
App Development Platform Services
This is the set of services targeted at application developers, including application development and runtime tooling. In addition to the tooling, we also have a number of services that allow integrating into our platform user experience easily. Our PaaS was built to accommodate third-party applications but we also use the exact same infrastructure in our own product development. For more information, please see our developers site; there is also some information at the marketing site.
Some of the application development services are:
- Application Development Framework
- Application Runtime for the Apps running on the platform
- App Store and App Deployment Tools
- UI Component Framework for consistent look and feel throughout the platform
- Task Service for assigning Tasks to users
- Document Display Service to allow viewing documents such as invoices, purchase orders, bills, contracts, etc.
- Collaboration Service to enable efficient communication both between people in the same company and between different companies.
- Notification Service for notifying users about things happening in the platform
- Business Analytics for collecting and displaying insights about the business done on the platform.
- I18N and Translation Services
These services make it easy for both Tradeshift and third party developers to plug into the platform, including functionality, user experience and look and feel. Some of these allow us to deliver applications much much faster, since a lot of the building blocks are provided by the platform.
Enterprise Product Teams
Then we have product teams, which are organized into programs. Each program can consist of multiple applications teams that over time build expertise in their domain. Because these applications are used by some of the largest companies in the world, they need to be very flexible. The teams here focus on solving the business problems, working with product managers and designers to build great user experiences, consuming core services, and building out program-specific services.
We’ll have separate posts about these areas, but at a high level, the three main programs are:
- Tradeshift Pay is our accounts payable and invoicing solution, including CloudScan. It helps companies manage their invoices, including from smaller suppliers, using a uniform process.
- Tradeshift Buy is our eProcurement program, which helps companies understand and manage their spending. It consists of Product Engine, a global repository for products and services, and ability to shop for those.
- Tradeshift Risk is our solution for managing supplier master list and helping companies manage regulatory and other requirements their suppliers need to conform to.
In addition to the three main focus areas above, we also have a number of supporting teams that work with all three areas above. These are:
- Devops team helps manage our systems and deploy and run our applications and is a force multiplier for our engineering teams
- Security team makes sure we follow good security practices across the stack, and that our processes allow us to keep our customer data secure
- Site reliability is a team that’s still being built. We introduced to make sure we have people focusing on site reliability as we rapidly scale.
- Machine learning team works on cutting edge projects to help product team solve problems that are difficult to solve using normal mechanisms. They work on some very cool capabilities like form detection and product classification.
- Customer Engineering — is nominally part of delivery team, but we work very closely with them. They are focused on deploying and integrating our solutions with our customers.
I hope this explained what types of work we are doing. Our teams span from core backend services to heavy product development, so there is interesting work for different engineering interests.
In the next post, I’ll dive into our technology stack and tools we use.
Thanks to Tom Stapleton and Nate Lee for feedback on drafts of this post.