Sunday, March 14, 2010

Something new to learn always

I believe learning can never ever stop. Everyday there is something new to learn and there are times when you are forced into a situation that drives you to learn even faster. These situations are crisis situations - during this time you always learn at lightning speed and you feel it is the hardest time in your life but the important thing is to stick in there ride out the crisis, do your best and you end up coming out of it a more knowledgeable individual. No amount of make believe scenarios and training can give you the kind of learning a crisis situation gives.

Having significant experience in Software Development and having worked on more than one large project one feels that they have seen pretty much everything. Over the last 15 days I have been through two crisis situations that have made me realise that I have not experienced it all yet.

The first situation involved our servers that were on a public IP located at a data center that hosted our website http://yourschool.in/. I got a call one day from the data center telling me that the bandwidth used by our site was 25 times more than normal in a month. So I immediately went and checked the usage information given by the data center and realised that the only way this kind of traffic can happen is if someone is hacking into the server. So I start investigating this and I sudenly realise that I need to start learning about Firewalls, Ports, IIS Vulnerabilities, IIS Logs, ... to solve the problem.

The second situation involved an application that we built that worked fine in the development environment, Quality Assurance Environment but was crashing in production. We spent more than a week every night in the office trying to debug the problem in production but to no avail. After a lot of persistence and patience and learning from our findings in production we were able to replicate the issue in the development environment. It was related to an issue of deadlocks happening in the database. This time I was forced to learn about SQL Profiling, Deadlocks, SQL Error Logs, CLR Profiling,...

I could have found it very hard to create these two situations in a laboratory environment to be able to learn how to handle it. But after riding through these two difficult situations I have come out feeling like I am a more knowledgeable person now which does make me feel good. So my hope is to never stop learning and the more I learn the more confident and happy I feel.

No comments: