
Senior Software Engineer
MakerbleSoftware Engineer
FreelancePenetration Tester & Bug Hunter
FreelanceSoftware Engineer
Simform SolutionsSoftware Engineer
OmnirioSenior Software Engineer
Purpleplum Digital Solutions
Ruby on Rails

AWS
.png)
Heroku

PostgreSQL

Redis

Git

RESTful APIs

AWS
.png)
Docker

Sidekiq
I'm basically located in. I have completed my degree from ADIT in the field of information and technology. I have more than 4.3 years of experience with Ruby on Rails. I started a services company where I worked as a software developer, and at the time, I was working as an intern. And after completing 3 to 6 months of internship, I also joined the organization department. I have a very good interest in the cybersecurity domain as well, and I have completed a certified ethical hacking certificate. I'm doing penetration testing and bug bounty hunting in my free time with related to Ruby on Rails. I have worked on more than 15 to 20 projects as a freelancer and have implemented few functionalities with some coders with pet programming as well. So yeah. And I work with service-based companies and product-based companies as well, and I have developed 2 to 3 products in the Fintech industry, and one is a hospital management software, and 1 and 2 are two projects in the nonprofit organization. So, yeah, basically, I have worked with and I'm working as a senior software developer, and I'm managing a team of 2 to 3 developers and 2 UI developers in my current organization. Yes.
Okay, so here, yes, we can directly use the MVC components when we're requesting anything from the HAX part. So we can confirm with the form fill and adding the remote through and every necessary steps. And from there, we can identify to the controller that the request is in XHR format. Like, the request is confirmed, getting in the extra chart format or more. If it is XHR format, then we can test it like it's a JSON call, and we can redirect or render, we can render a new partial for that. So, yes. And from the controller, we can also get all the parameters and everything from the request or path. So from that, we can directly check. And according to that, we can update our logic and show the different logic in the controller.
Okay, so in JavaScript, the callbacks, so there are many callbacks in JavaScript, so we can directly, like, if there's an on click, there will be an on over, on pop up, and every callback we can use, and the ejects part as well. So when we're writing HTML or admin files at that time, we conclude this JavaScript callbacks. And we can perform according to, like, if someone is submitting a form, then we perform the Ajax call at that time and directly call the controller action. And from that, we are able to render in the success part. We will show what in which ID or in which class we want to show that particular result and everything. So, yeah, we can directly handle this whole kind of thing from the Ajax part and in the HTML file.
So in multitenant, okay. So, multitenant application, there are a few gems provided by Ruby, including a multi-tenant gem, and there are one or two gems provided by Ruby on Rails. So, we can directly check from which domain other data is coming and for which domain we are going to display. According to that, we saw that in the database table. For each tenant, there will be a different domain, and there will be a different database association. So, from that, we can check when a user is logged in. We can check into the database from which this user is coming from which tenant. So, we can identify the particular tenant's complete record and association according to that particular user. And from that, we can redirect to that different domain or particular organization he is logged in. We can directly redirect from that. So, mainly, we have to score the core functionalities to the related association in the database.
I'm not going to save a screwable super503 service, and I will create a Rails application hosted on AWS. Okay. So here, firstly, we can check with the AWS service configuration whether it's working fine or not. And we can also check what the response we are getting from AWS in our Rails application when we are calling the API. We can check that the token is correct or not. And after that, if there's a 503, we check the permissions as well. If the permission is still incorrect, we can check the AWS server configuration. If it's not giving any configuration error on the server side, then we can proceed. So that's how we can check for the 503 service unavailable error.
In the third party, we can use the CDN as well, or we can directly download the third-party JavaScript files and store them in our lib file, or in the JavaScript folder. We can store these files. And from there, we can directly include the complete JavaScript file using the JavaScript include tag, and we just have to list all these files in the JavaScript file. In the app assets folder, there is a file where we have to include making that require this complete JavaScript file, like requiring JavaScript x, y, z, and other files we have to require. We can use the require all as well. So this will require all these JavaScript files into our application. The JavaScript include type will be able to write the application. So it will include all these JavaScript files. We can write it in a lib file, or we can use it as a plugin as well. We can download this complete JavaScript folder and use it there.
In the following red score, the correction issue in the Okay. So, yeah, we were here before action, if you want to perform any action or if you want to validate or verify anything, that is, like, we have to check if it is correct or not or something is true or not. So at that time, we are using them before action or we want to perform anything before that action happened, then we are using them before action, before action period. So here, the first one is a required admin only on new and create. So here, it's not required to take, like, required admin. We can directly check-in there, like, we can remove this, before action for the requirement and directly put that into redirect to root path unless the current user is an admin. So if the current user is an admin, then it will redirect to the root path. But here, I think the condition is false because if here, it should be if the user is not an admin, the current user is an admin, it will give a false, then it will redirect to the root path. And here, find user. So if the user is not found, here, it will find the user before, so require admin only for new and creates. Only new and create actions will require the admin. And for the index new and create action, we so according to this index new and create, except all of this, they will be we don't need the user. So only for update, and so we need the user. Yeah. So that's I'm not thinking any issues. We can remove the required admin and directly put this condition to the new one, create file as well, and find user, accept. Or here, you can in the find user, we can write only. So it will, like, even if it is a complex code, then it will reduce the complexity because we have to write. If you are writing more than 15 to 20 methods, do you have to write here index, new, explicit, and everything you have to write in itself. So you can directly enrich, in particular, the method we are going to use the find user method. So you can we can remove the except accept, and we can use it here only.
That will be called as handle errors during service execution. Spend what this call does and how it could actually fail to handle. So here it's a begin and rescue block. Service dot execute service error. If we're getting any service error, then we're getting an e dot message. So here it will give that message with the error message. And service would execute, and the issue e puts an unexpected error occurred, e dot message, and raise. So here in rescue, we have to write what to do for this error, it's raising an error. And in rescue, we can use the error so we can identify what's the error we're getting and how we're handling this.
In object-oriented program principles, there are multiple principles present. We can start with the observer and check with multi-tenant hierarchies. We can check with inheritance. For instance, single-table inheritance can be used. And like this, we can use every ops object to modify the real service object. So here, we have created a shared services structure. All services association or data logic is replicating more than two to three times or, like, everywhere. So we can use the right concept using the ops object. Inheritance will be used there. And if there are large dates, some functions can be done with a single line, then they can be encapsulated into a single line, and we can write in the model as a filter, or we can write as a validation method, or we can use it as a scope as well. So we can encapsulate that complete logic into a single line using Procon Lambda. And for the self-service object, we can say we can create separate scopes and methods in the model level, and we can use them in our different services using inheritance. Or, if there are like the one service, we have a service which is calling PayPal or any other services, then we create authorizers and services and include that base service in every service. So for that, it will include that complete method, and we can directly call it from there. So it's like inheritance and encapsulation. We are using objects everywhere, so objectivity is also coming. Yeah.
I don't have much idea about AWS Lambda server.
Okay. So here, we can use the in the rest API, we can use the JWT token. And, from that auto authentication and authorization, we have to pass that JWT token and secure token. We can pass in the header so we can identify both tokens as present in our database or not for that particular user. And for that particular user, we can check the access as well. Like, this particular user has this access to write or treat the data. And from that, we can pass into the rest API, restful APIs like this. And, yeah, we can encrypt those data. And from the server side, like, from the client side, the JavaScript framework, but we can decrypt we can pass that encryption key, encryption and decryption key, and they will decrypt the data. And from that, like, from we can add one more layer that the user can't see the complete data from the Rails API as well. So we will encrypt the complete data, and we'll pass that encrypted response to the client side. And from the client side, they have a decryption key so they can decrypt the data. We can also pass with the JWT token. So, yeah, it's like complete authentication and authorization will work there.