In a turn in my life, for college, I 've chosen Physics over the Computer Science, lots of factors were involved that here is not a place to discuss. During my bachelor, I tried to use my programming knowledge in a positive way. I tried to take as many computational related courses as it was available. My B.Sc thesis was also simulation related. In a sense, I became a Computational Physicist. But that was not enough. The more I learned the computer related parts of any problem, the deeper my interest in them became. In any problem I was dealing with, I always was looking for optimizing, parallelizing, efficiency improvement, etc. So I started to think about changing my field of study from physics to Computer Science. Well, it was not an easy task. I self-studied a lot of materials to get the grip of some backgrounds in Computer Science. For instance, I started to watch some of the MIT open course video …show more content…
in Computational Physics, but a car accident forced me to focus on my recovery for several months so I never participated in that program. Afterward, I worked as Algorithm optimizer and back-end developer in some companies(listed in my CV). In one of the companies, my responsibility was to optimize their current algorithms. The company was a hardware firewall provider. Upon my investigations, I came to the understanding that their parallelization was not effective at all. In a standard test of their performance, before I provide my algorithm, they could process six million packets per second throughput; But, it was just normal packet filter with barely even header inspection, also refreshing the new rules took approximately three minutes and forty-five seconds, that was their time to generate new rules. The task of optimizing their basic algorithms was assigned to me, and I was able to change their whole system to a new model, that could do the same thing in same standard test in less than 8 hundred of nanoseconds. Huge optimization I guess! by the way, their parallel algorithm was so dumb, I just made it distributed among their nodes with a not as dumb as before algorithm. Followed by that breakthrough I introduced the concept of Deep Packet Inspection there, the whole process was like a research and learning for me. My other task, there was to investigate lockless hash-tables for