It is a story about a performance engineer team: most is genuine, and some is made-up.
Server performance related work requires a broad knowledge and experience: software, hardware, Operating System kernel, and so on. The team members’ background is also a rich variety: embedded system developer, PCB designer, QA, DevOps, compiler researcher, etc.
The team’s daily work is like this:
(1) Since company’s main products are servers, run SPEC benchmark programs and cooperate with other team to get the best result is the most important task. Since only your servers exceed other competitors, the customers are willing to pay money for them.
(2) It is no controversial that
Linux has dominated the server market, so being proficient in
Linux profiling and tracing tools (from
BPF) is a compulsory class. Meanwhile, the company also has its own proprietary
Unix which is still serving some critical business: bank, telecommunication, etc. The members also need to use some esoteric tools to help diagnosing issues on this proprietary
Unix. At the same time, coding is another important task: develop company’s own profiling tools, and contribute to
(3) Support customers and other teams. E.g., one customer wants to know the
Oracle‘s performance on some server models; the other finds that
Docker doesn’t run as expected. Another colleague comes to your desk: “When you are free, could you help to check how to optimize this program? Boss isn’t satisfied with it”.
(4) The team encourages sharing. During every weekly meeting, you can introduces a
Unix command trick, a debugging skill, like this. Members can have
5% ~ 10% time to do hobby projects, but the prerequisite is work first. This benefit is not free lunch, you should report it in the meeting too.
So what is the point of this article? Nothing, just telling a story, that’s it.