March 23, 2019 · Exploration

What Is Client Platform Engineering?

Definition

One of the trending job titles in Big Tech I've noticed (and you may have too) is "Client Platform Engineer" as part of an "Endpoint Engineering" or "Client Engineering" team. But what does this position do?

In short: a Client Platform Engineer builds, tests, and deploys solutions to manage a fleet of "clients", or endpoints, at scale.

The Client Platform Engineers at companies like Facebook use tools like Chef, which were originally conceived as server/infrastructure configuration management tools, and put them to use to help solve another difficult engineering challenge:

As computing at large companies continues to grow and scale, how can we manage, and (more importantly) secure, the hundreds or thousands of endpoint devices?

What's Driving This Trend?

Many software products that helped IT administrators manage and secure endpoints have not scaled to meet the needs of these larger organizations over the last 3-5 years. Products like SCCM and PDQ Deploy, while robust, were primarily designed with on-premises endpoints in mind – desktop computers which never leave the corporate network.

Writing code, rather than using a pre-compiled vendor-provided solution, to configure endpoints at scale can help an organization ensure that company devices have a consistent baseline of software, policies, and security measures in place. But perhaps most importantly to technology-focused organizations, this code can be iterated on in an Agile development cycle and stored in version control, just like the software development process in other parts of the organization.

Ultimately, a Client Engineering team's role should be to find the best solution – whether that be an MDM, or writing code for a configuration management tool like Chef or Puppet, or both – and design and implement it to help the company maximize the overall productivity of its workforce.