- Total 6 years. Primarily developing Enterprise web applications in a Microsoft Environment. Also previous experience in UNIX based environment.
- Application development guided by SOLID principles. Development approaches including object orientation, utilizing dependency injection (to facilitate development when some components are missing). All layers of the enterprise application subjected to TDD approach (Webserver layer, Services layer, UI layer, DataModel layer).
- API design using Domain-Driven Development with the MVC paradigm. Used typical Design Patterns including Observer Pattern, Composite Pattern, Visitor Pattern, Repository Pattern.
- Used generics in C#, TypeScript for source code reusability. XML application development (UI and database).
- In corporation of system wide security (where implemented) design features in application solution design.
- Refactoring of intermediate architectures into more efficient architectures.
- Use of pull (typical iterator) as well as push (e.g. RxJS, SignalR) driven architectures.
- Development of rich internet application interfaces.
- Also familiar with the legacy Microsoft Webforms architecture which uses the Postback design architecture.
- Design and implementations of software solution architectures including developing security frameworks, financial payment processing systems, risk management engines, business rule engines, etc. Includes new application development as well as upgrading/maintaining existing systems.
- Using ASP.NET MVC framework v5 MVC architecture using Ninject Dependency Injection Container. Also used Moq for testing Webserver layer components. Design and implementation of model-view-controller architecture based solution along with integrated security; use of MVC Filters and Custom Attributes. Microsoft MVC framework for Microsoft based views. Microsoft Web API for Restful enterprise web application development - primarily using JSON media type format for objects returned; this approach used where Angular UI framework was adopted in the client browser. Utilizing concurrency in processing using Thread Parallel Library in older applications.
- Includs development of Stored Procedures, SQL functions, SQL Triggers, Common Table Expressions, Transactions, Error Handling, etc. in MS SQL Server 2014, 2008 R2, etc.
- Development of C# code with transactional SQL components using ADO.NET C# server side database objects coding with Microsoft Entity Framework ORM using Code First (Entity class definitions mapped to tables and fields) as well as Database First approaches (via EDMX mappings).
- Use of Repository Pattern in DataModel objects.
- Used SQL Database projects within Visual Studio (local developer databases that are versioned with TFS source control).
- Used SQL Profiler during debugging, reverse engineering of existing applications, etc. Examined SQL Execution plans for performance improvement and optimization of existing stored procedures. SQL Business Intelligence: SSRS (SQL Server Reports).
- Used WCF(Windows communication foundation) for design and implementation of service oriented application architectures.
- Testing done using built in Microsoft TestClass/TestMethod for most C# components. Configuration of service and clients of enterprise systems and troubleshooting WCF services.
- Experience with WCF diagnostics tools, SOAP and WSDL protocols.
- Also incorporated Google Map and Geocoder APIs in solutions. Use of debugging tools in Chrome, Internet Explore and FireFox browser debugging environments.
- UI component testing using Jasmine test framework. Browsers: IE, Chrome and FireFox.
- User interface development using KnockOutJs.
- Familiar with Backbone.js, Node.js and Express.
- Publishing/migration to development servers; troubleshooting deployment configuration, etc. issues.
- All application development performed within an Agile/SCRUM environment with daily standups and weekly (or sooner) code reviews. Full software development lifecycle experience.
Senior Software Developer
- Agile environment with daily standup and weekly sprints.
- Creation of database components in datalayer:
- Use of Entity Framework Code First and Database First approaches for data access.
- Used repository pattern for creating datamodels. Load balanced and availability based, round robin work load distribution algorithm developed for application using SQL Server stored procedures. Optimization of performance using SQL Execution plans. Provided data-update scripts to testing/quality assurance environments.
- Restful Components using Microsoft Web API service layer: Provided JSON object payloads for consumption by UI components. Testing of components using Microsoft TestClass/Method. Creation of Risk Estimation Engine using Reactive Extensions for .NET. Application provides updated risk cost estimate based on input data. Updated existing Business Rules Engine. Composite pattern used in the development of view models.
- Updating and adding bug fixes to existing Webforms application written in VB.NET. Enhanced existing Repeater control (.aspx and code-behind .cs).
- Pilot project using SignalR to demonstrate proof of concept for push driven applicationthat provides real time updates to management/administration regarding resource availability and workload summary.
Senior Software Developer
- Worked as contractor at client side in a Microsoft NET enterprise development environment.
- Domain of application: Enterprise accounting, payment and customer care system for the client.
- Created database components in datalayer: SQL Server stored Procedures, tables, generation of SQL scripts for updating tables; also created data-models for access by other components.
- Also optimized stored procedure logic for improved performance (after test results).
- Generating reports with SSRS.
- Created WCF services for accessing business logic as well as data components in services layer.
- Defining service interfaces, coding data contracts and testing of service implementation.
- Configuration use of WCF components in respective environments (development, test, etc).
- Created of controller action methods for consumption of service components in ASP.NET MVC layer.
- This also included creation of ViewModels using Razor for non Angular components in some cases.
- Implementation of repository style data access via WCF service calls. Multiple levels of WCF services written to span multiple security boundaries.
- Created Web API components in REST style for providing data for consumption by browser side UI components.
- Validation of data also implemented using IValidatableObject interface. Unit tests were written for WCF components using Microsoft TestClass as well as for controller action methods using Moq.
- Login authentication and subsequent authorization using Forms Authentication.
- Updating user security credentials using secure cookies over HTTPS.
- Created several security framework components using client's requirements. Created UI components using AngularJS, RequireJS. Architecture of the application: (XML, SQL Server database) and wCF Service Model based using MVC for middle layer.
- UI layer is AngularJs based UI framework; used AngularUI and Angular ui-grid and Bootstrap in developing much of the UI controls.
- Use of transclusion functionality in directive design.
- UI application developed is a single page application.
- Back button provided via HTML 5 history api. Other features of HTML5 used: Web Storage, Web SQL, GeoLocation.
- Also used Google Geocoder for accessing Google map components.
- Test setup with Jasmine. Some UI components written in KnockOutJs.
- All user activities were logged/monitored. All exceptions logged and evaluated during owner side testing for acceptance criteria.
- All software source control is via Microsoft TFS 2012.
- Familiar in working with shelve sets; merging back to main branch. Involved in migrating solutions to development/test environment.
- Analyzed latency issues and provided more effective solutions typically by reducing network hops and using appropriate data caching.
- Also involved in refactoring code developed during the Agile process to be better organized and less fragmented.
- Troubleshooting failed migrations and providing remedies.
- Fixed testing/production bugs (from all layers of the applications) in a timely manner.
- General: Entire project was managed through sprints in an agile environment. Participated everyday in daily standup and progress reviews.
- Was involved in full software development lifecycle for this project. Initial effort (3 months) involved upgrading legacy application (Microsoft WebForms environment) to more current ASP.NET environment.
- Bulk of the effort (until now) in full application rewrite using modern specifications provided by client.
- Worked with a relatively large group of developers (over 50 software developers for just this one project) and also with the Testing Team toward the end of the project.
- Worked several weekends for emergency work as required by the client. Also had to interact with BizTalk and Oracle teams during the development effort.
- Occasionally made presentations to business owners/users and proposed effective solutions during interactions with them.
- Developed database systems for maintenance of public infrastructure.
- Designing Data Access Layers, UI Layers, and Core Components for using ASP.NET framework.
- Developed web service component to access remote data and format per business guidelines.
- Accessing the remote data using XML web services and other remote data accessing options.
- Implemented Data access layer functions in ADO.NET for SQL Server 2005 interactions were developed using SQL and Entire Server side development
- Developed classes used to support customer preferences.
- Worked on AJAX to populate user interface controls such as drop down list and generate warning messages to enhance overall UI experience.
- Wrote Technical Documentation for components.
- Wrote Windows multithreaded application to access distributed server resources concurrently and safely using semaphores, locks, etc.
- Also involved interprocess communication for one of these modules.
- Use of Task Parallel Library:
- Improving response in time consuming processes.
- Design and implement SQL Server Database application for inventory/warehouse management.
- Coding and optimizing stored procedures.
- Provide bug fix support and upgrade existing customer database and stored procedures.
- Updating tables with consistent data from multiple sources.
- Windows environment coding for streamlining existing process flow.
- Development of new modules in .NET environment.
- Upgrading existing WebForms application with new requirements.