profile-pic
Vetted Talent

Nishith Alva

Vetted Talent

As a seasoned Ruby on Rails developer with 4.8 years of experience, I bring a strong foundation in building robust and scalable web applications. My technical skills include proficiency in Ruby, HTML, CSS, and JavaScript, as well as experience designing and implementing micro-services, working with Docker, Elastic Search, TDD like RSpec and utilizing Amazon Web Services (AWS) functionality.


Throughout my career, I have had the opportunity to work on a variety of projects, from building complex web applications to optimizing existing systems for performance and scalability. I am passionate about staying up-to-date with the latest technologies and continuously learning to improve my skills.


In my current role, I have successfully worked with team of developers in designing and implementing a micro-services architecture for a large-scale web.I have also worked extensively with AWS, utilizing services such as EC2, S3, and RDS to deploy and manage applications in the cloud.


I am a team player who values collaboration, communication, and delivering high-quality results. I am always looking for new challenges and opportunities to grow as a developer and contribute to exciting projects.


If you are looking for a skilled and experienced Ruby on Rails developer, I would love to connect and discuss how I can contribute to your next project!

  • Role

    Senior software Engineer

  • Years of Experience

    5 years

Skillsets

  • MS SQL
  • SQLite
  • S3
  • Ruby
  • Rails 7.x
  • Rails 5.x
  • Rails 4.x
  • Postgress
  • MySQL
  • AWS
  • JavaScript
  • HTML
  • HTML
  • Elasticsearch
  • Docker Container
  • CSS
  • CSS
  • AWS

Vetted For

12Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Ruby on Rails DeveloperAI Screening
  • 51%
    icon-arrow-down
  • Skills assessed :UI/UX Design, website maintenance, Heroku, MVC Architecture, RESTful API, AWS, CSS3, HTML5, JavaScript, jQuery, Ruby on Rails, TDD
  • Score: 46/90

Professional Summary

5Years
  • Apr, 2023 - Present2 yr 7 months

    Senior software Engineer

    Robosoft Technologies PVT LTD
  • Apr, 2021 - Mar, 20231 yr 11 months

    Software Engineer

    Robosoft Technologies PVT LTD
  • Mar, 2019 - Mar, 20212 yr

    Trainee Software Engineer

    Robosoft Technologies PVT LTD

Applications & Tools Known

  • icon-tool

    AWS

  • icon-tool

    S3

  • icon-tool

    ElasticSearch

  • icon-tool

    Docker

  • icon-tool

    VSCode

  • icon-tool

    Sourcetree

  • icon-tool

    Postman

  • icon-tool

    Pivotal

  • icon-tool

    Jira

  • icon-tool

    Teams

  • icon-tool

    Outlook

  • icon-tool

    Git

  • icon-tool

    Redis

  • icon-tool

    Sidekiq

  • icon-tool

    AWS S3

  • icon-tool

    AWS SES

  • icon-tool

    AWS IAM

  • icon-tool

    AWS ELB

Work History

5Years

Senior software Engineer

Robosoft Technologies PVT LTD
Apr, 2023 - Present2 yr 7 months
    Started to work with AWS domain exploring various AWS functionalities like Load balancer, Simple email Service, Elastic search etc.. Responsible for Building scalable Application to handle huge request. Started working with Redis, Sidekiq,Sonarqube etc. Responsible for Code review and mentorship within the organisation. Clean and maintainable coding practice using sonarqube. Optimised ORM queries to handle huge database transaction.

Software Engineer

Robosoft Technologies PVT LTD
Apr, 2021 - Mar, 20231 yr 11 months
    Started adding new features to the Application like search engine etc. Started taking responsibilities of the project and analysing Client requirement and converting them to a defect free feature. Started working independently in multiple project without any supervision. Implemented TDD using RSpec for many applications. Integrating 3rd Party APIs to the existing Application as per client requirement. Working with Microservice Architecture. Integrated AWS secret manager for security and scalability of the the product. Dockerising the existing project to eleminate OS dependencies within the team.

Trainee Software Engineer

Robosoft Technologies PVT LTD
Mar, 2019 - Mar, 20212 yr
    Started with ruby from scratch as a fresher. Underwent training in Ruby and Rails Framework and was able to clear all the assessment. Landed into a first project for a reputed client. Built a Web application backend from scratch.

Achievements

  • Started working with AWS domain
  • Building scalable applications
  • Code review and mentorship
  • Clean and maintainable coding practice
  • Optimized ORM queries
  • Implemented TDD using RSpec
  • Integrated 3rd Party APIs
  • Dockerizing the existing project

Major Projects

5Projects

My Knowledge APP

    Backend Application using ROR to manage technical content based on user certification. Application supported large video and pdf file upload using AWS S3. It consisted of a most optimised search engine using Elasticsearch and Search-kick library of Rails. Secrets were stored in AWS secret Manager to enhance security. AWS IAM User to authenticate the application to use AWS. Used AWS signed URL for direct upload of large files to S3. Challenging work to build email templates which rendered properly in Outlook email client, which was achieved after long trail and error.

Fibonacci

    ROR project to handle XML, XDM and JSON data uploaded by various user from their printer. Application was capable of handling about 50000+ plus request per day. Application employed Sidekiq for Asynchronous process, Redis for cache, EFS for File Storage and AWS SES for delivering email from backend. AWS autoscaling to scale out and scale in EC2 instance based on load. Colabaration with Devops to meet cyber security requirment by patching the server in regular basis(Adding and removing EC2 instance from ELB) Played a major role in migrating MySQL RDS from 5.7 to 8 Played a vital role in reducing AWS resource for cost effective system by avoiding same exception email triggering within a specific time range, reducing instance count etc. Worked with legacy code base to upgrade most of feature according to customer need.

PWP Installation

    Web app to monitor printer installation progress. Worked with Delayed Job to handle background jobs. Develop REST API for front-end application and collaborate with the frontend team to integrate these APIs. RSpec Test cases to meet 80 percentage code coverage. Responsible for fixing all code smell, bugs and vulnerabilities raised in SonarQube.

Web EOI

    Web app to complete a End of Installation Survey for a reputed client. Application is used to track the printer installation done to its client and keep a track of obstacles faced by the installer. Application employed Sendgrid to provide updates using email services. RSpec Test cases to meet 80 percentage code coverage. Responsible for fixing all code smell, bugs and vulnerabilities raised in SonarQube. Worked with Delayed Job to handle background jobs like sending emails and performing some scheduled jobs. Feature to download App data in CSV format for data computation. Dockerised the project to remove OS dependencies within the team members.

Service Center

    Web app to maintain customer device, troubleshoot, raise technical ticket, subscription for various plan etc. Migration from Monolithic Architecture to Microservices Architecture to segregate various business logics. Rspec for wide code coverage. Sonarqube standard coding practice. Coordinate with Frontend, IOS and android developer to integrate the APIs. AWS functionality like AWS S3, Secret Manager, AWS SES. Monthly Report in Email using scheduler.

Education

  • Bachelor of Engineering

    Canara Engineering College, Mangalore (2019)

AI-interview Questions & Answers

Okay. So my name is Nishith Alva. I'm a software engineer with the experience of 4 0.8 years in Robosoft Technologies Private Limited. I started as a fresher here and got promoted to software engineer and later to senior software engineer. My basic responsibilities here is I'm responsible for implementing client requirements by making sure, like, converting all create designing all the architecture elements, like example, uh, EC 2 instances or any RDS we use or if we have any load balances required. We are supposed to design those things and set up an edge high level design using the AWS available platform. Once the design is approved, we can go with the coding. Like, what is the requirement for the application? For example, designing, uh, associations in the database, creating a schema for all the data which has to be used in the application. And I'm also responsible for gathering the requirement from the client. And I I have a, uh, better experience in Ruby on Rails for about 4.8 years. I have this I worked on 4 to 5 projects in Robosoft Technology. And, uh, regarding my personal thing, I am a good teamwork team player. I have worked in team and also worked in individual projects. I can bring value to your company by adding, uh, or using my skills and abilities to align with your requirement and also my personal growth and company's growth. Thank you.

Okay. The effective strategies for managing stateful in the customer facing application deployed on AWS is like we have to make sure all the all the infrastructures are utilized properly, and there is no wastage of resource. If there is any you requirement or the requirement for scaling the application, we have to go for it and make sure right amount of resource is made available for the application instead of wasting the resource. Hence, AWS is a costlier resource. And statefulness, like, you the application should be user friendly. There should not be any glitch or any bug available for the user, and the user experience should be smooth. And, uh, we should make sure that all the data input and output is precise, and there is no any data breach happening or any security comp compromise held in the application.

Heroku is a similar platform like AWS where we can deploy our rails application, and they they make sure they make available some of the deployment tools in background processes so that once the application there is any change in the source control, the application would be automatically deployed to Heroku.

Okay. Rails, make sure there is some inbuilt, uh, libraries for this. So what we can do is we can enable course course, like, same site origin. Uh, like, it is made mandatory, and we can use strong parameters so that there is no SQL injection, which happens from the hacker side. And we can also make sure there are some callbacks before writing or reading the data from the database and to avoid unauthorized reach of data. And, uh, make sure all the passwords are encrypted and stored in the DB. And we have a strong encryption strategy to make it happen.

Okay. So the testing strategy ensuring MOC components in Rails is like we can write our spec test cases so that all the APIs which we provide for the Ajax call is, uh, already tested, and it is bug free. And we can write some pictures to inject some data to the test cases and replicate, uh, Ajax call within the back end to make sure all the APIs are returning and getting a proper data.

So rails basically employs MVC architecture, the model view controller. So model is we all write all the logics inside the model, the business logics, uh, if any database write or read query happening or any callbacks before the writing or reading the data, we have to write it inside the model and all the instance variable private method, uh, public method of a class. Basically, uh, database is considered as class in rails. So this is regarding model. Then we there comes the view view is the part where the user interacts with the application. This contains all the templates related to HTML, CSS. All those data is all those codes are retained inside the user. And the third part is the controller. This acts as a bridge in between the model and the view. So user is redirected to some set of actions using the routes, and, uh, responsible views is rendered, and some data is fetched from the model and given back to the view.

So we have 2 methods written in this, the def require admin, which redirects to root path unless the current user is not is admin. So current user dot admin should return false for this to happen. Then comes the find user where it initializes a user instance variable with the user dot find. So para params is passed with the ID. The method just basically fetches the data from user table where the ID is given in the params. So before these actions happen, we have something called before action. This is a callbacks happening. So before require admin to, uh, uh, compile, we have to do like, before find user should happen, what we have to do is, like, uh, we have to call the require admin method, like only new and create. So if there is any new method initiated in the controller or create method before creating that new and create calling that new and call create method, we have to call require admin. Basically, it is checking whether the user is admin or not. So if the user is admin, it will it will just, uh, pass the condition and, uh, go with the new and create method. If the user is not admin, it will just redirect the user to the root path. Then comes the find user, when to call the find user. So there, they have mentioned expect an index and new and create all before calling. Uh, when the index or newer create method is called, we should not call find user method. For the rest of the method, we should call the find user method before calling any of such method. So only and expect defines that if only when the those particular method is called, these callbacks has to happen. If it is given as expect, we are not supposed to call that callbacks before executing those methods.

So, basically, this method just, uh, tries to fetch the users with all the association regarding the articles. For example, if a user has many articles, it will fetch all the articles in one go and perform somewhere clause on those articles. So where, again, it is going to fetch the articles where published equal to true, and it will limit the number of articles to 10. So instead of writing this in single query, what we can do is we can just assign a user's variable with this user dot includes articles where articles pub is published equal to true. Now and then instead of doing where clause in single, then we just fetch all the data to array and then do the where clause on those array. And then limit it to 10 instead of doing it inside the array.

We can basically use some CSS used for animations and implement it in the class of HTML. So that's how we can do some animated transitions in Rails application views.

The JavaScript code quality can be maintained by not reusing the same code in the, uh, repeating way. Like, we can use like, if the file has to be loaded in every steps, we can avoid that and load it before the execution of programs happen. So we can go with the synchronous way. If the if there is any data which, uh, takes lot of time to process in background, then we can go with an asynchronous way using JavaScript callbacks. And that's how we can highlight the techniques of ensuring JavaScript code quality during development of rail Rails application.