.Net Developer with over 7 years of IT experience in .NET Framework Web based application development using Microsoft.NET technologies including ASP.NET, C#, ADO.NET, .NET Core, Azure, Webjobs, Angular REST APIs etc
Sr Software Engineer
INetBuild.LLPSr. Software Engineer
INetBuild.LLPSr. Software Engineer
INetBuild.LLPSoftware Engineer
Styaa.comSoftware Engineer
Council of Scientific & Industrial Research-CSIOSoftware Engineer
INetBuild.LLPSoftware Engineer
Styaa.comIt Recruiter
Spectraforce TechnologiesSoftware Engineer
IT RecruiterIt Recruiter
Spectraforce TechnologiesPostman
Fiddler
SVN
Visual Studio Code
Visual Studio
Jira
SQL Profiler
Azure Data Studio
VS Code
SSMS
SSMS
Could you help me understand more about your background by giving a brief introduction? Okay. Uh, so I'm Harish. Um, I have done my graduation in bachelor of computer application in 2016, and it's been 7 years, uh, since I'm working in the software development industry. I've worked with various projects, um, uh, catering to various sectors, uh, during this work, um, work experience of mine, uh, which involves ecommerce, involves SaaS based platforms, and, uh, also involves some banking projects where I worked with SSIS packages in order to create a data integration, uh, for the bank. And, uh, my recent project my recent project basically is a StackTrak, and, uh, it is a it is a SaaS based application which, uh, supports multi tenant, uh, and multi tenancy. And, uh, it is the product that is used, uh, for, uh, catering of, uh, low end workforce specifically targeting the railway industries. So I have created solutions specific to different program, different, uh, different different nature of, uh, demands. Uh, during the 7 years, I've worked with csharp.net, uh, dotnetcore, Azure, and, uh, SQL Server. Apart from that, uh, I have followed Agile using, uh, Jira with the following that 2 week biweekly sprint. And, um, so that has been the nature of the work. Apart from that, I've also been involved in handling the team. I have handled the team size of somewhat between 8 to 12, and that has been my experience till now.
What's the difference between views, functions, and stored procedures? So view basically is, uh, we use views, uh, whenever we need to have certain queries, uh, which can be combined by multiple tables, and we want to have that. And functions basically are similar to any c sharp functions in SQL where, uh, we have a function which contains parameters or nonparameters, which executes and give us a written value. And stored procedures are the compiled objects, um, that, uh, uh, that are used, uh, in order to execute, um, in order to execute a certain operation, uh, by being part of the card. And, uh, yeah, view generally is used in order to get the select statements, uh, combining different tables, uh, with joints. Functions are, uh, similar to c sharp functions that we use, um, that takes input and give us a written value. And stored procedures are compiled SQL objects that, uh, that takes, um, some parameters or can be parameterless and, uh, execute a certain operation being part of the card and give us the output.
What are the best practices, uh, you follow when developing dot net, particularly, uh, for a web application? So, uh, we'll start with the segregation of code. I like, uh, if I'm talking about just web applications in dot net, um, I follow, uh, entire, uh, application system where I, um, create primarily 3 layers, uh, which can prices of 3 different projects. Uh, 1 is my UI, uh, 1 is my DAL layer, and 1 is my VLL layer. And, uh, then, additionally, uh, if I'm using an API, then I have an API layer as well, which communicates with my VLL, and my VLL communicates with my DAN, and my UI communicates with my API. So, uh, segregation of code in the modular form is, uh, one of the first approaches. Then, um, second approach is, um, how do you write that code? Um, I like using, um, base classes, uh, so, uh, to cater the similar, like, common code. So for the use of common code within the application, um, I implement it using the base classes. Apart from that, if I talk about, um, if I just talk about the folder segregation, so each and every single folder is created for single functionality, and, uh, all the necessary files are present within that very functionality. Apart from that, if you just talk talk about the development part of things, uh, then, uh, creating in terms of web forms, uh, creating different user controls, uh, in like, independent user controls is the approach that I follow. And then applying or consuming those user controls into the main application or ASPX page. Uh, so these are the approaches that I follow, like creating a modular application where each and every single application is part of catering a certain, uh, specific, uh, certain specific, uh, area. If you are talking about dot net, then I, uh, I create a lot of classes. I use, uh, the dotnet containers, uh, dotnetcorecontainers provided in order to create a singleton, uh, scoped or transient object, uh, in order to handle the dependency injection better. So dependency injection is one of the major things that I implement, um, in my BLL layer. So these are the various steps, uh, creating a modular application. If you're talking about Angular on top of it, I'll create components. Similarly, in c sharp dot net, I would create, uh, user controls, catering, uh, to a specific area.
When would you choose to abstract functionality into reusable pieces pieces of code? Can you explain your approach to coding when and how to abstract code? Yeah. So, uh, as discussed in the previous answer, um, first is I would create a base layer if there is a common functionality. And, uh, in terms of abstraction, the abstraction is done on, like, if I have to follow an approach. Uh, I'll give you an example. So let's say I have a object, uh, x, and I want to create, uh, the, um, SQL side of the things as well as the UI side of the things. The UI side of the first, we'll go with SQL. All these stored procedures are created that are associated with the x. Then there are views, and then I will create a BLL layer comprising within a folder, uh, within a singular namespace, uh, common namespace containing all the elements of that very, um, x object classes, uh, performing the CRUD operations. Then, uh, there will be my UI layer where I would be having different user controls independently consuming these BLL layers or API if I have created. So in that very way, I would create, uh, abstraction first on my, uh, DAL layer. Uh, I can create my DAL layer using aria.net as well as entity framework, or I have also worked with DevExtreme. It is a third party, uh, component provider. Um, then, uh, I will create an abstraction using namespaces and namespaces dependency injection and, um, classes, um, for my VLL layer and for my UI. If I'm talking specifically about the document, then I would create my user controls, uh, around that very object. And I will keep them in the singular folder, like, a single folder structure. So that would be my approach to creating an abstraction. And whenever I have to use, uh, a user control, I will just simply simply use the attribute assigned to that very user control into my main page. And, uh, that would be my approach for reusability. Uh, and whereas if it is for the classes, I can I can, like, register that very class using singleton, uh, transient or scoped, and I can use it using an interface that can give me the object that can inject the object within the class, and thus, it will create a very use reusable structure for me where I need not to create object, um, like, every single time I'm creating or consuming that very, um, object properties class properties?
describe a situation when you took the initiative to solve the problem that wasn't necessarily your responsibility what was the result. So there has been many instances such I'll give you my current my current application stack track so we follow like we follow an approach where we have we use T4 templates and these T4 templates help us to create our basic CRUD controls, DAL layers and everything. So this T4 template consumes a specific table data which we call as objects and when I happen to join the organization this data was to create this data was put manually into our SQL system and it was a tedious task where you are creating and maintaining primary keys foreign keys and so it consumed around four hours approximately if I have to work on a single object and so I happen to create a script for us to generate that very information of data and it reduced that amount of time like to I think somewhat around one one and a half hours including testing and everything so that was one of the one of the things that was not part of my job and I happen to took initiative apart from my additional like apart from my work times to make it and it helped everybody to just you know in creating the data for the T4 template now which the task that took four hours was easily be done by one and a half hours including the testing of that very object and CRUD operations that the T4 template helps us to generate. So that was one of the initiatives that I happen to took apart from that there has been a lot of other areas but I think the time is a bit limited so yeah as to answer I happen to work on a script in order to help a T4 generation project that helps us to consume T4 templates and create our basic structure of an entity
Tell me more about the time when you had to hold yourself accountable for project's failure or setbacks. Uh, it happens. Uh, So okay. I've always I'm not like, right now, I'm in a senior position. So, um, usually, when we talk about a setback, uh, it is usually when we are not able to deliver, um, the required, um, functionality on time. And, uh, when that happens, like, suddenly, it is a responsibility of the one who is at the lead, and you have to take the charge. And, uh, so how do I cater with those? Uh, so keeping oneself accountable is, like, I know that it is the task is to be done. And if it is not done, um, uh, first, the idea in my head is to, uh, is to allocate my time in a way that I can implement that very thing. And, uh, within the time, uh, by putting in some extra time if it is feasible. If it is not, uh, my approach to this is to have, like, immediate communication with the client and, like, figure out whether we can improve or can increase the time on, uh, that very thing so that they have also a buffer, uh, at their end. Keeping the bound of it is simply I the idea is to follow, like, a Jira, Sprint, having meetings with the team, understanding if there is a if somebody stuck some place, and, uh, figuring out within the team if we can solve and resolve, uh, the issue. But as far as the accountability is concerned, even if there is some person who has not delivered and is part of my team, it is my accountability to take charge and, uh, first look into the situation whether we can do it or not. If it is not feasible within the time frame, then it is, uh, uh, my responsibility is to communicate to the concerned person on an immediate basis and, um, then, like, take responsibility of, uh, whatever, uh, whatever, uh, the the outcomes are. So so I I I hope I've answered it well.
Worked with web APIs and razor templates. Can you describe how you have used them in building pages? Um, I've worked with razor pages, uh, but, um, web APIs, I have been working, um, like, it's been around 6, uh, years uh, since I've been working with Web APIs. Um, how I have been using them? Uh, so Web APIs, um, I'll give you an example of my current application. So, uh, earlier, it was a web form application that used to consume Web API. And now we have, uh, moved it to the Angular and, um, uh, and along with the Docker core API. So, uh, how I use Web APIs are simply, uh, like, them in building web pages. Okay. So 1st and foremost, web APIs provide, like, a while it it creates this it it it helps us to segregate our UI part as well as our, um, back end part. And the the the the benefit of, uh, consuming it is simply that we can have we need not to rewrite our logical side of things, and we can have different UIs catering. For example, in my current application, we have, uh, we have a web application as well as we have a mobile application that consumes a same API. And, uh, currently, I've worked with the, uh, closed the APIs, which were not, uh, like, private APIs. Um, but, certainly, we can make it public. And the way for me to consume it is by creating, um, a strong, solid, uh, authentication layer authentication and authorization layer. Uh, for this, I have used the bearer token. And the bearer token creating claims, uh, containing all the information about the user, user roles, and, uh, with every request handling that very bearer token and, uh, in our, like, APIs. As well as razor templates, I have worked with razor pages, but, uh, uh, not recent. I do not have a recent experience working with the razor templates. In my beginning years, I haven't worked on it.
Can you explain what delegate delegates and events are in c sharp? How do you use them in your projects? Uh, in what situation would you choose to use an interface over an abstract abstract class in c sharp? Explain how garbage collection works in c sharp and what impacts it has on your development. Okay. That's a long question. Um, so delegates are basically function pointers. I've used delegates and events, um, in, um, like, in dot net core. In dot net core, we, uh, we, uh, we define, uh, like, we define, um, this, uh, middleware. And in order to register middleware, we, uh, use, uh, we we use request delegates in program dotcs file. And there, I can define my own methods, uh, that, uh, works in between a request and response to an API. And I can write my logical code, uh, whether it is to authenticate and authorize a user, whether it is to, uh, handle the errors at a common, um, at a common, um, area. So this is my experience and, uh, usage of delegates, uh, that I have, like, used. Apart from that, uh, in what situation would you choose an interface over an abstract class? Uh, mostly, I would use an interface. The only difference, uh, for me, uh, to use an interface over an abstract class would be when I do not have a common, uh, common consumption point, uh, a common code. Like, uh, if I have a common code or common logic that I want to use, then I can write and write then I can consume an abstract class. That way, I can write that very logic as well. But, uh, primarily, I would use interfaces if there is no such requirement as it helps me to create a layer for, uh, dependency injection for the object that I've been using. So that would be the major difference. If I do not have a common code, uh, to be executed, I would use interface over abstract classes. Explain how garbage collection works in c sharp and what impact it has on your development. Okay. So garbage collection is an autonomous function of angle, uh, of dotnetcoreCLI and, um, dotnetcore, uh, framework. And, uh, what it does, it it, uh, autonomously work and, uh, removes all the unused objects. Uh, it consume it creates 3 containers. Uh, like, it has 3 generation g c g c 012. And depending upon the, um, depending upon the, um, depending upon the, uh, the usage of an object, it categorizes or, uh, put them on different, like, generations and removes it, uh, accordingly.