More than 6 years of software development experience.
Awarded "Most Valuable Professional" (MVP) in C# by Microsoft for three consecutive years (2006 - 2008).
Passionate about programming - have written plenty of open source software in my spare time.
Love learning new technologies and programming languages. Always looking for ways to improve as a software developer.
Some comments from users of my work
"Got my 5 for this incredibly useful utility (Undisposed), and I love your writing style--very friendly and easy to read!" "This is a great article - I've been aware of the need for BeginInvoke, but I haven't found such a concise and thorough explanation as to just why you need to use it" "Your WinMacro application is perfect for automating some testing which I need to do. Thank you for spending the time to come up with it and also for distributing the source code." "IRCTC should learn something from you, to implement these kinds of great ideas. Keep it Up"
Technical Competencies
Languages
C# 3.0, F#, C++, Python, JavaScript, C++/CLI and Java. Can read MSIL and x86 assembly.
Tools
Visual Studio .NET 2008, Rational Clearcase, TFS, Reflector, Windbg, SOS
Databases
SQL Server
Work Experience
Technical Lead at HCL Technologies Ltd.
Oct 2003 - Present
[ C#, .NET 2.0/3.5, Winforms, Python, COM, C++, Windbg, SOS, Rational Clearcase ]
Rated "Outstanding" in almost all performance reviews held so far.
Wrote SECSimLink (
Considered an expert in the Factory Automation aspect of the semiconductor domain.
Debugged and resolved lots of problems, including memory leaks, deadlocks, crashes and resource starvations etc. using tools like Windbg, SOS and Process Explorer.(
Wrote several project specific tools to automate boring, repetitive and tedious tasks. IronMon, for example, is a tool that acts as a health monitor for reliability runs and periodically emails project members about the status of the run. This previously required a person to keep watch at the tool.
Viper 7.1 is the latest version of Viper, written from scratch in .NET 3.5 (C#, C++/CLI and IronPython). A Winforms app, it uses SQL Server 2005 as the backend and talks to a lower level Java library through CORBA.
Suggested and implemented IronPython scripting support. Helps developers look at and change state of running application and write automated integration tests.
Designed and implemented critical pieces of the software, like job management, sequencing of wafer inspection and post processing, and pausing/resuming/aborting of operations, all of which were heavily multithreaded.
Wrote several generic reusable lower level classes, like LazyWeakProxy and Workflow.
Helped design and implementation of lazy loading of properties from DB, using Castle DynamicProxy.
Designed and implemented error handling framework, diagnostic framework and several UI controls that required custom drawing and real time updates.
Ported Factory Automation code (20K lines) to work with the new version.
Viper 6.1
Oct 2004 - Dec 2006
Viper 6.1 is a Winforms application, written in .NET 1.1, with SQL Server 2000 as the backend.
Implemented several Factory Automation and material handling related features, including inter-lot pipelining, which dramatically increases application throughput..
Resolved hundreds of customer issues, including memory leaks, race conditions and data corruptions. Was sent as the first choice to Japan to resolve a critical customer issue. Was instrumental in increasing the MTBA (Mean Time Between Assists) from less than 20 hours to more than 80 hours.
KT FA
Dec 2003 - Oct 2004
KT FA is a COM library written in C++, with a MFC GUI for viewing state and exercising the library. It implements several Factory Automation standards and is intended to be used by all KLA-Tencor equipment software, saving money and standardizing the implementation in the process.
Quickly got up to speed with the code, COM and STL, and was granted check-in rights in record time.
Added several APIs and implemented them using C++, using advanced language features like template template classes.
Became an expert in SSL (Secsim Pro Scripting Language), a dynamically typed interpreted language that runs on Secsim Pro, a host simulator.