profile-pic
Vetted Talent

Vivek Sj

Vetted Talent

Experienced backend developer with 6 years of hands-on experience in Python, specializing in the Django framework. Proven track record of designing and implementing scalable backend systems. Proficient in utilizing AWS services to create robust, cloud-based solutions. Skilled in optimizing database performance, ensuring data security, and developing RESTful APIs. Dedicated to delivering high-quality code and solutions that align with business objectives.

  • Role

    Software Engineer

  • Years of Experience

    5 years

  • Professional Portfolio

    View here

Skillsets

  • Linux
  • FastAPI
  • FPGA
  • Go
  • Go-fiber
  • IoT
  • JavaScript
  • Jupyter Notebook
  • Kali Linux
  • Data Science
  • Machine Learning
  • Mongo
  • Nodejs
  • PostgreSQL
  • Raspberry Pi
  • Swift
  • Windows
  • MySQL - 5 Years
  • CSS
  • C
  • Blockchain
  • Arduino
  • NLP - 4 Years
  • AWS - 2 Years
  • React Js - 2 Years
  • Bootstrap - 5 Years
  • PHP - 1 Years
  • HTML - 5 Years
  • Tableau - 1 Years
  • Android Studio - 3 Years
  • Python - 5 Years
  • Django - 5 Years
  • Django - 5 Years

Vetted For

6Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Backend Python DeveloperAI Screening
  • 72%
    icon-arrow-down
  • Skills assessed :Mongo DB, AWS RDS, MySQL, Django, Python, REST API
  • Score: 65/90

Professional Summary

5Years
  • Oct, 2023 - Nov, 2023 1 month

    Software Engineer

    Magic Factory
  • Apr, 2023 - Aug, 2023 4 months

    Software Engineer

    Kalagato
  • Jan, 2023 - Mar, 2023 2 months

    Software Engineer

    Lolly.com
  • Sep, 2018 - Jan, 20212 yr 4 months

    Software Engineer

    Ironhawks Technologies
  • Feb, 2021 - May, 20221 yr 3 months

    Software Engineer

    VHS Consulting
  • Jul, 2022 - Jan, 2023 6 months

    Software Engineer

    Accubits Technologies

Applications & Tools Known

  • icon-tool

    PHP

  • icon-tool

    HTML5

  • icon-tool

    RabbitMQ

  • icon-tool

    Celery

  • icon-tool

    MySQL

  • icon-tool

    Git

  • icon-tool

    Visual Studio Code

  • icon-tool

    PostgreSQL

  • icon-tool

    Python

  • icon-tool

    REST API

  • icon-tool

    SaaS

  • icon-tool

    Trello

  • icon-tool

    AWS (Amazon Web Services)

  • icon-tool

    Databricks

  • icon-tool

    Snowflake

  • icon-tool

    Apache Airflow

Work History

5Years

Software Engineer

Magic Factory
Oct, 2023 - Nov, 2023 1 month
    Developed APIs using Django and managed database operations, including schema design, ORM, and query optimization. Handled application deployment processes and managed data analysis tasks using Python and Pandas to meet business requirements. Implemented and refined machine learning models, aligning them with specific business needs to enhance decision-making processes.

Software Engineer

Kalagato
Apr, 2023 - Aug, 2023 4 months
    Mastered the creation of efficient backend systems using Go, coupled with the Fiber framework, emphasizing rapid processing and high scalability. Pioneered in structuring robust system architectures, optimizing database interactions for peak performance and reliability, leveraging Go's prowess in handling complex data structures. Excelled in crafting cutting-edge APIs, harnessing Go's capabilities for seamless and secure data communication between server and client-side applications.

Software Engineer

Lolly.com
Jan, 2023 - Mar, 2023 2 months
    Spearheaded the creation of FastAPI based APIs and orchestrated sophisticated database systems, focusing on efficient data structuring and streamlined query execution. Directed the deployment lifecycle of applications, coupling it with advanced data analysis utilizing Python and Pandas to fulfill specific organizational objectives. Engineered and optimized bespoke machine learning models to address unique business challenges, enhancing predictive analytics and strategic insights.

Software Engineer

Accubits Technologies
Jul, 2022 - Jan, 2023 6 months
    Develop and optimize Python applications using the Django framework, including debugging and creating unit tests. Implement machine learning algorithms, analytics systems, and perform data analysis. Present data insights through various visualization tools like Excel, Seaborn, and Tableau. Utilize AWS services such as Lambda, Sage Maker, and S3 for enhanced functionality and storage solutions.

Software Engineer

VHS Consulting
Feb, 2021 - May, 20221 yr 3 months
    Develop and maintain server-side components using Go and Fiber, ensuring database performance and seamless front-end integration. Manage database security and integrity, particularly for sensitive mortgage information. Utilize Django for efficient and secure Python development, focusing on backend functionality and platform security. Design customer-centric UI and robust backend services, prioritizing high performance and testability in business process management. Enhance system performance using Go's concurrency features and Fiber's architecture, ensuring scalability and efficiency. Implement comprehensive security measures and data storage solutions, including AWS services. Collaborate with teams for continuous feature development and user experience enhancement in the CRM system.

Software Engineer

Ironhawks Technologies
Sep, 2018 - Jan, 20212 yr 4 months
    Worked on developing efficient and scalable APIs using the Go programming language with fiber frame work and python with Django framework. Developed statistical machine learning solutions for business challenges, specializing in data mining and text analytics using R and Python. Generated insightful data visualizations for business analytics using tools like Tableau. Gained experience in training Artificial Intelligence Chatbots, enhancing interactive user experiences.

Achievements

  • National Level Hackathon winner held at SKSVMACET, Gadag, Karnataka during September 2019.
  • State Level Hackathon Winner held at TCE , Gadag during May 2019.
  • National Level Hackathon winner held at Sandbox Start ups during May 2018.
  • State Level Hackathon Winner held at KLS s VDIT during October 2018.

Major Projects

1Projects

Advanced CRM System for a Mortgage Company

    Developed an advanced CRM System for a mortgage company using Go and the Fiber framework for high-performance backend operations. The system streamlines mortgage management processes, offers seamless integration and robust data handling, and features secure and efficient data storage. Technologies used include Go with Fiber, MySQL, MongoDB, Python, and OAuth for security.

Education

  • Bachelor of Engineering (ECE)

    KLS Vishwanath Rao Deshpande Institute Of Technology (2019)

AI-interview Questions & Answers

Hi. My name is Vivek. I am from my city called Harvard. It's been 5 years. I'm into software development. I started my early days of career with some product-based startups as I entered. I migrated myself into a full-time role in a service-based industry where I worked for 2 years. I mean, I work with tech stuff like Python, data science, ML, front-end development, and back-end development. I worked with them for 2 years. Then I moved to TCS, and my role was as a C2H. I worked as a back-end developer, along with roles of data visualization and data scientist as well. So, I worked with them for approximately 2 years and 15 months. Then I migrated myself to a startup. So, I've worked with back-end development and data science. After that, I've been working with a lot of contractors on various tech sites, like Python, Django, FastAPI, and MongoDB, along with data science and data analysis. Yeah. For the period of 5 years, I've worked with various tech sites and companies. I've worked with different text tags, different companies, different applications, altogether, I'm close to 6 years. My hobbies are playing cricket, watching cricket, and movies. Yep. That's it.

Ensuring data consistency in Postgres SQL or any other database when integrating various data sources into an application is crucial. For this purpose, transactions or transactional databases ensure that a series of database operations either all succeed or all fail. This is essential for maintaining consistency, especially when multiple related operations need to be performed. The second thing is to always apply constraints. Constraints like primary keys, foreign keys, and unique checks help maintain data integrity as well. This ensures that only valid data is entered into the database. Additionally, ensure that you use data types effectively by choosing appropriate data types for each column to ensure that only valid data types are stored in each field. Normalization normalizes a database to reduce data redundancy and improve data integrity. This involves organizing tables, eliminating duplicate data, and ensuring data integrity. Regular audits and monitoring are also essential to check the database for inconsistencies. Implementing locking mechanisms at the table level or managing concurrency through stored procedures and triggers can also be useful. Using modes of isolation can encapsulate complex systems and ensure data manipulations. It's also essential to have backup and recovery plans in place. Make sure you have version control and database schema. Educating all kinds of users and developers is also important while implementing these best practices.

So how would you resolve issues with real-time data processing? Okay. So if I can think of something, I would answer it like this: I would consider resolving issues with respect to real-time data processing in Python. So, I think it will announce a lot of challenges such as latency, data volume, accuracy, and reliability as well. So I would consider steps like optimizing the data injection, ensuring that your data injection pipeline is efficient. Tools like Apache Kafka can handle high-throughput data streams with low latency. Efficient data storage is also essential. Once you have the data injection, make sure you have efficient data storage. Usage of databases optimized for real-time operations like Redis, InfluxDB, which can quickly read and write your operations. Parallel processing. Utilize Python's multi-processing or multi-threading capabilities to process the data in parallel. Celery can be useful for distributing tasks across multiple nodes. Consider using stream processing frameworks like Apache Flink, which are designed for real-time data processing and can integrate with Python. Also, maintain data caching to store frequent access data in memory, reducing access time. Optimize the algorithms you are using. Have a load balancing system and distribute the load evenly across the system to prevent any single point from being a bottleneck. Always have fault tolerance and redundancy. Implement a system that can handle failures gracefully. Always have real-time monitoring and alerts. Scale your systems vertically or horizontally. I would also consider regular optimization updates. Compliance and security are one thing I would take into consideration.

How would you go about integrating different data sources into unified system using Python and PostgreSQL or any other database? Okay. Okay. So, if I can think about the answer with respect to integrating different data source into unified system using Python or PostScript or any other database? So, like, includes, data extraction from various sources, transformation of this data into a consistent format, and then loading into database? So if I look at a broader picture, so we have to make sure that, the data sources like, we have tried it for all the data sources, either, say, API, CSV, or any other database. Understand the data format, the structure, the frequency of updates for each sources as well? Then choose a kind of a database system. Like, select a database like PostgreSQL, MySQL, call NoSQL option based on the data nature that is between structure and unstructured and the scalability needs? So design a unified data model, design a database schema that can accommodate data from all sources in a unified manner, considering normalizing and indexing and constraints for efficient data strength develop data extraction script ETLs like requests for API calls, pandas for data manipulation, Pysoc 2 for post cross connection, extract data from each use? Transform the data like, cleanse the data, aggregate and transform the data into consistent format, handle the missing data, duplicate data, and convert data type as needed. Then also look at data loading. Load the transformed data into the unified database system. schedule regular updates or implement a real time data stream if necessary. Build a data pipeline, automate the entire retail process? orchestration tools like Airflow and, Logoe can help us. Have a data integrity and consistency? Always optimize your performance for a faster data retrieval. Security and compliance is one thing. Testing and validation

To create a core packaging and release system in Python that integrates with a Node.js application, follow these steps: To create a core packaging with respect to Python and try to integrate it with Node.js, there are several steps. The goal is to ensure that the Python package is easily available, installable, and maintainable that integrates seamlessly with JSON. So, structure your Python code, organize your Python code into modules and packages. A typical structure includes separate directories for your code, testers, and documentation. Use setup tools like Setuptools in Python to create a setup.py file. This file includes the package name, version, and dependencies. Then, have a version control system like Git to manage your codebase. After that, go for Python package distribution. Build a package, create a distributed version of your package, then upload your package to a repository. For public packages, PyPI is the standard. For private packages, consider solutions like Artifactory or a private Py repository. To integrate with a Node.js application, Python or the Python runtime is available in the environment where Node.js is running. Then, you can automate the management of a Python dependency in your Node.js application. Put a simple script that explains this in Python, then use IPC, an inter-process communication mechanism, like HTTP, socket.io, gRPC, or even a state database, to automate releases using CICD. Note that you should have a trial process of Node.js to invoke a Python script's environment variables to manage.

Discuss a real-world instance where you had to apply principles of Cloud Architect to improve your code performance in a Python-based application. Okay, so one of the things I was designing a Python application designed for data analytics. So the application processes large datasets, which perform complex calculations and visualize results. Initially, it was deployed on a single server, but it faced performance issues due to increasing data volume and user base. So the challenges were scalability, difficulty in handling increased workload and concurrent users. There were also performance issues, slow processing of larger datasets, and reliability issues due to a single point of failure in the current setup. Cost was also a concern, as it was cost-effective. I made sure to apply Cloud Architect principles, including scalability with cloud services, elasticity, and utilizing cloud services like AWS EC2, which can scale up or down based on demand. I also implemented load balancing, using a load balancer to distribute new requests across multiple servers. Then, I used AWS Lambda to handle tasks in parallel, integrated Apache Spark and AWS EMR for distributed computing. So, we also made sure to have three buckets for Blob Storage to store large and unstructured data in cloud-based storage solutions. We implemented caching with Redis and Memcached on cloud platforms to enhance response time. We made sure to use a microservice architecture, making it more manageable and scalable. We also had a CICD pipeline implemented for automated testing. And finally, we implemented monitoring and optimization.

Alright. Okay. So to implement a singleton design pattern, right, in the provided Python code, a few changes are necessary, basically. A singleton pattern ensures that a class has only one instance and provides a global point of access to it. This pattern is often used in a scenario where having more than one instance of a class would lead to problems, such as conflicting requests or inconsistent state across instances. In database connection, it's commonly used to ensure that there's only one database connection shared with different parts of the application, so it can improve performance and avoid issues like connection leaks. So here are the changes which we need to implement for the singleton pattern. Create a class variable, a class variable that will hold a singleton instance. Modify the constructor. The constructor should not be used to create multiple instances, instead use a class method to control the instantiation, then have a private constructor make the constructor private to prevent the creation of multiple instances directly. Then have a class method for instance creation. Implement a class method that checks if an instance already exists, and if not, create one. So I would have a kind of method, which would have a new method, which is overridden to control the creation of a new instance. Then, the instance class variable is used to keep track of the instance. The init method is still there for any necessary initialization. But note that with this implementation, I am obtaining, it will be called multiple times unless guarded. We use the singleton pattern for database connections because resource management ensures that only one connection or a pool of connections is managed and shared. Gradual overhead or overload. Consistency. It guarantees that every part of the application uses the same database connection state. And finally, performance, it avoids the cost of opening and closing connections frequently, which can be significant in some applications.

And I'm okay. When I recalculate, if n is We are doing a recursion here as you're calculating n minus So, whatever the given Python function is, right, is a recursive implementation of the Fibonacci series. So the Fibonacci sequence is a series of numbers where each number is a sum of two preceding ones, Usually, starting with 0 and 1. In this implementation, however, the sequence starts with two ones. It is talking about two ones. So if I'm not on the function, if n is less than or equal to 2, the function returns 1. So this serves as the base case for the recursion and sets the first two numbers of the sequence to 1. For n greater than 2, the function returns the sum of the function itself called with n minus 1 and n minus 2, thereby summing up the two preceding values of numbers in a sequence. So the sum issues would be performance issues. With respect to the time complexity, this function has exponential time complexity because it recalculates the same value multiple times. As n increases, the number of function calls grows exponentially, leading to significant performance issues. Then we have no input validation. The function does not handle invalid input, for instance, if a negative number or a non-integer is passed. The function will either enter an infinite recursive loop in the case of a negative integer or raise a type error in the case of a non-integer. There's an overflow risk, due to the recursive nature and lack of termination condition. For negative n, calling the function with a larger value of n would lead to a Stack Overflow error. Then, inefficient base case, this function would be slightly more effective if it is directly returned n for the base case when n is equal to 0 and n is equal to 1, aligning it with the standard Fibonacci sequence. And, producing the correct number for small values of n. Basically, to improve the function, right, if we would implement memoization to store and reuse previously computed values or use an iterative approach to calculate the Fibonacci sequence, both of which would significantly improve its efficiency. So, for handling inputs, adding input validation checks would be more beneficial.

What Python frameworks do you prefer for server-side logic, and why does that ensure the high responsiveness of a web application. Okay. If I can think of this with respect to Django here. So whenever I think about Python frameworks for server-side logic, the two widely preferred frameworks are Django and Flask. The choice between them depends upon the specific need and the scale of the project. So, Django is a fully featured framework. Django is a high-level framework that allows a "batteries included" philosophy. It includes an ORM, object-relational mapper, an admin panel, forms, authentication support, and many more features out of the box as well. The ORM layer in Django allows developers to interact with the database using Python objects instead of writing raw SQL queries, speeding up the development and reducing errors. Security-wise, Django has built-in protection against many common security threats like SQL injection, cross-scripting, CSRF attacks, enhancing the security of the web application. Scalability, while Django can handle high traffic, proper architecture and scaling strategies like database optimization, caching, and load balancing are essential. Community and ecosystem-wise, being a mature framework, Django has a large community and extensive documentation, which is beneficial for troubleshooting and finding resources on plugins. It also ensures high responsiveness in Django. Effective database queries can be achieved by using Django's ORM effectively, optimizing database queries and indexing can significantly improve your response time. You can implement caching strategies. Django supports asynchronous use from 3.1. Middleware optimizations can be done with third-party applications.