Underlying competencies of a software performance engineer

More than technical

A performance engineer has a multi-disciplined skillset.  They start out as a strong technician in a programming language (C++, Java, C#, etc.), they expand with deep operating system knowledge, then add a database or two (focusing on the physical aspect), and continue to grow.  In addition to the technical skillsets, they grow non-technical skills.  Communications skills, how do describe the problem, the impact, the solution.  One of the key skills the software performance engineering possesses is the ability to learn new skills!!  They are self-motivated in pursuing new areas of expertise and trying to stay ahead of the technology curve. I think they need to be very pragmatic in their approach.

As a performance engineer you must develop outstanding problem-solving skills and how think more analytically.  In years past I may have been very good at problem creating.  The systems you work with are very complex with many different subsystems; mobile device, web services, queues, databases, versions of Java, etc.  There are typically different teams of people for each subsystem that require strong interpersonal skill and the ability to have influence on people who don’t work in your group.  Another skill you need to develop and may not want to admit is project management. I know I have grown to greatly appreciate a solid project manager.  But, myself and other Performance engineers can, in a pinch, take on the limited PM role, just enough to be dangerous.

You develop a strong understanding of the business functions and business problems. Often times, the performance issue crosses several business functions. For instance, marketing, sales, business analytics, billing and invoicing, the call center.  Over time the Performance engineer gets a broad picture of the business.

Understanding the business leads to better workload models for capacity planning and performance testing. You understand the key business transactions and how the customers are using them. This can require forecasting skills, how do you predict the increase in user transactions and how does it translate to system utilization. You must have a solid understanding of statistics as well and know why the average is useless.

The amount of work, experiences and time that is required to become a Sr. Performance Engineer cannot be underestimated.  It must also be recognized by the companies that hire, grow and manage software performance engineers. I think this makes a good case to recognize the profession of Software Performance Engineering.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: