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 perf
,ftrace
to 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 FOSS
projects.
(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.