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 - Present3 yr 3 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 - Present3 yr 3 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

My name is Nishith Alva. I'm a software engineer with approximately 4.8 years of experience 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 include being responsible for implementing client requirements by making sure all client requirements are converted into design and architecture elements, such as EC2 instances or any RDS we use or if we have any load balances required. We are supposed to design those things and set up a high-level design using the AWS available platform. Once the design is approved, we can proceed with the coding. Like, what are the requirements for the application? For example, designing associations in the database, creating a schema for all the data that will be used in the application. I'm also responsible for gathering requirements from the client. I have better experience in Ruby on Rails for approximately 4.8 years. I have worked on 4 to 5 projects in Robosoft Technology. And, regarding my personal qualities, I am a good team player. I have worked in teams and also worked on individual projects. I can bring value to your company by using my skills and abilities to align with your requirements and also contribute to my personal growth and the company's growth. Thank you.

The effective strategies for managing stateful applications in a customer-facing application deployed on AWS is that we have to make sure all the infrastructure is utilized properly, and there is no wastage of resources. If there's any requirement or the requirement for scaling the application, we have to go for it and make sure the right amount of resources is made available for the application instead of wasting resources. Hence, AWS is a costlier resource. And, statefulness requires that the application should be user-friendly. There should not be any glitches or bugs available for the user, and the user experience should be smooth. And we should make sure that all data input and output is precise, and there is no data breach or security compromise held in the application.

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

Okay, Rails makes sure there are some inbuilt libraries for this. So what we can do is we can enable same site origin. 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 to avoid unauthorized access of data. And, make sure all the passwords are encrypted and stored in the DB. 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 are already tested, and it is bug-free. And we can write some pictures to inject some data to the test cases and replicate the Ajax call within the backend to make sure all the APIs are returning and getting proper data.

So rails basically employs MVC architecture, the model view controller. The model is where we write all the logic inside the model, the business logic. If any database write or read query happens or any callbacks before writing or reading data, we have to write it inside the model, and all instance variables, private methods, and public methods of a class. In rails, the database is considered as a class. This is regarding the model. Then there comes the view, which is the part where the user interacts with the application. It contains all the templates related to HTML, CSS. All that data is retained inside the user. And the third part is the controller. This acts as a bridge between the model and the view. The user is redirected to some set of actions using routes, and responsible views are 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 an admin. So current user admin should return false for this to happen. Then comes the find user where it initializes a user instance variable with the user find. So 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 callback happening. So before require admin to compile, we have to do before find user should happen, what we have to do is we have to call the require admin method only for 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 just pass the condition and 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. When the index or new 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 those particular method is called, these callbacks have 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 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 some operation on those articles. So, where it is going to fetch the articles where published is true, and it will limit the number of articles to 10. So instead of writing this in a single query, what we can do is we can just assign a user's variable with this user's articles where articles published is true. Now, instead of doing the where clause in one go, then we just fetch all the data to an array and then do the where clause on those arrays. 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 repeating way. Like, we can use if the file has to be loaded in every step, we can avoid that and load it before the execution of programs happens. So we can go with the synchronous way. If there is any data which takes a lot of time to process in the 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 the development of a Rails application.