Performance engineering is a discipline where one has to deal with many technological challenges. You need to extract data from web services, queueing systems, etc., construct new responses. Sometimes one has to create some scripts and run them against the application to trigger some events. One day, you might have to deal with java application, one day it might be a .Net application. You have to be prepared to extract data from an xml file or a json file.
While manual testing deals with the UI or business layer of an application, performance testing deals with low-level issues. The common challenge in a performance testing is inefficient non-functional requirements. KPIs are hard to analyze.
You need to understand how to monitor your application on the application or database layer. All those challenges are going to build up a gigantic monster that performance engineer has to fight. I'll talk about what a performance engineer will face during a project and some tips to overcome them.