AK
Vetted Talent

Arvind Kinja

Vetted Talent

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

  • Role

    Technical Lead/Sr. Drupal Developer

  • Years of Experience

    12 years

  • Professional Portfolio

    View here

Skillsets

  • Pantheon
  • HTML
  • HTML
  • Java
  • jQuery
  • JSON API
  • Lando
  • MariaDB
  • Migration
  • ML
  • Multilanguage
  • Multisite setup
  • Natural Language Processing
  • OpenID Connect
  • JavaScript - 14 Years
  • PLESK
  • Python
  • react
  • Server commands
  • Sso login
  • VM
  • Wordpress
  • XML
  • Azure
  • Kubernaties cluster
  • Best buy product catalogue api
  • Amazon product catalogue api
  • Google Tag Manager
  • PHP - 14 Years
  • AI
  • Angular
  • Apache Solr
  • AWS
  • AWS
  • Azure
  • CSS
  • D3js
  • Docker
  • Drupal commerce
  • Git
  • Git
  • Google Analytics
  • GraphQL
  • CSS
  • Drupal 7 - 12 Years
  • Node Js - 2 Years
  • MySQL - 14 Years
  • AJAX - 14 Years
  • REST API - 10 Years
  • Ecommerce - 12 Years
  • Python - 1 Years
  • Drupal - 12 Years
  • Acquia - 10 Years
  • Docker - 10 Years

Vetted For

10Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Lead Fullstack Developer (PHP & Dhrupal) - (Onsite, Coimbatore OR Chennai)AI Screening
  • 58%
    icon-arrow-down
  • Skills assessed :Api Security, CIvicCRM, DevOps, Jenkins, SQL, AWS, Drupal, JavaScript, jQuery, PHP
  • Score: 52/90

Professional Summary

12Years
  • Dec, 2022 - Jul, 20241 yr 7 months

    Sr. Technical Lead/ Sr Drupal Developer

    Ekfrazo Technologies Pvt. Ltd.
  • Apr, 2021 - Nov, 20221 yr 7 months

    Technical Lead/Sr. Drupal developer

    Adappt mobile cloud application Pvt Ltd
  • May, 2019 - Apr, 20211 yr 11 months

    Sr. Drupal Developer

    Axelerant Technologies Pvt. Ltd.
  • Aug, 2012 - Nov, 20164 yr 3 months

    Sr. Drupal Developer

    Smashing Infolabs Pvt Ltd,
  • Dec, 2016 - May, 20192 yr 5 months

    Sr. Drupal Developer

    WebDunia Pvt. Ltd.

Applications & Tools Known

  • icon-tool

    WordPress

  • icon-tool

    PHP

  • icon-tool

    XAMPP

  • icon-tool

    CSS3 & CSS5

  • icon-tool

    Javascript

  • icon-tool

    Net Beans

  • icon-tool

    Eclipse

  • icon-tool

    Docker

  • icon-tool

    Lando

  • icon-tool

    Azure

  • icon-tool

    AWS

  • icon-tool

    github

  • icon-tool

    MySQL

  • icon-tool

    FTP server

  • icon-tool

    Git

  • icon-tool

    Oracle

  • icon-tool

    REST API

  • icon-tool

    Node.js

  • icon-tool

    Python

  • icon-tool

    Apache

  • icon-tool

    Postman

  • icon-tool

    HTML5

  • icon-tool

    Ajax

  • icon-tool

    cPanel

  • icon-tool

    WampServer

  • icon-tool

    Slack

  • icon-tool

    Asana

  • icon-tool

    Jira

  • icon-tool

    Skype

  • icon-tool

    Google PageSpeed Insights

  • icon-tool

    Figma

  • icon-tool

    Visual Studio Code

  • icon-tool

    NPM

  • icon-tool

    FileZilla

  • icon-tool

    Microsoft Teams

  • icon-tool

    NetBean-IDE

  • icon-tool

    Zoho

  • icon-tool

    Google Tag Manager

  • icon-tool

    AWS (Amazon Web Services)

  • icon-tool

    jQuery

  • icon-tool

    Confluence

  • icon-tool

    Zoom

  • icon-tool

    XML

  • icon-tool

    Drupal

  • icon-tool

    GitLab

  • icon-tool

    GitHub

  • icon-tool

    DigitalOcean

  • icon-tool

    VirtualBox

  • icon-tool

    Azure Virtual Machines

  • icon-tool

    Win SCP

  • icon-tool

    VS Code

  • icon-tool

    VMware

  • icon-tool

    D3.js

  • icon-tool

    Azure DevOps Server

  • icon-tool

    Node Package Manager

  • icon-tool

    gulp

  • icon-tool

    HTML/CSS

Work History

12Years

Sr. Technical Lead/ Sr Drupal Developer

Ekfrazo Technologies Pvt. Ltd.
Dec, 2022 - Jul, 20241 yr 7 months
    • I created a custom module to Integrate the subscription API with Drupal commerce. For user authentication on the subscription API, I used secured API double obtain.
    • Worked on search API with solr service integration
    • Migrated images from the public directory to Azure blob storage.
    • Created a custom module for the product landing page to show the product variation without Ajax. I added an additional check from the commerce product custom field to show the variation.
    • Created a custom module to update the product information on the cron job in Nigeria night time.
    • Exposed the rest API endpoint to show the partner information on mobile app.
    • Setup headless Drupal and exposed the rest api for the react frontend.
    • Architecting and designing Drupal websites from scratch.
    • Manage team, task planning, and sprint planning. Code and functionality review with the Dev team to ensure quality.
    • Server management and configuration
    • Website performance optimisation
    • Install and maintain the security update on the sites.

Technical Lead/Sr. Drupal developer

Adappt mobile cloud application Pvt Ltd
Apr, 2021 - Nov, 20221 yr 7 months
    • Worked with US, UK, UAE and Japan-based clients. Meeting with clients for ongoing and new projects.
    • Architecting, Designing Drupal websites from scratch.
    • Managing team, Task planning, Sprint Planning.
    • Providing Technical guidance and support to the project dev teams
    • Code and functionality review with the Dev team to ensure quality
    • Develop and maintain applications using Drupal front and back-end development
    • Server management and configuration
    • Website performance optimization
    • Developed custom addon OpenID connect rest API module to login the user using azure active directory.
    • Migration site from Drupal 7 to Drupal 9 and Drupal 8 to Drupal 9.
    • Worked on headless Drupal, and rest API creation in Drupal for the front end.
    • Worked on multisite.
    • Multi-language architecture with or without multisite.
    • AWS, Azure, xampp, lamp and windows, VPS and dedicated server configuration.
    • Payment gateway integration and custom multi-step checkout form creation on the Drupal commerce site.
    • Worked on opigno learning management system.
    • Install and maintain the security update on the sites.

Sr. Drupal Developer

Axelerant Technologies Pvt. Ltd.
May, 2019 - Apr, 20211 yr 11 months
    • Worked with US facet interactive agency as a support developer for Drupal 7 and 8 projects.
    • Get the requirement from the client for the new feature enhancements, and bug fixes in the existing system.
    • Worked on a real state insurance application with over 150 custom modules, 400 contributed modules and one mobile application. Rest API from Drupal 7 was exposed that was used by the mobile application.
    • Worked on headless Drupal with react, created rest endpoint to expose the information from backend.
    • Docker environment setup. Docker Lando and lamp server for the local environment.
    • Drupal custom theme and module development.
    • Drupal configuration management and Drush commands Hands-on experience in Acquia, Pantheon, AWS and Platform.sh hosting server to manage Drupal projects.
    • Install and maintain the security update on the sites using the Drush make script.

Sr. Drupal Developer

WebDunia Pvt. Ltd.
Dec, 2016 - May, 20192 yr 5 months
    • Worked with US-based clients on news magazines and eCommerce sites.
    • Migrate the site from Drupal 7 to 8.
    • Custom theme creation from the design based on the bootstrap framework.
    • Custom module creation to integrate the blue state digital API in the site for transactional email, newsletter management, user sync, donation API and magazine subscription API.
    • Custom module creation to track the visitor information using google tag manager and google analytics.
    • Integrated google DFP.
    • Hands-on experience in Acquia, Pantheon, and AWS hosting servers to manage Drupal projects.
    • Custom module creation to import the products at a specific time using Drush and bash command the server.
    • Install and maintain the security update on the sites.

Sr. Drupal Developer

Smashing Infolabs Pvt Ltd,
Aug, 2012 - Nov, 20164 yr 3 months
    • Worked with Italy, Ireland and Netherlands-based clients.
    • Developed site from the scratch.
    • Drupal custom theme and module development.
    • Custom module creation to create the chart using the google chart and d3js chart API.
    • Import the data into the database from the CSV.
    • Worked on multi-language site.
    • Integrated google map location and OpenLayers map.
    • Amazon and best buy API integration.
    • Migrate the site from Drupal 6 to Drupal 7.
    • Worked on Drupal commerce and Ubercart for Drupal eCommerce sites.

Major Projects

3Projects

PLAY Portal

Ekfrazo Technologies Pvt Ltd.
Dec, 2022 - Jul, 20241 yr 7 months

    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: 

    • Setup the site architecture
    • Setup the commerce module
    • Setup search API for advanced search
    • Prepare a Docker file to deploy the image in the Azure container.
    • Migrate public files from the virtual machine to Azure blob storage.


    Critical ChallengesBackend:

    1. The search API indexing failed due to the Azure RDS primary key setting.
    2. Setting up search history when the user clicks on the search box is similar to the Google search engine.
    3. Customize the cart and payment page for variable prices for on-demand services.
    4. Calling additional API before and after subscription API to check whether the user session is still valid, and each API depends on the other API response.
    5. Storing logs of API that will be required to investigate in case the payment failed and the user was charged.
    6. Import the product from the API on the nighttime of Nigeria and reset the API date filter to fetch the new/updated records from the previous import date.


    Solutions Implementation:

    1. I did some investigations on it. I tried to override the parameter from the settings.php file, but that didn't work, so I created a patch for the search API module.
    2. I used views with search API and AJAX autocomplete to return the popular search result in autocomplete with the statics module. I used JS with cookies to store and show the recent search below the searchbox.
    3. There was one subscription where the user needed to enter the price amount in some range. I created a custom module. I created a custom module with a service class for DND, a subscription payment gateway, and a secured API to authenticate the user's transaction, whether it is a bot or a real transaction.
    4. There were too many use cases. The one API depends on the other API response, and we need to handle and store the API responses and also need to check if the API was down.
    5. Storing API logs and responses with each order in a fieldable database increases overhead in the database, so to overcome this issue, we stored the information in a private file system.
    6. I created a custom module to fetch the subscription product information from the product catalogue. The API response was in pagination. The variation was in a nested array, and there were a lot of manipulations before storing the information in the backend. I used the que API with controller queue and service worker class with cron tab to solve this.


    Critical ChallengesFrontend:

    1. Lazy loading of the home page sections
    2. Customize the add-to-cart form to remove the Ajax event and pass the additional parameter from the product variation custom field value to authenticate the user with a secured API and pass the plan details.
    3. Separate checkout complete page for success, failed, and pending screens.
    4. Customize the partner landing page for logged-in and non-logged-in users.
    5. Integrate the Oracle event API to track the user's complete lifecycle from add to cart till payment completion.


    Solutions Implementation:

    1. The site has around 4 million records. The home page has a lot of sections with images, so I loaded the first few sections, and then after a few sections, I loaded with Ajax.
    2. Changing the plan on the product cart was taking time due to AJAX, so I used the preprocess function to pass the variable in the twig and created an accordion with the data attribute to pass that information in the add-to cart. The cart button was custom. It was redirecting the user to another site for authentication and coming back on the checkout page with a third part to double-confirm before payment submission whether the user session is still valid or not.
    3. I created a custom route with dynamic parameters. The page was redirected from the checkout based on the API response.
    4. For logged-in users, we had to show the users subscription information based on the API response. There was an issue with caching, so I loaded the subscription information after page loading with Ajax.
    5. We had a PWA that was calling the API in twice, and it was creating duplicate entries in the Oracle tracking dashboard. I created a patch for PWA. I also added a conditional logic on the add to cart, checkout, and payment complete pages to execute the Oracle event based on the API response.


Oriental Trading Company

WebDunia Pvt. Ltd.
Apr, 2018 - May, 20191 yr 1 month

    Technologies Used: Headless Drupal, cron tab, bash script, Angular, Java, Skyword API, Rest API, Acquia


    Responsibilities:

    • Managing the project
    • Creating a custom module to expose the product information for the frontend team.
    • Run the product import at a specific time with the Drush and bash script in Acquia.
    • Java was used as an intermediate layer to handle the single cart feature for five sites.
    • Angular was used for frontend


    Critical ChallengesBackend:

    1. Returning more than 10K products with a single API response and all the necessary fields slow down the server, and sometimes it slows down the server also.
    2. Importing or updating only those products that were needed without doing operations on all the products and running the Drupal queue API at a specific time was quite complex.



    Solutions Implementation:

    1. I used cachable response in the custom module. I made the module fully dynamic with a field type helper function to return the field value. I used varnish cache to cache the API response and also used 1 day for cache expiration.
    2. I used ID and some additional parameters to check the existing product to see whether it has been updated or not. I used queue service worker, bash script, drush command, and Acquia cron tab to run the import at a specific time.



AMERICA MEDIA

WebDunia Pvt. Ltd.
Dec, 2016 - Mar, 20181 yr 3 months

    Technologies Used: Drupal 8, MySQL, CSS, JavaScript, BSD API, Pantheon, Migration, Drupal 7, Amazon Kindle


    Responsibilities:

    • Drupal 7 to Drupal 8 migration
    • Redesign the website
    • Twig template creation



    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.


    Education

    • MCA

      RGPV University (2012)
    • BCA

      MCRPV University (2009)

    Interests

  • Gyming
  • Learning
  • AI-interview Questions & Answers

    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.