• Desktop Applications 
  • Web Applications 
  • Web Services, SOA 
  • High-Performance Systems 
  • CoReTM
  • All Areas 
  • .net architect blog 

Complex Desktop Applications


Customized grouping data grid

visual display large datagrid

Architecture cannot be an afterthought - whether for a new building or for a software application.
  • UI Framework Architecture : Anuj has served as a .NET UI architect (both WinForms architect as well as WPF architect) on more than one occasion. He has helped build an advanced Object Oriented Framework entirely in .NET - containing enterprise UI components such as CAB/SCSF, Smartparts as well as 3rd party controls such as Syncfusion and Infragistics.  His .NET UI Architecture experience includes 3rd party WinForms libraries as well as WPF components.
  • Component Oriented and Object Oriented Development  :
  • Whether your application requires the location transparency provided by .NET components or the advanced framework design available through C# Object Oriented constructs, Anuj has helped design entire frameworks using his experience as a .NET architect.
  • Advanced Pattern Usage: Whether it is the often used Publish-Subscribe pattern (see Anuj's blog ) - or the FlyWeight pattern, Anuj continues to leverage best practices in Object Oriented and Reusability design through the usage of advanced patterns. As a result, his applications tend to be 'lean' and accomplish tasks with far less code than one might originally anticipate. 
  • Integrating Applications through EAI Platforms (Integration Architect Experience): Anuj works extensively not just on building stand-alone applications - but connecting them as well. Using industry leading platforms such as Webmethods and BizTalk Server, Anuj has helped applications talk to remote credit bureaus, loan processors, e-Commerce processors as well as a variety of 3rd party legacy applications.
  • Custom UI Controls : Today's business applications need to display several megabytes of data in various layouts including Master-Detail, Parent-Child, Tabbed Views and other complex UI layout scenarios. Anuj has worked in the capacity of a hands-on .NET WinForms architect customizing large data displays to include:
    1. Advanced Data Grids with excel-like copy and paste functionality for grid data
    2. Advanced grouping including multi-column grouping
    3. Fast rendering of large quantities of data - using virtual display modes
    4. Nested grids - and advanced Master-Detail views.
  • If you are interested in learning more about Anuj's experience as a .NET architect or as an Integration Architect, please visit the clients section of this website or contact Anuj for details. If your application is experiencing performance issues, Anuj's CoReTM Service may be of interest to your company.

High-Performance Web Applications

Of his last two large ASP.NET projects, Anuj helped turn the first one from a bottom 10 percentile website to a top 25 percentile website (details). With his second application, he helped DELL successfully recall over a million defective laptop batteries from around the world (details).
  • Anuj has been involved with highly scalable ASP.NET websites capable of handling large amounts of data using advanced caching and display strategies. Anuj was recently involved with DELL's battery replacement initiaive to recall defective laptop batteries from around the world.
  • State Management, Caching, Custom HTTP Handlers... Anuj continues to extract performance from his ASP.NET applications through the use of advanced caching and state-management techniques. He has also worked hands-on with some of the more esoteric ASP.NET features such as custom HTTP handlers and the request processing pipeline.
  • Internationalizaton/Globalization - Anuj has worked extensively with .NET's internationalization support to build websites that support several languages. Anuj's design allows for the flexibility of adding new languages down the road without source code modification.
  • ASP.NET datagrids and Custom controls - Anuj has designed custom web controls to handle display of complex data - including nested relationships as well as sorting, grouping and filtering of data.
  • .NET SOAP and WebServices (Also see the SOA 'Area of Expertise'). Anuj has been involved with the design and development of secure SOAP messages using both Java SOAP and .NET SOAP.
  • Migration from classic ASP to ASP.NET - Anuj was the lead architect in moving a popular social networking website from ASP to ASP.NET
  • IIS administration, configuration and troubleshooting - Anuj has a hands-on knowledge of ASP.NET and IIS Security, Authorization and Authentication, Roles, Membership management as well as certificate management.
  • If you are interested in learning more about Anuj's experience as a .NET architect, please visit the clients section of this website or contact Anuj for details. If your application is experiencing performance issues, Anuj's CoReTM Service may be of interest to your company.

Distributed Applications, SOA and Web Services

  • Large file transfers: Web Services over SOAP were never designed to handler large binary data transfers. However, industry needs have led to various workarounds. Newer extensions provide various options - including SwA, Mime and WS-Attachments. Anuj has hands-on experience with several file transfer technologies both .NET SOAP as well as Axis SOAP.
  • Security:  Anuj has worked with the next generation of WebServices using WS-Security, WS-Policy and WS-Addressing to apply security and other constructs to meet the demands of complex SOA architectures.
  • Integration of Java SOAP with .NET SOAP:  Building multi-platform services using both Java SOAP (both Axis and Apache) and .NET SOAP leads to various interoperability issues. These are some of the challenges that Anuj has helped clients overcome in the capacity of an SOA Architect.
  • If you are interested in learning more about Anuj's experience as a Web Services Architect, please visit the clients section of this website or contact Anuj for details. If your application is experiencing performance issues, Anuj's CoReTM Service may be of interest to your company.


Service Broker Based SOA architecture

sample SOA configuration

High Performance Desktop and Web Applications, Trading Systems and Financial Markets Programming

Anuj has broad experience with high traffic web applications as well as thick desktop client applications. His trading systems software experience includes both financial maket systems as well as energy trading systems.
  • Some vertical scalability techniques that Anuj has used involve advanced multi-threading patterns including:
    • Performance-centric analysis of use cases into synchronous and asynchronous workflows. Using asynchronous invocation of methods (both on separate threads as well as via delegates) where required - for improved performance.
    • Object design accommodating concurrency, e.g. using ReaderWriterLocks for concurrent access to objects.
    • High-performance component-oriented design - reusable components built for concurrent access.
    • Implementing ISynchronizeInvoke for multiple thread access to object methods
    • BackgroundWorker usage on UI forms to handle user events while performing background tasks.
    •  Multithreaded web services designed to handle simultaneous service requests and thousands of consumers.
    • Modification to the built-in .NET Thread pool - to overcome some of its shortcomings.
  • Anuj is an expert on some of the High-Performance characteristics of trading systems - including state management, persistence, recovery, load balancing etc.
  • If you are interested in learning more about Anuj's experience as a high-performance systems Architect, please visit the clients section of this website or contact Anuj for details. If your application is experiencing performance issues, Anuj's CoReTM Service may be of interest to your company.

Comprehensive Code Review (CoReTM) Services

Study after study has shown that good unit test suites lead to fewer bugs as well as cleaner (refactored) software. The opposite also holds true - lack of comprehensive tests leads to software that is defect-ridden and harder to maintain. Anuj provides a comprehensive code review of your entire code base which includes:
  1. Code Coverage Statistics - to determine what fraction of  your code is missing good test coverage (and hence may be open to defects).
  2. Refactoring of larger Components, Classes and Methods - Often times, unintentionally, a class or a component grows to provide more functionality than originally intended. The same may be true of individual methods within classes. Anuj meticulously goes through each class and using proven OO techniques such as composition and inheritance, breaks up larger classes into manageable ones.
  3. Revalidation of business process - One of the side-effects of the CoReTM service is that re-factoring, by its very nature, involves re-visiting key business process decisions. This leads to a thorough re-validation of core business workflows. Often times, Anuj's CoReTM service, has caught major loopholes and missing pieces of functionality - as a pure side-effect of his refactoring efforts. 
  4. Standardized components for logging, object disposal, exception handling etc, - Another thing that tends to happen on larger projects is a mish-mash of logging methods, memory cleanup and exception handling code. Anuj painstakingly re-works code to ensure that objects get disposed correctly to prevent memory leaks - he inspects all exceptions to ensure that the appropriate ones get handled. In addition, he provides a standardized logging component for the entire application.
  5. Documentation - As per one research, less than half of all software applications are well documented. Code documentation usually stays on the back-burner - unless each developer makes a conscientious effort to provide thorough documentation. As part of his re-factoring effort, Anuj provides complete code documentation for the classes and methods that are lacking in this regard.
How does it work? How long does it take?

While it is dependent on the number of lines of code, the initial phase (examining the code) - typically takes between 1 to 2 weeks. At the end of this phase, Anuj will provide a list of areas that would benefit from code modifications (including re-factoring, additional unit tests, memory cleanup etc.). He will also provide an estimate of the time required for the second phase.  Although it is highly dependent on the size of the code-base, the second phase takes anywhere from 6 weeks to 12 weeks depending on the volume of code involved. Anuj also provides a comprehensive document at the end of phase 1 - should you choose to use someone else to implement phase 2.

What is the end result?
Code that has gone through the CoReTM service continues to have lower bug-incidents and proves to be easier to maintain due to:  
  1. Better test coverage
  2. Smaller, self-contained classes - leading to maintainable classes and methods
  3. Standardized memory cleanup (disposal) technique, standardized logging, standardized exception handling - leading to better application performance
  4. Re-Validated business process - filling in missing pieces of functionality.
Contact Anuj to schedule a CoReTM service.  
These are some of the areas that Anuj specializes in. Click on a specific area to see Anuj's experience with that technology.