• Chapter 1.0: The Web Engineering Specification

The Role of the Application Engineer

An application engineer is a computing professional experienced in all walks of a modern Web infrastructure. An application engineer is in the business of supporting customer-facing, high-volume production Web sites, and the back-end architecture of including networked systems, load balancers, software engineering principles and architecture, and the Web. They have at one point or another, been an expert in the majority of such fields, through interviewing and consulting with experts in these fields that they may better understand the entirety of the Web stack.

The reason an application engineer needs a wealth of information and understanding about these various systems is that the days of single-function engineers or operators in the Web space are quickly becoming a thing of the past. The modern application engineer must understand data grids, relational database systems, code architecture, the release process, and the network glue that binds all of it together.

The application engineer has lives two professional lives, one as a systems administrator, and one as a software engineer. The application engineer can work as solely a software engineer, or as a system administrator, respectively, but the ones that qualify as a true application engineer can work at either capacity at an expert level.

The key separator of their understanding of the application stack that supports modern Web sites, is that they understand how all of the pieces fit together, and can work at an expert level anywhere in that stack; due to a diligence in staying up to date and practicing new technical concepts on a frequent basis.

Defining Web Engineering

With production applications, often times there is too great a knowledge gap between a traditional System Administrator and a Software Developer, and Release Engineer. There needs to be someone who has sat in both seats who can respond quickly to complex problems that affect multiple tiers of the technology stack, and have the wealth of knowledge of all tiers to sufficiently design and program solutions to automate and manage processes that cut across all tiers of the Web stack.

For example, during a code deployment, the wrong version of a package of CSS files is deployed to a customer-facing, production Web site. Suddenly, the site is in visual disarray and the business owners, shareholders, and clients are up in arms. This kind of situation and situations similar to it would happen more than some companies might like to admit, and Fortune 500 companies are not unique to these types of scenarios.

In a critical situation such as this, it may take a few phone calls, emails, and even a project manager to organize a war room for the problem to even be identified, let alone resolved as a collaborative effort between the System Administrator and the Software Developer. 

Conversely, an application engineer is well versed in front-end software such as CSS, JavaScript, and HTML, and furthermore understands how that is distributed and cached locally globally by a Content Distribution Network, for example. An application engineer will understand the release process well enough that they will be able to resolve the issue by re-deploying the proper package of CSS code, or as a last ditch effort modifying the CSS live on the production site (which you would never do, of course), that they can resolve issues in a fraction of the time than a traditional collaborative operations and development team. 

Furthermore, the application engineer will take it upon themselves to architect a new solution or build additional validation into the deployment process. They will work with the software development and release engineering team to prevent such an error from occurring again.

Perhaps a solution already exists to manage consistency of code deployments, many do. In the case presented, that system failed. If there is a configuration management or build deployment system that already takes care of this, then the application engineer will make sure that it is working properly, and thoroughly test that solution’s validation facilities once the emergency issue is triaged.

The difference is while the System Administrators are managing the infrastructure and monitoring the Web site, and the Software Developers are creating new products and services, and maintaining existing code, the application engineer is making sure that there is a translation between these groups, and building solutions to optimize the efficiency of both teams.


Go on to Chapter 1.1


[1] http://en.wikipedia.org/wiki/Moore’s_law#cite_note-0

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • E-mail this story to a friend!
  • FriendFeed
  • HackerNews
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Technorati
  • Twitter
  • FSDaily
  • Ping.fm

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Leave a Reply

You must be logged in to post a comment.