I have mostly done dirty work in my life.
I did performance testing at customer location for 6-9 months. I would get a few servers, install our product, create test data, create scripts, speak to stake holders 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 down” every time I passed by.
I joined Trilogy, and did data modelling 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 learnt 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 learnt 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 learnt about capacity planning, queueing theory and little’s law. And I learnt all the configuration parameters for HTTP and queues and webservers and databases and networks. And I learnt 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.