This document contains the resume of Ashish Agarwal, who has over 5 years of experience designing and delivering enterprise applications. He has expertise in C#, .NET, SQL Server, and SSAS. In his current role at Host Analytics, he has optimized SSAS cube processing, implemented asynchronous cube processing, and improved dynamic report performance through caching and memory optimizations. He holds a B.E. in Computer Science and has received awards for his technical contributions.
1. ASHISH AGARWAL
Mobile: +91-9739301542
E-mail: ashishash09@gmail.com
SUMMARY
5+ years of experience in designing and delivering enterprise applications.
Expertise in delivering scalable, reliable, maintainable applications.
Skilled in coding, unit testing, debugging, solving complex problems.
Experienced in mentoring as well as leading junior developers to deliver complex projects.
TECHNICAL SKILLS
Language and Technologies:
C#, Microsoft .NET, ADO.NET, AMO.
C, C++, Java, Sql, Mdx.
Databases:
SQL Server 2008/2012, MySQL.
SQL Server analysis services.
SDK, Source control and Tools:
Visual studio 2013/2015, Eclipse.
MS Visio and Enterprise architect for UML.
Aspose API
Git, SVN, Bazzar.
AREA OF INTEREST
Design and Algorithm.
Performance and Scalability.
Overall system design.
EXPERIENCE & PROJECT DETAILS
Organization: Host Analytics, Hyderabad (August 2014 – till date)
Job Title: Senior Software Engineer
Dynamic dimension security for SSAS
SSAS is used for multi-dimensional modeling. Multi-dimensional reports are used to analyze data
and take important decisions. Dimension security helps provide different levels of permission
to different users. SSAS follows role based dimension security.
Contribution:
Designed and implemented the new infrastructure for dimension security.
2. Deprecated the older approach of reading security information from sql tables.
New approach reduced the load on sql server by removing disk reads.
Improved the report run performance up to 10x.
Cube Processing optimization for SSAS
Data from ETL layer (sql server) needs to be pushed into analysis service cube for reporting use.
It’s a two step process which involves transfer data from global table to reporting table then
Processing pulls data from reporting tables.
Contribution:
Designed and implemented the new infrastructure for cube processing.
Removed multiple disk read/writes operations.
Reduced the cube processing time by 50%.
Level based hierarchy
SSAS by default store dimension hierarchy in parent-child format. This approach is older/easy to
Implement but it has huge performance impact with large dataset. It does not materialized levels
of dimension hierarchy on disk. No aggregations are done.
Contribution:
Implemented level-based hierarchy.
Levels follow natural order and also materialized on disk.
Able to store aggregated data at different levels.
It improved dynamic report run performance up to 10x.
HR Cube
SSRS was used for accessing HR related information. Reports run on SSRS is a performance killer.
It puts unnecessary load on sql server.
Contribution:
Migrated all HR related data into analysis service cube.
Designed infrastructure for HR cube.
Helped junior developers to implement this feature into the application.
Query/cache optimization
SSAS was not able to cache mdx query due to arbitrary members selected in the reports.
Same request to SSAS storage engine was not served by cache.
Contribution:
Identifying performance bottleneck in the application.
Modified mdx query to properly use the SSAS storage engine cache.
Improved dynamic report performance.
Asynchronous cube processing
Cube processing is used to push data into SSAS cube. Cube processing is a time consuming task.
Users were made to wait for the task to complete.
Contribution:
3. Implemented common API for processing SSAS objects.
Converted it to an Asynchronous task. Users to get proper notification after completion.
Re-factor lot of application code.
Memory optimization
Aspose library is used for applying formatting on cell set data. It performs lot of String operations.
These operations were not releasing sever memory and slowing down the system.
Open sql connections and improper use of using block for unmanaged memory.
Contribution:
Identifying the root cause of memory leaks.
Implemented logic to optimize aspose library operations.
Code refactor to close sql connection and proper use of unmanaged memory blocks.
Optimize Report Sets
Report sets are static report configuration which are created once and used in dynamic reports.
It uses lot of calculated members. Each calculated member is a combination of different
Members in dimension hierarchy.
Contribution:
Identifying the performance bottle neck in dynamic report with static report sets.
Implemented caching logic to avoid multiple disk reads for members at same level in
a dimension hierarchy.
Improved performance of dynamic reports with static report sets.
Olap Farm
Processing SSAS objects clears the cache. Dynamic report runs takes longer time after processing.
Horizontally scaling analysis service instances to effectively use the cache. Helps scaling the
Application. Distributed the load between multiple SSAS instances.
Organization: Oracle, Bangalore (July 2011 – August 2014)
Job Title: Software Developer 2
Validate password plugin
Design and implemented validate password plugin for MySQL server. Admin can plug and choose
Password policy required to authenticate the user.
Audit log plugin
Extended MySQL audit log plugin to enable users to write audit log trails in multiple formats.
Extended the plugin to provide functionality to filter audit log trails based on various settings.
MySQL performance schema and Storage engine
MySQL performance schema collects runtime statistics of server. Implemented minor features for
MySQL performance schema and storage engine plugins.
Liferay Portlet (internship project)
Developed a simple login portlet.
Chaotic neural network (college project)
Encryption/Decryption based on chaotic neural network (College project).
4. EDUCATION
Birla Institute of Technology, Mesra 2007 – 2011
B.E in computer Science
Aggregated Marks : 76.7%
DAV Public school, Bistupur 2004 – 2006
CBSE (XII)
Aggregated Marks : 80%
Kerala Public School, Mango 2004
ICSE(X)
Aggregated Marks : 81%
AWARDS AND ACHIEVEMENT
Received Key Contributor Award for year 2015, 2016 by Host Analytics.
Cracked AIEEE (rank: 4301).
Cracked IIT-JEE (rank: 5569).
Awarded for organizing technical/cultural events in college/office.
Completed half marathon.
Part of college cricket team.
DATE OF BIRTH: April 30, 1988
DECLARATION:
I hereby declare that all the information furnished here is true to the best of my knowledge andbelief.
ASHISH AGARWAL