Padma Award Winners 2024

Padma Awards – one of the highest civilian Awards of the country, are conferred in three categories, namely, Padma Vibhushan, Padma Bhushan and Padma Shri. The Awards are given in various disciplines / fields of activities, viz.- art, social work, public affairs, science and engineering, trade and industry, medicine, literature and education, sports, civil service, etc. ‘Padma Vibhushan’ is awarded for exceptional and distinguished service; ‘Padma Bhushan’ for distinguished service of high order and ‘Padma Shri’ for distinguished service in any field. The awards are announced on the occasion of Republic Day every year.

2. These Awards are conferred by the President of India at ceremonial functions which are held at Rashtrapati Bhawan usually around March / April every year. For the year 2024, the President has approved conferment of 132 Padma Awards including 2 duo cases (in a duo case, the Award is counted as one) as per list below. The list comprises 5 Padma Vibhushan, 17 Padma Bhushan and 110 Padma Shri Awards. 30 of the awardees are women and the list also includes 8 persons from the category of Foreigners / NRI / PIO / OCI and 9 Posthumous awardees. 

Padma Vibhushan (5)

SNNameFieldState/Region/Country
1Ms. Vyjayantimala BaliArtTamil Nadu
2Shri Konidela ChiranjeeviArtAndhra Pradesh
3Shri M Venkaiah NaiduPublic AffairsAndhra Pradesh
4Shri Bindeshwar Pathak
(Posthumous)
Social WorkBihar
5Ms. Padma SubrahmanyamArtTamil Nadu

Padma Bhushan (17)

SNNameFieldState/Region/Country
6Ms. M Fathima Beevi
(Posthumous)
Public AffairsKerala
7Shri Hormusji N CamaLiterature & Education – JournalismMaharashtra
8Shri Mithun ChakrabortyArtWest Bengal
9Shri Sitaram JindalTrade & IndustryKarnataka
10Shri Young LiuTrade & IndustryTaiwan
11Shri Ashwin Balachand MehtaMedicineMaharashtra
12Shri Satyabrata Mookherjee
(Posthumous)
Public AffairsWest Bengal
13Shri Ram NaikPublic AffairsMaharashtra
14Shri Tejas Madhusudan PatelMedicineGujarat
15Shri Olanchery RajagopalPublic AffairsKerala
16Shri Dattatray Ambadas Mayaloo alias RajduttArtMaharashtra
17Shri Togdan Rinpoche
(Posthumous)
Others – SpiritualismLadakh
18Shri Pyarelal SharmaArtMaharashtra
19Shri Chandreshwar Prasad ThakurMedicineBihar
20Ms. Usha UthupArtWest Bengal
21Shri Vijaykanth
(Posthumous)
ArtTamil Nadu
22Shri Kundan VyasLiterature & Education – JournalismMaharashtra

Padma Shri (110)

SNName FieldState/Region/Country
23Shri Khalil AhamadArt Uttar Pradesh
24Shri Badrappan MArt Tamil Nadu
25Shri Kaluram BamaniyaArt Madhya Pradesh
26Ms. Rezwana Choudhury BannyaArt Bangladesh
27Ms. Naseem BanoArt Uttar Pradesh
28Shri Ramlal BarethArt Chhattisgarh
29Ms. Gita Roy BarmanArt West Bengal
30Ms. Parbati BaruahSocial Work Assam
31Shri Sarbeswar BasumataryOthers – AgricultureAssam
32Shri Som Datt BattuArt Himachal Pradesh
33Ms. Takdira BegumArt West Bengal
34Shri Sathyanarayana BeleriOthers – Agriculture Kerala
35Shri Drona BhuyanArt Assam
36Shri Ashok Kumar BiswasArt Bihar
37Shri Rohan Machanda BopannaSports Karnataka
38Ms. Smriti Rekha ChakmaArt Tripura
39Shri Narayan ChakrabortyScience & Engineering West Bengal
40Shri A Velu Ananda ChariArt Telangana
41Shri Ram Chet ChaudharyScience & Engineering Uttar Pradesh
42Ms. K ChellammalOthers – Agriculture Andaman & Nicobar Islands
43Ms. Joshna ChinappaSports Tamil Nadu
44Ms. Charlotte ChopinOthers – YogaFrance
45Shri Raghuveer ChoudharyLiterature & Education Gujarat
46Shri Joe D CruzLiterature & Education Tamil Nadu
47Shri Ghulam Nabi DarArt Jammu & Kashmir
48Shri Chitta Ranjan DebbarmaOthers – SpiritualismTripura
49Shri Uday Vishwanath DeshpandeSports Maharashtra
50Ms. Prema DhanrajMedicine Karnataka
51Shri Radha Krishan DhimanMedicineUttar Pradesh
52Shri Manohar Krishana DoleMedicine Maharashtra
53Shri Pierre Sylvain FilliozatLiterature & Education France
54Shri Mahabir Singh GudduArt Haryana
55Ms. Anupama HoskereArt Karnataka
56Shri Yazdi Maneksha ItaliaMedicineGujarat
57Shri Rajaram JainLiterature & Education Uttar Pradesh
58Shri JankilalArt Rajasthan
59Shri Ratan KaharArt West Bengal
60Shri Yashwant Singh KathochLiterature & Education Uttarakhand
61Shri Zahir I KaziLiterature & Education Maharashtra
62Shri Gaurav KhannaSports Uttar Pradesh
63Shri Surendra KishoreLiterature & Education – JournalismBihar
64Shri Dasari KondappaArt Telangana
65Shri Sridhar Makam KrishnamurthyLiterature & Education Karnataka
66Ms. Yanung Jamoh LegoOthers – Agriculture Arunachal Pradesh
67Shri Jordan LepchaArt Sikkim
68Shri Satendra Singh LohiaSportsMadhya Pradesh
69Shri Binod MaharanaArt Odisha
70Ms. Purnima MahatoSports Jharkhand
71Ms. Uma Maheshwari DArt Andhra Pradesh
72Shri Dukhu MajhiSocial Work West Bengal
73Shri Ram Kumar MallickArt Bihar
74Shri Hemchand ManjhiMedicine Chhattisgarh
75Shri Chandrashekhar Mahadeorao MeshramMedicine Maharashtra
76Shri Surendra Mohan Mishra
(Posthumous)
Art Uttar Pradesh
77Shri Ali Mohammed & Shri Ghani Mohammed*
(Duo)
Art Rajasthan
78Ms. Kalpana MorpariaTrade & IndustryMaharashtra
79Ms. Chami MurmuSocial Work Jharkhand
80Shri Sasindran MuthuvelPublic AffairsPapua New Guinea
81Ms. G NachiyarMedicine Tamil Nadu
82Ms. Kiran NadarArtDelhi
83Shri Pakaravur Chithran Namboodiripad
(Posthumous)
Literature & Education Kerala
84Shri Narayanan E PArt Kerala
85Shri Shailesh NayakScience & Engineering Delhi
86Shri Harish Nayak
(Posthumous)
Literature & Education Gujarat
87Shri Fred NegritLiterature & Education France
88Shri Hari OmScience & Engineering Haryana
89Shri Bhagabat PadhanArt Odisha
90Shri Sanatan Rudra PalArt West Bengal
91Shri Shankar Baba Pundlikrao PapalkarSocial Work Maharashtra
92Shri Radhe Shyam PareekMedicine Uttar Pradesh
93Shri Dayal Mavjibhai ParmarMedicine Gujarat
94Shri Binod Kumar PasayatArt Odisha
95Ms. Silbi PassahArt Meghalaya
96Ms. Shanti Devi Paswan & Shri Shivan Paswan*
(Duo)
Art Bihar
97Shri Sanjay Anant PatilOthers – Agriculture Goa
98Shri Muni Narayana PrasadLiterature & Education Kerala
99Shri K S RajannaSocial Work Karnataka
100Shri Chandrashekar Channapatna RajannacharMedicine Karnataka
101Shri Bhagwatilal RajpurohitLiterature & Education Madhya Pradesh
102Shri Romalo RamArt Jammu & Kashmir
103Shri Navjivan RastogiLiterature & Education Uttar Pradesh
104Ms. Nirmal RishiArt Punjab
105Shri Pran SabharwalArt Punjab
106Shri Gaddam SammaiahArt Telangana
107Shri SangthankimaSocial Work Mizoram
108Shri Machihan SasaArt Manipur
109Shri Omprakash SharmaArt Madhya Pradesh
110Shri Eklabya SharmaScience & EngineeringWest Bengal
111Shri Ram Chander SihagScience & EngineeringHaryana
112Shri Harbinder SinghSports Delhi
113Shri Gurvinder SinghSocial Work Haryana
114Shri Godawari SinghArt Uttar Pradesh
115Shri Ravi Prakash SinghScience & Engineering Mexico
116Shri Seshampatti T SivalingamArt Tamil Nadu
117Shri SomannaSocial WorkKarnataka
118Shri Kethavath SomlalLiterature & Education Telangana
119Ms. Shashi SoniTrade & IndustryKarnataka
120Ms. Urmila SrivastavaArt Uttar Pradesh
121Shri Nepal Chandra Sutradhar
(Posthumous)
Art West Bengal
122Shri Gopinath SwainArt Odisha
123Shri Laxman Bhatt TailangArt Rajasthan
124Ms. Maya TandonSocial Work Rajasthan
125Ms. Aswathi Thirunal Gouri Lakshmi Bayi ThampurattyLiterature & Education Kerala
126Shri Jagdish Labhshanker TrivediArt Gujarat
127Ms. Sano VamuzoSocial Work Nagaland
128Shri Balakrishnan Sadanam Puthiya VeetilArt Kerala
129Shri Kurella VittalacharyaLiterature & Education Telangana
130Shri Kiran VyasOthers – YogaFrance
131Shri Jageshwar YadavSocial Work Chhattisgarh
132Shri Babu Ram YadavArt Uttar Pradesh

Scaling Systems and Essential Design Concepts Explained

Are you aiming to transition from a junior developer to a seasoned pro capable of building scalable applications or perhaps eyeing a substantial pay increase by acing your system design interview? To reach those heights, you’ll need more than just coding skills – you’ll need a comprehensive understanding of essential system design concepts. Let’s delve into some key ideas and strategies that can propel your technical prowess to the next level

Are you aiming to transition from a junior developer to a seasoned pro capable of building scalable applications or perhaps eyeing a substantial pay increase by acing your system design interview? To reach those heights, you’ll need more than just coding skills – you’ll need a comprehensive understanding of essential system design concepts. Let’s delve into some key ideas and strategies that can propel your technical prowess to the next level

Scaling Strategies

Imagine you have a single server handling your application’s requests. As your user base grows, you’ll need to scale your infrastructure. There are two primary scaling approaches:

  1. Vertical Scaling: This involves adding more resources to your existing server, such as RAM or CPU upgrades. While straightforward, it has limitations in scalability.
  2. Horizontal Scaling: Instead of beefing up a single server, you add replicas (multiple servers) to distribute the load. Horizontal scaling offers more scalability and redundancy, albeit with added complexity.

Load Balancing and Content Delivery Networks (CDNs)

When dealing with multiple servers, load balancing becomes crucial to evenly distribute incoming traffic. Load balancers, acting as reverse proxies, ensure requests are directed to appropriate servers using algorithms like round-robin or request hashing.

CDNs, on the other hand, excel at caching static content worldwide, reducing latency by serving files from servers closer to users.

Networking Essentials

Understanding networking fundamentals is paramount. Every computer on a network is identified by an IP address. The TCP/IP protocol suite governs data transmission over the Internet, ensuring reliable packet delivery and reassembly.

Domain Name System (DNS) and HTTP

DNS translates domain names to IP addresses, facilitating web address resolution. HTTP, an application-level protocol, simplifies communication between clients and servers by abstracting lower-level complexities.

API Patterns

APIs play a pivotal role in modern software architecture. While REST remains a popular choice for its simplicity and statelessness, GraphQL offers more granular data fetching capabilities. gRPC, with its efficiency and protocol buffers, emerges as a contender for high-performance inter-service communication.

Databases and Scaling Strategies

Relational databases like MySQL offer ACID compliance and structured data storage, but they face challenges in horizontal scaling. NoSQL databases alleviate these limitations by sacrificing some consistency for scalability. Techniques like sharding and replication enhance database performance and fault tolerance.

Message Queues

Message queues facilitate asynchronous communication between components, offering durability and redundancy akin to databases.

In summary, mastering these concepts equips you with the tools to architect robust, scalable systems capable of handling diverse workloads and user demands. As you continue your journey, explore each concept in depth, experiment with different technologies, and stay abreast of industry trends to stay ahead in the dynamic world of software engineering.

A Day in the Life of a Technical Program Manager

As a Program Manager, my daily routine is a delicate dance between reacting to immediate needs and proactively driving long-term initiatives. In this blog post, I’ll take you through how I divide my day into two distinct parts – reactive and proactive – to ensure effective management of projects and teams.

Reactive Responsibilities: The reactive part of my day involves addressing immediate needs that come through various channels such as emails, Slack, and team notifications. Here’s a glimpse of what it entails:

  1. Email and Slack Management:
    • Reading and responding to emails and Slack messages promptly to stay informed and keep communication flowing.
  2. Meetings:
    • Attending emergency meetings and re-prioritizing my schedule based on the day’s meetings.
  3. Meeting Preparations:
    • Starting the day by reviewing upcoming meetings and adjusting priorities as needed.

Proactive Responsibilities: The proactive part of my day is dedicated to actively engaging with different teams and driving the progress of various initiatives. Here’s how I manage my proactive responsibilities:

  1. Team Check-Ins:
    • Connecting with different teams to get updates on various aspects of ongoing projects.
  2. Collaboration with Product Managers:
    • Discussing the status of PRFAQs (Product Requirement Frequently Asked Questions) and PRDs (Product Requirement Documents) with Product Managers.
  3. Engagement with Business, Legal, and Finance Teams:
    • Collaborating with business, legal, and finance teams on initiative approvals, third-party integrations, and vendor agreements.
  4. Design Team Collaboration:
    • Coordinating with the design team to ensure the completion of design work for specific initiatives.
  5. Engaging with Cross-Functional Engineering Teams:
    • Working closely with engineering teams on design, development, and quality assurance.
  6. Interaction with Analytics & Data Science Team:
    • Touching base with the analytics and data science team to gather insights and updates.
  7. Communication with Go-to-Market Team:
    • Collaborating with the go-to-market team on collaterals for upcoming product launches.

Meetings : This proactive work is often conducted through various meetings, including stand-up meetings, Scrum of Scrum meetings, and 1:1 meetings. Additionally, I attend program meetings with stakeholders from product management, engineering, legal, finance, and business teams.

Proactive Updates : Presenting proactive updates, whether good or bad news, is crucial for maintaining transparency.

Documentation: A significant part of my proactive responsibilities involves documenting various aspects of the program, including status updates, program plans, resource loading Gantt charts, roadmaps, and more. This documentation helps keep everyone on the same page and provides a clear roadmap for the team and stakeholders.

Conclusion: In the dynamic role of a Program Manager, balancing reactive and proactive responsibilities is key to ensuring the success of ongoing projects and the long-term health of the program. By dividing my day into these two components, I can address immediate needs while actively driving the progress of strategic initiatives.

Technical Program Manager or Engineering Manager Interview questions : Tell me about me your leadership style you use

In the realm of successful leadership, adaptability in employing different leadership styles is crucial. I don’t adhere to a single leadership approach; rather, I tailor my style based on the situation, the people involved, and the organizational needs.

My primary leadership styles typically include visionary, coaching, and democratic approaches. In the visionary mode, I focus on aligning program and team visions with the overarching goals of the company. Whether initiating or progressing through a project, I emphasize clarity on the vision and impact, expressing appreciation for the team’s efforts and conveying enthusiasm for seeing the project come to fruition. This not only motivates the team but also helps them navigate complexities and overcome obstacles with a positive mindset. The visionary style becomes especially vital during organizational changes, such as layoffs or reorganization, where it serves to inspire the team to look forward.

For one-on-one interactions, performance reviews, and task delegation, I embrace the coaching leadership style. Acting like a GPS for my team members, I delve into where they currently stand, their aspirations, the path they wish to take, and how I can assist them in reaching their career goals. Task delegation involves considering not just their skills but also their interests.

When it comes to decision-making, I adopt a democratic leadership style. This is particularly evident in architectural decisions and prioritizing the team’s next technological steps. Sprint activities, such as planning, retrospectives, and demos, also benefit from the democratic approach, fostering continuous learning, teamwork, and collaboration.

Additionally, I incorporate an affiliative style during social occasions like happy hours, team lunches, and fun events. Creating a positive environment is a priority, whether in day-to-day operations or during more stressful situations. This approach helps maintain team cohesion and morale, ensuring a harmonious workplace atmosphere.

Technical Program Management: What does it take to be a wildly successful TPM? 

Let’s delve into the fundamental aspects. TPM Skills can be categorized into three domains, each encompassing a range of skillsets.

Domain 1️⃣: Excellence in Program and Project Management

🛠️ Orchestrating the Program/Project Lifecycle. 🛠️ Skillful Stakeholder Management. 🛠️ Effective Communication Management. 🛠️ Meticulous Planning. 🛠️ Proficient Roadmap Management. 🛠️ Adept Issue Management. 🛠️ Strategic Risk Management.

Domain 2️⃣: Mastery in Influential Leadership

🛠️ Guiding Complex Decisions. 🛠️ Exerting Influence without Formal Authority. 🛠️ Sustaining Program Momentum. 🛠️ Uplifting Program-Team Morale. 🛠️ Skillful Negotiation. 🛠️ Instilling Healthy Accountability. 🛠️ Strategic Thinking.

Domain 3️⃣: Technical Versatility (Tailored for the software field)

🛠️ Mapping Technical Dependencies. 🛠️ Comprehensive Understanding of the Software Development Life Cycle (SDLC). 🛠️ Proficiency in 3-tier Architecture. 🛠️ Fundamentals of APIs. 🛠️ Basics of Database Management. 🛠️ Introduction to Front-end Development. 🛠️ Knowledge of Distributed Systems (N-tier systems). 🛠️ Grasp of System Design Characteristics, including security, privacy, scalability, reliability, availability, fault tolerance, modularity, and performance.

This list serves as a foundational framework, and while not exhaustive, it provides a solid basis. If you have any specific areas or emerging trends in mind, those could also be valuable additions.

TPM Interview Question – As a Technical Program Manager, how would you handle a situation were critical and blocker bug is reported one day before the launch ?

Handling a critical and blocker bug reported just one day before a launch is a challenging situation that requires a swift and well-coordinated response. Here’s a step-by-step approach for a Technical Program Manager (TPM) to manage such a scenario:

  1. Assess the Severity and Impact:
    • Quickly assess the severity and impact of the reported bug on the system and end-users.
    • Understand the potential consequences, such as system downtime, data loss, or compromised functionality.
  2. Communicate Effectively:
    • Notify all relevant stakeholders immediately, including the development team, testing team, product managers, and leadership.
    • Clearly communicate the nature of the bug, its impact, and the urgency of the situation.
  3. Convene an Emergency Meeting:
    • Schedule an emergency meeting with key stakeholders to discuss the bug, its implications, and potential solutions.
    • Ensure that the right technical experts are present to analyze and address the issue.
  4. Prioritize and Triage:
    • Work with the technical team to prioritize and triage the bug based on its severity and impact on the launch.
    • Identify any workarounds that can be implemented quickly to mitigate the immediate impact.
  5. Define a Contingency Plan:
    • Collaborate with the team to create a contingency plan. This may involve postponing the launch, implementing a hotfix, or deploying a rollback to a stable version.
    • Determine the feasibility and impact of each option.
  6. Engage Cross-Functional Teams:
    • Engage cross-functional teams, including development, quality assurance, and operations, to collectively address the bug.
    • Facilitate communication and collaboration between teams to expedite the resolution process.
  7. Communicate to External Stakeholders:
    • If the launch involves external partners or customers, communicate transparently about the situation, the decision to delay, and the plan moving forward.
    • Provide regular updates as the situation evolves.
  8. Invoke Incident Response Protocols:
    • If available, invoke incident response protocols to streamline the coordination of resources, communication, and resolution efforts.
    • Ensure that there is a clear incident owner responsible for driving the resolution.
  9. Monitor and Test:
    • Continuously monitor the progress of bug resolution and test any proposed fixes thoroughly.
    • Implement additional testing to validate that the solution does not introduce new issues.
  10. Update the Launch Plan:
    • Update the launch plan with the revised timeline and communicate the changes to all stakeholders.
    • Ensure that the team is aligned on the new schedule and that necessary adjustments are made.
  11. Conduct a Post-Mortem:
    • After the resolution, conduct a post-mortem analysis to understand the root cause of the critical bug and identify process improvements.
    • Document lessons learned and implement preventive measures to avoid similar issues in the future.
  12. Review and Learn:
    • Review the incident response and resolution process. Identify areas for improvement in communication, testing procedures, and risk mitigation.
    • Use the experience as a learning opportunity for the team and the organization.

In challenging situations like this, a TPM’s ability to lead and coordinate a swift and effective response is crucial. Clear communication, collaboration, and a focus on finding the best resolution are key elements of successfully managing such incidents.

TPM Interview Questions – How to isolate bottlenecks in System Design ?


Identifying and isolating bottlenecks in system design is a crucial aspect of ensuring optimal performance. Here are steps you can take to identify and address bottlenecks in a system design:

  1. Define Performance Metrics:
    • Clearly define the key performance metrics for your system, such as response time, throughput, and resource utilization. These metrics will serve as benchmarks for evaluating system performance.
  2. Conduct Performance Testing:
    • Perform thorough performance testing under various conditions, including peak loads and stress scenarios. Use performance testing tools to simulate real-world conditions and identify areas of concern.
  3. Monitor System Components:
    • Implement robust monitoring solutions to continuously track the performance of different system components. Monitor CPU usage, memory utilization, network activity, and other relevant metrics.
  4. Analyze Logs and Metrics:
    • Regularly analyze logs and performance metrics to detect patterns or anomalies. Look for trends that indicate resource constraints or unexpected spikes in usage.
  5. Identify Resource Bottlenecks:
    • Check for resource bottlenecks such as CPU, memory, disk I/O, and network bandwidth. Use monitoring tools to identify which resources are consistently under heavy load.
  6. Profile Code and Algorithms:
    • Profile the code and algorithms used in the system to identify any inefficient or resource-intensive processes. Use profiling tools to pinpoint areas that require optimization.
  7. Distributed Systems Considerations:
    • In distributed systems, examine communication patterns between different components. Latency, message queues, and data consistency mechanisms can be potential sources of bottlenecks.
  8. Database Optimization:
    • Evaluate the performance of your database queries and transactions. Indexing, query optimization, and proper database design can significantly impact overall system performance.
  9. Cache Utilization:
    • Assess the use of caching mechanisms to reduce the load on backend services. Properly configured caches can improve response times and reduce the load on data stores.
  10. Load Balancing:
    • If the system involves multiple servers, ensure that the load is distributed evenly. Implement or review load balancing mechanisms to prevent individual servers from becoming bottlenecks.
  11. Review Network Architecture:
    • Examine the network architecture for potential bottlenecks. Evaluate the bandwidth, latency, and overall network design to ensure efficient data transfer between components.
  12. Scale Horizontally or Vertically:
    • Depending on the identified bottlenecks, consider scaling the system horizontally (adding more instances of components) or vertically (upgrading individual components) to handle increased loads.
  13. Benchmarking and Comparisons:
    • Benchmark your system against industry standards or similar systems to identify areas where your performance might be lagging. Comparative analysis can provide insights into potential optimizations.
  14. Iterative Improvement:
    • Implement optimizations incrementally and retest the system after each change. This iterative approach helps identify the impact of specific improvements and ensures that new bottlenecks are not introduced.
  15. Collaborate Across Teams:
    • Foster collaboration between development, operations, and other relevant teams. Cross-functional communication can provide a holistic understanding of the system and lead to effective solutions.

By following these steps, you can systematically identify and isolate bottlenecks in your system design, leading to a more robust and efficient overall architecture.

TPM Interview Questions – How to handle a situation where team member from another team is hesitant to work on your program

Handling a situation where a team member from another team is hesitant to work on your program requires a combination of empathy, effective communication, and collaboration. Here are steps you can take to address this situation:

  1. Understand Their Concerns:
    • Schedule a Meeting: Reach out to the hesitant team member and request a one-on-one meeting to discuss their concerns.
    • Listen Actively: Allow them to express their concerns and listen attentively. Understand the specific reasons behind their hesitation.
  2. Clarify Program Objectives:
    • Articulate Program Goals: Clearly communicate the objectives and goals of your program. Help the team member understand how their contribution aligns with broader organizational objectives.
    • Highlight Benefits: Emphasize the positive impact and potential benefits of their involvement in the program.
  3. Address Misconceptions:
    • Provide Information: Share relevant information about the program, its scope, and the value it brings to the organization. Correct any misconceptions or misunderstandings.
    • Clarify Roles and Expectations: Clearly define their role in the program and set realistic expectations. Ensure they understand how their skills contribute to the overall success.
  4. Build Relationships:
    • Establish Rapport: Foster a positive and collaborative relationship. Highlight the opportunity for cross-team collaboration and the chance to learn from each other.
    • Highlight Past Successes: If applicable, share success stories of previous cross-team collaborations to demonstrate the potential for positive outcomes.
  5. Offer Support and Resources:
    • Provide Assistance: Offer support in terms of resources, training, or assistance from your team. Address any concerns related to workload or potential challenges they may face.
    • Collaborate on Solutions: Work together to find solutions to any identified issues or challenges. Collaborative problem-solving can build trust and a sense of shared responsibility.
  6. Involve Leadership if Necessary:
    • Seek Management Support: If the hesitation persists, involve higher-level management to address concerns and provide additional context or resources if needed.
    • Highlight Organizational Benefits: Emphasize how the successful completion of the program contributes to the overall success of the organization.
  7. Celebrate Team Achievements:
    • Recognize Contributions: Acknowledge and celebrate the contributions of team members regularly. This recognition can boost morale and motivation.
    • Highlight Team Successes: Showcase the achievements of the program and how each team member’s efforts contribute to those successes.
  8. Continuous Communication:
    • Maintain Open Lines of Communication: Encourage ongoing communication. Keep the team member informed about program updates, milestones, and any changes that may affect their work.

By taking a proactive and collaborative approach, you can address the hesitations of team members from other teams and create an environment that fosters cooperation and mutual success.

REST API Interview Questions

Is REST API stateful or stateless ?

RESTful APIs (Representational State Transfer) are designed to be stateless. This means that each request from a client to a server must contain all the information needed to understand and process the request. The server should not store any information about the client’s state between requests. Each request from a client to a server is independent, and the server treats it as such.

Explain stateful vs stateless API ?

Statelessness in REST is a key architectural constraint that simplifies the design and implementation of both the client and the server. It allows for scalability and flexibility since servers do not need to maintain information about the state of each client between requests.

On the other hand, stateful communication involves the server maintaining some information about the client’s state between requests. This is different from the principles of REST, and stateful interactions can introduce complexities and dependencies that are generally avoided in RESTful design

Explain different HTTP Methods in REST API ?

HTTP methods, also known as HTTP verbs, are actions that can be performed on resources in a RESTful API. They define the operation that the client wants to perform on a resource identified by a URI (Uniform Resource Identifier). The commonly used HTTP methods used in REST APIs are:

  1. GET:
    • Purpose: Retrieve data from the server.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  2. POST:
    • Purpose: Submit data to create new resource.
    • Idempotent: No (Multiple identical requests may have different effects).
  3. PUT:
    • Purpose: Update a resource or create a new resource if it does not exist.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  4. PATCH:
    • Purpose: Partially update a resource. It is used to apply partial modifications to a resource.
    • Idempotent: No (Multiple identical requests may have different effects).
  5. DELETE:
    • Purpose: Delete a resource identified by a URI.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  6. OPTIONS:
    • Purpose: Get information about the communication options available for a resource or the server.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  7. HEAD:
    • Purpose: Retrieve the headers for a resource without the body content.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  8. TRACE:
    • Purpose: Performs a message loop-back test along the path to the target resource.
    • Idempotent: Yes (Multiple identical requests have the same effect as a single request).
  9. CONNECT:
    • Purpose: Establishes a tunnel to the server identified by a given URI.
    • Idempotent: No (Multiple identical requests may have different effects).

Each HTTP method corresponds to a specific action, and their use depends on the desired operation to be performed on the resource. The statelessness of RESTful APIs is maintained through the proper use of these HTTP methods along with other RESTful principles.

Explain common HTTP codes in Rest APIs ?

HTTP status codes are three-digit numbers returned by a server in response to a client’s request made to the server. In the context of RESTful APIs, these status codes convey information about the success or failure of the request. Here are some common HTTP status codes in REST APIs:

  1. 1xx (Informational):
    • 100 Continue: The server has received the initial part of the request and will continue processing.
  2. 2xx (Success):
    • 200 OK: The request was successful.
    • 201 Created: The request was successful, and a new resource was created.
    • 204 No Content: The request was successful, but there is no additional information to send in the response payload.
  3. 3xx (Redirection):
    • 301 Moved Permanently: The requested resource has been permanently moved to a new location.
    • 302 Found (or 307 Temporary Redirect): The requested resource has been temporarily moved to another location.
  4. 4xx (Client Error):
    • 400 Bad Request: The request could not be understood or was missing required parameters.
    • 401 Unauthorized: Authentication is required, and the provided credentials are not valid.
    • 403 Forbidden: The client does not have permission to access the requested resource.
    • 404 Not Found: The requested resource could not be found on the server.
    • 405 Method Not Allowed: The HTTP method used in the request is not allowed for the specified resource.
  5. 5xx (Server Error):
    • 500 Internal Server Error: A generic error message indicating that the server has encountered a situation it doesn’t know how to handle.
    • 501 Not Implemented: The server does not support the functionality required to fulfill the request.
    • 503 Service Unavailable: The server is not ready to handle the request. Common causes include the server being down for maintenance or being overloaded.

These codes provide information to the client about the success or failure of its request and help developers diagnose and fix issues during API interactions. When designing or using REST APIs, it’s important to understand and handle these HTTP status codes appropriately to ensure robust and reliable communication between clients and servers.

What is URI ?

URI, or Uniform Resource Identifier, is a string of characters that identifies a particular resource. In the context of REST APIs, URIs are used to uniquely identify resources that the API exposes. Resources can be anything that has a unique identity, such as documents, images, services, or data.

A URI is composed of two main parts:

  1. URL (Uniform Resource Locator): A URL is a specific type of URI that provides the means to locate and retrieve the identified resource on the network. URLs include information about how to access the resource (e.g., using the HTTP or HTTPS protocol).
  2. URN (Uniform Resource Name): A URN is another type of URI that is used to identify resources by name in a particular namespace. URNs are used to persistently identify resources but do not necessarily provide information on how to access them.

In RESTful APIs, URIs play a crucial role in identifying and addressing resources. Each resource exposed by the API is assigned a unique URI, and clients use these URIs to interact with the resources through the defined HTTP methods (GET, POST, PUT, DELETE, etc.). The structure of the URI is designed to be hierarchical and meaningful, reflecting the organization of resources within the system.

For example, in a simple REST API for managing books, you might have URIs like:

  • GET /books: Retrieve a list of all books.
  • GET /books/123: Retrieve details for the book with ID 123.
  • POST /books: Create a new book.
  • PUT /books/123: Update the details of the book with ID 123.
  • DELETE /books/123: Delete the book with ID 123.

In these examples, “/books” represents the collection of books, and “/books/123” represents a specific book with ID 123. The use of meaningful URIs helps make the API more intuitive and easy to understand.

What are best practises for making the URI for Restful Web services ?

Designing effective and meaningful URIs for RESTful web services is an important aspect of creating a well-organized and user-friendly API. Here are some best practices for creating RESTful URIs:

  1. Use Nouns for Resources:
    • URIs should represent resources, and the resource names should be nouns. For example, use “/users” instead of “/getUsers” or “/retrieveUserDetails.”
  2. Keep URIs Simple and Readable:
    • URIs should be easy to read and understand. Avoid unnecessary complexity and use simple, descriptive words that convey the purpose of the resource.
  3. Use Plural Nouns for Collections:
    • Use plural nouns to represent collections. For instance, “/users” is more appropriate than “/user” for a collection of user resources.
  4. Use Specific Names for Resource Identifiers:
    • Resource identifiers in URIs should be specific and meaningful. For example, use “/users/123” instead of “/user?id=123” for a specific user with ID 123.
  5. Avoid Verbosity:
    • Keep URIs concise and avoid unnecessary verbosity. Use abbreviations only when they are widely understood and accepted.
  6. Consistent Naming Conventions:
    • Maintain consistency in naming conventions throughout the API. Choose a style for naming resources and stick to it.
  7. Versioning:
    • Consider incorporating versioning information in the URI to handle changes in the API over time. For example, “/v1/users” could represent version 1 of the users resource.
  8. Use Hyphens or Underscores for Readability:
    • Use hyphens (“-“) or underscores (“_”) to separate words in URIs for better readability. For example, “/user-details” or “/user_details.”
  9. Use HTTP Methods for Operations:
    • Use HTTP methods (GET, POST, PUT, DELETE, etc.) for different operations on resources instead of including action verbs in the URI. For instance, use POST “/users” to create a new user instead of “/createUser.”
  10. Avoid Complex Hierarchies:
    • Keep URI hierarchies simple and avoid deep nesting. If the hierarchy becomes too complex, it may indicate a need for reevaluation of the resource structure.
  11. Be Mindful of Case Sensitivity:
    • Be consistent with the case sensitivity of URIs. While URIs are case-insensitive according to the HTTP standard, it’s best to pick a convention (camelCase, PascalCase, lowercase, etc.) and stick with it.
  12. Provide Documentation:
    • Include documentation for the API to guide developers on how to use the URIs effectively. This documentation should detail the structure of URIs, available resources, and their functionalities.

By adhering to these best practices, you can create RESTful URIs that enhance the usability, clarity, and maintainability of your API. Additionally, consider seeking feedback from API consumers to ensure that the URI design aligns with their expectations and usage patterns.

What is difference between REST and SOAP ?

REST (Representational State Transfer) and SOAP (Simple Object Access Protocol) are two different approaches to web services that provide communication between systems over a network. Here are some key differences between REST and SOAP:

  1. Communication Style:
    • REST: Uses a stateless client-server communication model. Each request from a client to a server must contain all the information needed to understand and process the request. RESTful APIs typically use standard HTTP methods (GET, POST, PUT, DELETE) for communication.
    • SOAP: Employs a more rigid and stateful communication model. It relies on XML-based messaging and typically uses HTTP or SMTP as the transport protocol. SOAP messages include a set of rules and specifications.
  2. Message Format:
    • REST: Usually relies on lightweight data formats, such as JSON or XML, for message representation. JSON is more commonly used due to its simplicity and readability.
    • SOAP: Requires XML as the message format. SOAP messages are typically larger and more complex compared to REST messages due to the XML structure.
  3. Flexibility:
    • REST: Provides a more flexible and lightweight approach. It is commonly used in scenarios where simplicity, speed, and scalability are important, such as mobile applications and web services.
    • SOAP: Tends to be more rigid and is often associated with enterprise-level applications where a strict contract between the client and server is required.
  4. Statelessness:
    • REST: Stateless by design. Each request from a client to a server is independent, and the server does not store any information about the client’s state between requests.
    • SOAP: Can be stateful or stateless, depending on the specific implementation. However, it often introduces stateful features like transactions and security, which can add complexity.
  5. Standards:
    • REST: Adheres to architectural principles and is based on standard HTTP methods. It does not enforce strict standards, allowing more flexibility in implementation.
    • SOAP: Has a set of rigid standards and specifications. It follows a strict protocol and has defined standards for security (WS-Security), transactions (WS-AtomicTransaction), and more.
  6. Performance:
    • REST: Generally considered to be more lightweight and faster due to its simplicity and use of standard protocols.
    • SOAP: Tends to be heavier and may have more overhead due to its XML-based message format and additional standards.
  7. Use Cases:
    • REST: Well-suited for scenarios where simplicity, scalability, and performance are essential, such as mobile applications, web services, and public APIs.
    • SOAP: Commonly used in enterprise-level applications, where a strict contract, security, and features like transactions are critical.

Ultimately, the choice between REST and SOAP depends on the specific requirements of the application, the level of formality needed, and the existing infrastructure. REST is often preferred for its simplicity and widespread adoption, especially in modern web development, while SOAP is still prevalent in certain enterprise and legacy systems.

What is difference between REST and AJAX ?

REST and AJAX are not directly comparable, as they serve different purposes in web development. Let’s clarify the differences between REST and AJAX:

  1. REST (Representational State Transfer):
    • Definition: REST is an architectural style for designing networked applications. It defines a set of constraints that, when applied to web services, create a scalable and stateless communication system.
    • Usage: REST is commonly used for building web services that can be consumed by various client applications, including web browsers, mobile apps, and other services.
    • Key Features:
      • Stateless communication: Each request from a client to a server is independent and contains all the information needed.
      • Use of standard HTTP methods (GET, POST, PUT, DELETE) to perform operations on resources.
      • Resources are identified by URIs (Uniform Resource Identifiers).
      • Lightweight data formats like JSON or XML are typically used for data representation.
  2. AJAX (Asynchronous JavaScript and XML):
    • Definition: AJAX is a set of web development techniques that allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. It is not a specific technology but a combination of several existing technologies.
    • Usage: AJAX is primarily used to create more dynamic and responsive user interfaces by updating parts of a web page without requiring a full page reload.
    • Key Features:
      • Asynchronous communication: Allows data to be exchanged with the server without reloading the entire page.
      • Use of the XMLHttpRequest object or modern alternatives (like the Fetch API) to make asynchronous HTTP requests.
      • Integration with JavaScript and DOM manipulation to update the user interface in real-time.
      • Can work with various server-side technologies, including RESTful APIs.

In summary, REST is an architectural style that defines principles for designing web services, while AJAX is a set of techniques for building more dynamic and responsive user interfaces by making asynchronous requests to the server. They are not mutually exclusive and are often used together in modern web development. For example, a web page may use AJAX to fetch data from a RESTful API and update the UI without requiring a full page reload.

What are tools used to develop and test REST APIs ?

There are various tools available for developing and testing REST APIs, offering a range of features from creating APIs to testing and debugging. Here are some popular tools used in the development and testing of RESTful APIs:

  1. Postman:
    • Purpose: Postman is a widely used API development and testing tool that allows you to create, test, and manage APIs.
    • Features:
      • Create and send HTTP requests with various methods.
      • Organize requests into collections.
      • Automate testing with scripts.
      • Generate and share documentation.
  2. Swagger (OpenAPI):
    • Purpose: Swagger, now known as OpenAPI, is a standard for building and documenting REST APIs. There are tools available to generate API documentation from OpenAPI specifications.
    • Features:
      • Define API structure using a standard JSON or YAML format.
      • Automatically generate API documentation.
      • Test API endpoints directly from the documentation.
  3. cURL:
    • Purpose: cURL is a command-line tool for making HTTP requests. While it’s not a dedicated API testing tool, it’s commonly used for quick testing and debugging of REST APIs.
    • Features:
      • Send HTTP requests from the command line.
      • Supports various protocols, including HTTP, HTTPS, FTP, and more.
      • Useful for quick testing and scripting.
  4. Insomnia:
    • Purpose: Insomnia is an open-source API testing tool that provides a user-friendly interface for designing and testing APIs.
    • Features:
      • Design and organize API requests.
      • Supports multiple authentication methods.
      • Allows for environment and variable management.
      • Code generation for various programming languages.
  5. SoapUI:
    • Purpose: SoapUI is a comprehensive testing tool for both SOAP and REST APIs. It offers a graphical interface for designing and testing APIs.
    • Features:
      • Create and execute functional and load tests.
      • Supports data-driven testing.
      • Includes assertion and validation capabilities.
      • Detailed test reporting.
  6. REST Assured:
    • Purpose: REST Assured is a Java library for testing REST APIs. It integrates with popular Java testing frameworks like JUnit and TestNG.
    • Features:
      • Expressive syntax for writing API tests in Java.
      • Supports JSON and XML parsing.
      • Integration with popular Java testing frameworks.
  7. Paw:
    • Purpose: Paw is a Mac-native API client with a user-friendly interface for designing, testing, and debugging APIs.
    • Features:
      • Intuitive user interface for building API requests.
      • Supports dynamic values and scripting.
      • Collaborative features for team environments.
  8. JMeter:
    • Purpose: Apache JMeter is a popular open-source tool for performance testing, including the testing of RESTful APIs.
    • Features:
      • Create and execute load tests.
      • Supports various protocols, including HTTP and HTTPS.
      • Analyze and visualize test results.

These tools cater to different needs in the API development and testing lifecycle, from design and development to testing and debugging. The choice of tool depends on the specific requirements of your project and your preferred development environment.

What are real world example of REST APIs ?

REST APIs are widely used in various industries and applications to enable communication between different systems. Here are some real-world examples of REST APIs:

  1. Social Media Platforms:
    • Example: Twitter API, Facebook Graph API, Instagram API
    • Use Case: Social media platforms expose APIs that allow developers to access and interact with user data, post updates, retrieve feeds, and perform various other actions programmatically.
  2. Payment Gateways:
    • Example: Stripe API, PayPal REST API
    • Use Case: Payment gateways provide RESTful APIs for processing online payments, managing transactions, and handling payment-related tasks in e-commerce applications.
  3. Mapping Services:
    • Example: Google Maps API, Mapbox API
    • Use Case: Mapping services expose APIs that allow developers to integrate maps, geolocation, and routing functionalities into their applications.
  4. Weather Services:
    • Example: OpenWeatherMap API, Weatherstack API
    • Use Case: Weather APIs provide real-time and forecasted weather data, allowing developers to incorporate weather information into their applications.
  5. E-commerce Platforms:
    • Example: Shopify API, WooCommerce API
    • Use Case: E-commerce platforms offer APIs for managing product catalogs, processing orders, and retrieving customer information.
  6. Content Management Systems (CMS):
    • Example: WordPress REST API
    • Use Case: CMS platforms expose RESTful APIs for creating, updating, and retrieving content, as well as managing users and other platform functionalities.
  7. Financial Services:
    • Example: Plaid API
    • Use Case: Financial APIs enable developers to integrate with banking systems, retrieve transaction data, and perform various financial operations securely.
  8. Messaging Services:
    • Example: Twilio API, WhatsApp Business API
    • Use Case: Messaging APIs allow developers to send SMS, MMS, or integrate with chat services for communication in applications.
  9. Healthcare:
    • Example: Health Gorilla API
    • Use Case: Healthcare APIs facilitate the exchange of medical records, lab results, and other health-related data between different healthcare systems.
  10. Authentication Services:
    • Example: OAuth 2.0 providers (e.g., Auth0, Okta)
    • Use Case: Authentication APIs enable secure user authentication and authorization, allowing applications to implement single sign-on (SSO) and user management.

These examples illustrate the diverse range of applications for REST APIs across industries, showcasing their role in enabling seamless integration, data exchange, and functionality in modern web and mobile applications.

What are advantages of REST APIs ?

REST APIs (Representational State Transfer) offer several advantages that contribute to their widespread adoption and popularity in the development of web services. Here are some key advantages of REST APIs:

  1. Simplicity and Ease of Use:
    • REST APIs are designed to be simple and easy to understand. They use standard HTTP methods (GET, POST, PUT, DELETE) for operations, making it intuitive for developers to work with.
  2. Statelessness:
    • REST follows a stateless client-server architecture. Each request from a client to a server is independent, and the server does not store any information about the client’s state between requests. This simplifies the design and scalability of the system.
  3. Scalability:
    • The statelessness of REST allows for better scalability. Servers can handle a large number of clients since each request contains all the information needed for processing, and there is no need to store session state on the server.
  4. Flexibility and Extensibility:
    • RESTful APIs allow for flexibility in terms of data formats. They commonly use lightweight and widely supported data formats like JSON, making it easy to integrate with different platforms and technologies.
  5. Uniform Interface:
    • REST APIs have a uniform and consistent interface, which includes the use of standard HTTP methods, resource URIs, and status codes. This uniformity simplifies API design and usage, making it easier for developers to work with different APIs.
  6. Wide Adoption and Standardization:
    • REST is based on widely adopted and standardized protocols like HTTP. This ensures compatibility with various platforms and tools, making it easier to integrate RESTful APIs into different applications and ecosystems.
  7. Support for Multiple Data Formats:
    • RESTful APIs can support different data formats for message payloads, including JSON and XML. This flexibility allows developers to choose the format that best suits their application requirements.
  8. Performance:
    • Due to its simplicity and use of standard protocols, REST APIs are generally lightweight and performant. They are suitable for a wide range of applications, including mobile and web development.
  9. Caching:
    • REST supports caching mechanisms, which can improve performance by allowing clients to cache responses. This reduces the need for repeated requests to the server for unchanged resources.
  10. Ease of Testing:
    • Testing REST APIs is straightforward because they can be easily accessed using tools like cURL, Postman, or automated testing frameworks. This makes it convenient for developers to validate and debug their APIs.
  11. State-of-the-Art Security:
    • REST supports secure communication over HTTPS, providing encryption and authentication. Additionally, various authentication mechanisms, such as API keys, OAuth, and token-based authentication, can be implemented to ensure data security.

Overall, the simplicity, scalability, and compatibility of REST APIs make them a preferred choice for building web services that need to be accessible, flexible, and easily integrated across different platforms.

What are disadvantages of REST APIs ?

While REST APIs offer many advantages, there are also some disadvantages and limitations to consider in certain contexts. Here are some potential drawbacks of REST APIs:

  1. Lack of Standards:
    • REST does not enforce a strict standard for communication, leading to variations in API design. This lack of standardization can make it challenging for developers to predict the structure and behavior of APIs from different providers.
  2. Limited Support for Real-Time Communication:
    • REST is inherently request-response based, which makes it less suitable for scenarios that require real-time communication or constant updates, such as live chat applications. WebSocket or other technologies may be more appropriate in such cases.
  3. Overhead:
    • RESTful APIs can have some overhead, especially when dealing with large payloads. This is because each request-response cycle includes HTTP headers, which can impact performance when dealing with frequent and small interactions.
  4. Complexity in Operations that Modify State:
    • While REST is well-suited for read-only operations, performing operations that modify the state of resources (e.g., creating, updating, or deleting) may involve multiple steps, leading to increased complexity in the implementation.
  5. Security Concerns:
    • While REST supports secure communication through HTTPS, implementing security measures such as authentication and authorization can vary across implementations. Ensuring proper security practices might require additional effort.
  6. Limited Support for Transactions:
    • RESTful APIs do not inherently support distributed transactions. This can be a limitation in scenarios where atomicity and consistency across multiple operations are critical.
  7. Data Transfer Format Overhead:
    • While REST supports multiple data formats, the choice of JSON or XML for representing data can introduce overhead, especially when compared to more compact binary formats used by other protocols.
  8. Underutilization of HTTP Features:
    • Some argue that REST APIs do not fully utilize the capabilities provided by HTTP, such as caching and content negotiation. This might lead to suboptimal use of available features.
  9. No Built-in Messaging System:
    • Unlike other protocols such as SOAP, REST does not have a built-in messaging system. This might be a limitation in scenarios where more sophisticated messaging patterns are required.
  10. Documentation Challenges:
    • While RESTful APIs can be easy to understand, the lack of a formal contract or documentation standard may lead to challenges in maintaining accurate and up-to-date documentation.
  11. Complexity in Handling Hierarchical Data:
    • Handling hierarchical data or relationships between resources can be more complex in REST compared to other protocols that support more advanced querying capabilities.

It’s important to note that the appropriateness of REST depends on the specific requirements of a project. In some cases, the drawbacks mentioned above might be mitigated or considered acceptable, while in other cases, alternative approaches or protocols might be more suitable.

Country & Currency Quiz

What is the capital of ?