I have 12+ years of experience in Drupal. I worked with many versions of Drupal(5,6,7,8,9,10,11). I worked on more than 200 projects in Drupal with various sectors of e-commerce, non-profit NGOs, the world's largest NGO, telecommunications, Media publishing, IT& Services, government, Education, Pharmaceutical, Healthcare and many more. I worked on small to large-scale projects individually and with the team. I worked both frontend and backend.
Portfolio Link for Drupal
https://drupal.org/u/arvindkinja
https://github.com/arvindkinja
Sr. Drupal Developer
Drupal.orgSr. Technical Lead/Architect
Ekfrazo TechnologiesTechnical Lead
Adappt Mobile Cloud ApplicationSr. Drupal Developer
Smashing InfolabsSr. Drupal Developer
WebDuniaSr. Drupal Developer
Axelerant Technologies
WordPress

PHP
XAMPP

CSS3 & CSS5

Javascript

Net Beans

Eclipse
.png)
Docker

Lando
Azure

AWS

github

MySQL

FTP server

Git

Oracle
REST API
Node.js

Python

Apache

Postman

HTML5

Ajax

cPanel

WampServer

Slack

Asana
Jira

Skype

Google PageSpeed Insights
Figma

Visual Studio Code
NPM

FileZilla

Microsoft Teams

NetBean-IDE

Zoho
Google Tag Manager
AWS (Amazon Web Services)

jQuery
.jpg)
Confluence

Zoom
.jpg)
XML
.png)
Drupal

GitLab

GitHub

DigitalOcean

VirtualBox

Azure Virtual Machines
.jpg)
Win SCP

VS Code

VMware

D3.js
Azure DevOps Server

Node Package Manager

gulp

HTML/CSS
Yeah. So my name is Arvin, and I belong to MP. And I started my graduate career with Drupal 5. And currently, I'm working on Drupal 7, 9, and Drupal 10 projects. And recently, I migrated one project from Drupal 9 to 10. And we do have one more project where we are planning to migrate from Drupal 7 to Drupal 10. And apart from this, I'm currently working on a nice area government based project where we are implementing the subscription API. So it's purely an API integration project, where we are handling 25,000,000 user requests each day. So that's all about me.
To implement the object-oriented principle, we do have some setup for Drupal's standard method. And to pull a standard code coding standard, we have to use dependency injection in our code. So, if we are going to create a new form, we will use the Drupal form-based class. We extend the form-based class and override the existing form-based class method to create a new form. And if you want to use any services, then we will inject the services inside the container. So, in this way, we will efficiently use the Drupal coding standards along with object-oriented programming.
To implement the full text search, we can use a 3rd party search, like the Solr search or Elastic search. So here, we do have 1 more search option. Like, we can use the Drupal database search, but the Drupal database search will affect the Jupyter performance, so all the content will go for indexing to the Solr search. Most of the time, we use the Solr search for the missing content, and the data will be stored in a structured format in the software, and the search will be fast, rather than the structured query language, so we use SOLR. We use the core search API model, and along with the search API model, we have some additional models. So we create a Solr search database, and we create a new search index based on the Solr index, the Solr database. And, from this, either we can create a search API page, or we can create a view page that uses the new Solr index that we have created. So the search will be fast, and we can use the reverse proxy, like CloudFront, to our initial port caching mechanism to make it more fast.
So the most efficient way to make a Drupal module, or a reusable component in other applications, is to create services. We can create services that can be used anywhere in the site. We can also create a controller or an interface. An interface can be overridden by any other class, or we can create services that can be used in the theme as well. So if we go with the Drupal services, then we have to define the services in a model name dot services dot yml file, where we will define the service name along with additional parameters. We can also inject other services, and define the service class name. The service class name can be inside the module root folder, inside the src folder. And in the service class name, we can include other controller classes or core classes, like users or taxonomy, per our requirement.
So, we can use the third-party tool or there are some predefined tools, like, that are available in the code builder and code deploy tools, that we can use to deploy our code. The code build will take a clone of the repo with the CICD pipeline. And once that's ready, then the code deploy will deploy the code.
To prevent SQL injection attacks in Drupal, the database layer already has mechanisms to prevent it. These include proper functions around database queries, where we cannot write plain queries. Instead, we have predefined functions and services available for the database, which we can use. If we want to use these functions inside a model file, we would use the Drupal /database() function, and then the ->query()->select() function. This way, we can use them. If we're going to use these functions inside a controller, we can inject the database service using dependency injection. We can declare the service name, create a container method, and include our database service. Once the first object of the class is initiated, the database service will be available.
So the function creates a user inside a condition. This condition is not required. They have a condition, and this is an instance of user.
The discount equals the original price times the discount percentage. Discount equals the discount plus the percentage divided by 100, into the original price. What needs to be changed is the line "discount equals the discount plus the percentage divided by 100, into the original price" to "discount equals the discount plus the percentage divided by 100, plus the original price". Once this will be changed, then it will give the expected discounted price of 85.
We can create a complex business logic Can Jupa model that can be unit tested without and we can use the we had to test the functional logic. I used to do the functional testing in many of my past projects, it's quite easy. We can do the end-to-end testing from start to end, like a user can log in. We can create a new user and then the user can perform some x number of operations based on the logic, and then after the user logs out, the user can be deleted also. And even the content or whatever changes according to our logic that needs to be tested, whatever the operation, I mean, to say, we can also do the cleanup of whatever the user has done on our site. So all this can be done using Behat, it's a behavior-driven programming. So it does not require any external dependency. It can be automatically done.
We Jenkins is an open-source technology. So, what we can do is install Jenkins in another active container tool, and we can clone the repository, set up a pipeline to clone it, then use the core build services of AWS to build the artifacts. Once the artifacts are ready, it will zip the file. And once the zip file is ready, we can use CodeDeploy to build it during the core build artifacts, and once the code is deployed, Jenkins will remove the build artifacts, the zip file, that we did. So, basically, Jenkins will remove the unused extra code that will not be required, like the code we zipped during the build artifacts, and all these kinds of things can be managed by Jenkins. So, in this way, we can efficiently manage and incorporate the GenzenCI, or I suppose you mean GitLab CI, along with the CICD pipeline.
Yeah. So in AWS, there are load balancers we can use the load balancer to efficiently optimize multiple applications. We have the application load balancer and the classic load balancer. So, the application load balancer is mostly used for the application and the API. The API that's exposed by the application, so it can efficiently manage the application response. And if we use the classic, then it will be used for the application front end. If both the front end and the back end are in the same technology, like Drupal. If we have different technologies, like printing in React or the backend in Drupal, then we can use the application load balancer.