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. Technical Lead/ Sr Drupal Developer
Ekfrazo Technologies Pvt. Ltd.Technical Lead/Sr. Drupal developer
Adappt mobile cloud application Pvt LtdSr. Drupal Developer
Axelerant Technologies Pvt. Ltd.Sr. Drupal Developer
Smashing Infolabs Pvt Ltd,Sr. Drupal Developer
WebDunia Pvt. Ltd.WordPress
PHP
XAMPP
CSS3 & CSS5
Javascript
Net Beans
Eclipse
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
Confluence
Zoom
XML
Drupal
GitLab
GitHub
DigitalOcean
VirtualBox
Azure Virtual Machines
Win SCP
VS Code
VMware
D3.js
Azure DevOps Server
Node Package Manager
gulp
HTML/CSS
Technologies Used: Drupal 9, Subscription API, secured API, DND API, product catalogue API, catchup TV API, OTM Ad API, Callerfeel API, Docker, Azure blob storage, Azure RDS, Azure Kubernetes, Bootstrap, JS, CSS, Search API, Drupal commerce, Cron Job, Auth0 SSO login, Google Analytics, Oracle event API
Responsibilities:
Critical ChallengesBackend:
Solutions Implementation:
Critical ChallengesFrontend:
Solutions Implementation:
Technologies Used: Headless Drupal, cron tab, bash script, Angular, Java, Skyword API, Rest API, Acquia
Responsibilities:
Critical ChallengesBackend:
Solutions Implementation:
Technologies Used: Drupal 8, MySQL, CSS, JavaScript, BSD API, Pantheon, Migration, Drupal 7, Amazon Kindle
Responsibilities:
Critical ChallengesBackend:
The initial version of Drupal 8 was just launched, and we had a very tight deadline to complete the project in 2 months.
Solutions Implementation:
I did a lot of research for custom module creation since I was new to Drupal 8. Drupal 8 code was purely based on OOPS, so the debugging was quite complex. I used the devel module and breakpoint in the code to debug the code.
Critical ChallengesFrontend:
Passing information from the preprocess function to Twig was complex since we were new in Drupal 8 and the initial version was just launched. A minor code mistake throws a website encounter error.
Solutions Implementation:
I researched the core theme for creating a Twig template, used the Twig template debug function, and did some research on how to write a Twig plugin.
Yeah. So my name is Arvin, and, uh, I belong to MP. And, uh, I started my graduate career with Drupal 5. And, currently, I'm working on Drupal 7, 9, and, uh, Drupal 10 projects. And recently, I migrated one project from Drupal 9 to 10. And, uh, we do have 1 more project, uh, where we are planning to migrate from Drupal 7 to Drupal Tint. And, uh, 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 the API integration project, where we are handling the, uh, 25,000,000 users request, uh, in each day. So that's all about me.
So to implement the object oriented principle, uh, we do have, uh, some setup for Drupal standard method, And, uh, to pull a standard code coding standard, like, uh, we have to use the dependency injection in our code. So, Uh, like, uh, if we are going to create a new form, so we will, uh, use the Drupal, Uh, form based class. We extend the form based class and, uh, override the existing, uh, form based class method to to create a new form. And, uh, let's say, if you want to, uh, use any services, then we will inject the services inside the container. So, uh, in this way, we will efficiently use the Drupal, coding stringer along with, uh, uh, object oriented programming.
Uh, so to implement the full text search, we can use the 3rd party search, uh, like, uh, the solar search or elastic search. So here, uh, we we do have 1 more search. Like, we can use the Drupal database search, but the Drupal database search, uh, will affect the Jupyter performance, so all the content will go for the indexing indexing to the, uh, solar search, uh, most mostly, we use the solar search for the and missing the content, and the data will be stored in the, uh, an a structured format in the software, and the search will be fast, uh, rather than the structured query language, so we use the SOLUSARCH. Uh, we use the core search API model, and along with search API model, we have some, uh, additional model. So we create, uh, search, uh, the Solrsearch, uh, database, and, uh, we create a new search uh, index based on the, uh, solar index, uh, solar database. And, uh, from this, uh, either we can create, uh, search API page, or we can create a view page that, uh, that can use is the, uh, new Solr index that we have created. So the search will be fast, and, uh, we can use the reverse proxy, like, uh, CloudFront uh, CloudFront to our initial port caching mechanism to make it more fast.
So the most efficient way to make the Drupal module, Reusable component in other applications like, uh, we can create services. So services can be used to anywhere in the, Uh, sites like, uh, let if we can also create a controller, or We can, uh, we can create interface. So interface can be over written by the any other class, Or, uh, we can create services. So services can be used in theme also. So Some the most efficient way to create either services, Drupal services, or the interface. So if we go with the Drupal services, then we have to define the services, It's a model name dot services dot yml file, where we will define the service name along with additional parameter. Uh, we can also inject other services, And, uh, we can define the service class name. So the service class name can be inside the module root folder, uh, inside the src folder. And, uh, in the service class name, we can Include the other controller classes or core classes, like, uh, users or, Uh, no taxonomy is per our requirement.
So, We can use the. Uh, third party tool or there are some predefined tools, uh, like, uh, that is available in the It appears, uh, the code builder and code deploy tools, uh, that we can use, uh, to deploy the our code. So the code build will take the clone of, uh, get the repo, Uh, with the CICD pipeline. And once that defects is ready, then the code deploy We'll deploy the code in the
Yeah. So to prevent the SQL injection attacks, in Drupal, uh, database layer, so Drupal already have the mechanisms to prevent the SQL injection, like, uh, it is the proper function around the triple, uh, database queries, like, uh, we cannot write the plain query in Drupal. Uh, there are some predefined functions and the service available for the database, so, uh, we can use it. Uh, so if you want, we we are going to use it inside the model file, then the, uh, it would be like, uh, Drupal, uh, / Drupal, colon, database, uh, parenthesis, and then the, functioning, uh, arrow select function. So in this way, we can use it. If we are going to use it inside the controller, then, uh, we can inject with the dependency injection, like, we can declare the, uh, service name, and then we can, uh, include, uh, it we can create a container method. Creator we can create method inside the controller and, uh, include the our, uh, database services, and then we can have the so once the if we are going to include it inside the, uh, controller, so whenever the first object of the class will be initiated, then the, uh, database, uh, service will be available.
So the function, Uh, create user inside a condition. Uh, this is, The condition is not required. They have condition, and this is instance of user.
Okay. So, The discount equal to original price into discount percentage. Uh, this line needs to be changed to, Uh, discount equals to discount plus percent divided by 100 Into original price. So this line should be changed. Again, I'm repeating, Uh, what needs to be changed? Uh, discount equals to discount percent divide by 100 Into original price. So once this will be changed, then it will give the expected, Uh, discounted price, uh, 85.
Yeah. We can create a complex business logic Can Jupa model? That could be unit tested without And, uh, we can use the we had to to test To the functional logic, uh, I used to be had in many, uh, my past project To do the functional testing, uh, it's, uh, quite easy. We can, Uh, do the end to end testing from start to end, like, uh, a user can log in. We can create a we can even create a new user with we had, and then user can do some x number of, uh, Okay. User can do some x number of, uh, perform, uh, do the perform the operations, uh, based on the logic, uh, and And then after user logout, and then user can be deleted also. And, uh, even the content or whatever the changes according to our logic that needs to be tested, uh, whatever the operation, Uh, I mean, to say the we can also do the cleanup whatever, uh, user has done in our site. So all this can be done using the Behat. It's a behavior driven programming. So it does not require any external dependency. It can be automatically
Yeah. So we Jenkins is a open source technology. So What we can do, we can install the Jenkins in another AC tool stands, and we can, Uh, clone the we can set up a pipeline to clone the repo, Uh, then we can use the core build services of AWS to build the artifacts. Then once the artifacts is ready, it will zip the file. And, uh, once the zip file is ready, then we can use the code deploy, uh, that was Build it during the core build artifacts, and, uh, once their code will be deployed, uh, then Jenkins will, Uh, remove the, uh, build the artifacts, uh, the the zip to file, uh, that we did. So, basically, Jenkins will remove the unused extra code that will not be required, like, uh, that we did to zip file during the build artifacts and all these kind of things can be managed by Jenkins. So in this way, we can efficiently manage, uh, the We can incorporate the Genkency IC along with the CICD pipeline.
Yeah. So in AWS, Uh, there are load balancer call we can use the load balancer to, uh, efficiently optimize the multiple Ajax 1st, uh, like, uh, we have the application load balancer and, uh, the classic load balancer. So, Application doorbell, sir, is mostly used for the application and the API The API, uh, that was, uh, exposed by the application, so, Uh, it can efficiently manage the application, uh, response. And if we We use the classic, uh, then it will be used for the, uh, if the application, uh, front end, they can both are in the same, uh, technology like Drupal. If we have the different technology like, uh, printing in the React or backend in Drupal, then we can use the application load balancer.