I have mostly done boring work in my life. Performance testing is something I did at the customer location for 6-9 months. I would get a few servers, install our product, create test data, create scripts, speak to stakeholders to find usage patterns, run the scripts, measure 100s of parameters – and then throw it all away because the results were horrible. And then repeat once again with a few tweaks.
Friends would sing “JMeter down, down” every time I passed by.
I joined Trilogy and did data modeling for a year. We would create several XML files, which would be interpreted by framework code and magically a website would get generated. Making a mistake in one xml would mean the entire site breaks.
Friends wrote “From Bombay, doing Modelling” on my nameplate.
When we got the WinZip account, I spent long hours reading cryptic C code for a 15-year-old system, so that we could port it to a modern Django stack. Ditto at HMA and FreshersWorld.
Friends said Sri is a code scavenger.
Here is the important part though. In between those dirty jobs, I got to do some of the most amazing things. And I learned skills for a lifetime.
Database migration taught me the schema of the entire product. And guess what – I soon realized I could work on any module I wanted because I was amongst the few who understood it all.
I learned a million SQL performance optimization tricks. Which is why when there is a performance problem with any database, it takes me very little time to fix it.
Running JMeter scripts and recording metrics using perfmon is drudgery. But then in between, I learned about capacity planning, queueing theory, and Little’s law.
And I learned all the configuration parameters for HTTP and queues and web servers and databases and networks. And I learned how to fix performance problems in code, how to profile code and how to watch slow queries and how to instrument code.
In every dirty job, there is an opportunity to do things better, to automate, to build a new framework or even create a product. Go find that opportunity.