How To Hire IoT Developers? A Complete Guide - Ideausher
How To Hire IoT Developers? A Complete Guide

The fast expansion of networked technology has ushered in the Internet of Things (IoT). This approach has broken free from old limits and is now a driving force in industry transformation. With the potential to link devices, collect data, and allow smart, automated processes, IoT has become a must-have for organizations looking to increase productivity, reduce costs, and create game-changing solutions.

The demand for qualified IoT developers has increased dramatically as the IoT ecosystem develops. These developers play an important role in bringing IoT projects to life, from designing and installing sensor networks to creating powerful apps that leverage data provided by connected devices.

However, finding the proper talent in the competitive world of IoT development is no simple task. The complex structure of IoT projects necessitates a distinct set of abilities, including hardware competence, software ability, and a thorough understanding of networking protocols.

Whether you’re starting an IoT business or trying to improve your technical capabilities as an established business, this guide will help you navigate the complex process of hiring IoT developers.

Reasons To Outsource Your IoT  Project 

As per the Microsoft report, 47 percent of businesses said they need more skilled employees to implement their IoT solutions. Furthermore, 20% of businesses reject IoT implementation because of its complexity. Here are more reasons why outsourcing your IoT project is a strategic step for your business:

1. Cost Savings

Outsourcing your IoT project can substantially reduce costs associated with in-house development. The expenses linked to recruiting, training, and retaining specialized IoT talent are often exorbitant. By opting for outsourcing, businesses can tap into a pre-trained pool of skilled developers without shouldering the ongoing financial burden of maintaining a full-time, in-house team. This allows organizations to allocate resources more efficiently and invest savings into other critical areas of business development.

Moreover, outsourcing mitigates the need for continuous training and skill updates that are imperative in the rapidly evolving field of IoT. External IoT development firms are typically equipped with professionals who stay abreast of the latest industry trends, ensuring that your project benefits from cutting-edge expertise without additional training costs.

2. Access to Global Talent

Outsourcing opens doors to a diverse and global talent pool, enriching your project with a myriad of skills, experiences, and perspectives. This geographical diversity can foster creativity and innovation within the development team. Collaborating with experts from different regions brings varied insights, helping to overcome challenges and optimize solutions, ultimately contributing to the success of your IoT project.

Additionally, leveraging a global talent pool enables businesses to find developers with specific domain knowledge and expertise, ensuring a more tailored and effective approach to IoT development.

3. Focus on Core Operations

By outsourcing IoT development, businesses can concentrate on their core operations, maximizing efficiency and productivity. Specialized IoT development requires dedicated focus, and outsourcing allows internal teams to prioritize strategic activities like product development, marketing, and customer service. This division of labor ensures that each aspect of the business receives dedicated attention, leading to overall improved performance and streamlined operations.

Furthermore, outsourcing to experts ensures that your IoT project benefits from the undivided attention of professionals who are well-versed in the intricacies of IoT development, resulting in a more refined and successful outcome.

4. Faster Time-to-Market

Outsourcing accelerates the development process, reducing time-to-market for IoT solutions. Specialized IoT development companies possess well-established workflows, best practices, and experienced teams that streamline the development and deployment processes. This contrasts with in-house teams that may require additional time for skill development and project ramp-up.

The efficiency gained through outsourcing enables businesses to capitalize on market opportunities swiftly, ensuring that their IoT solutions reach consumers faster than if developed in-house. This agility can be a significant competitive advantage, especially in industries where speed to market is critical.

5. Flexibility and Scalability

Outsourcing provides unmatched flexibility in scaling development teams based on project requirements. Businesses can easily adjust the number of developers involved in an IoT project without the administrative complexities associated with hiring or downsizing an in-house team. This scalability ensures optimal resource allocation for various project phases, allowing for quick adaptation to changing needs and priorities.

The ability to scale up or down rapidly is particularly beneficial for projects with fluctuating workloads or tight timelines. Outsourcing partners can efficiently allocate resources based on project demands, ensuring optimal productivity without the logistical challenges often faced with internal team adjustments.

6. Risk Mitigation

Outsourcing serves as a risk mitigation strategy for IoT development. The industry faces challenges such as talent shortages and rapid technology obsolescence. By partnering with professional outsourcing firms, businesses benefit from a track record of successful IoT projects, reducing the inherent risks associated with inexperienced or under-skilled teams.

Additionally, outsourcing contracts can include performance metrics and penalties, ensuring accountability and quality assurance. This contractual framework promotes a collaborative and results-oriented approach, providing businesses with confidence in the successful delivery of their IoT projects while minimizing the risks associated with potential setbacks.


Where To Discover Top IoT Developers For Hiring?

Explore regions with the most skilled and available developers, providing insights into key destinations for hiring excellence in IoT development.

1. Asia

Asia, a powerhouse in technological innovation, is home to dynamic IT markets such as China and India. With advanced technologies and a pool of experienced professionals, companies can tap into the vibrancy of these fast-growing IT ecosystems. However, navigating intellectual property concerns and the evolving cost structures is crucial when considering Asia for IoT development outsourcing.

I. India

Positioned as a budget-forming IT industry hub, India is renowned for cost-effective labor. Continuous efforts to enhance skills make Indian engineers sought after for various projects. Despite intellectual property challenges, India remains a preferred outsourcing destination due to its vast talent pool and diverse skill sets.

II. China

Home to numerous fast-growing IT startups, China boasts advanced technologies and experienced professionals. Chinese developers are known for their high diligence and persistence. However, the cost of Chinese developers is approaching European rates, and intellectual property concerns exist. China’s technology ecosystem is thriving, with a focus on innovation, making it an attractive destination for IoT development.

III. Philippines and Malaysia 

The Philippines, with a large English-speaking population, and Malaysia, with competitive prices and business-friendly policies, present alternative options. Although both countries are addressing quality gaps in tech expertise, their strategic locations and growing IT sectors make them potential choices for IoT development outsourcing.

2. South America

South America emerges as a prominent outsourcing destination, with Argentina and Brazil leading the way. Boasting expertise in software, mobile development, and cloud computing, these countries invest significantly in IT education. Yet, economic instability and legal uncertainties in Argentina, as well as Brazil’s complex tax system, add nuanced considerations for businesses exploring South America.

I. Argentina

A leading outsourcing destination, Argentina excels in software, mobile development, DevOps, and cloud computing. Despite not being the cheapest option, the country heavily invests in IT education and sector development. However, economic instability and legal uncertainties pose considerations for potential investors

II. Brazil

 As South America’s largest IT market, Brazil offers professional developers and impressive infrastructure. The complex tax system and additional charges, including an extended 14-month salary, are factors to consider. Brazil’s IT sector, although robust, requires careful navigation of financial intricacies.

3. Eastern Europe

Eastern Europe, including countries like Poland and Romania, stands out with highly qualified programmers and a rich tech ecosystem. Despite slightly higher labor costs, the proficiency in English and top-ranking programmers make these countries competitive options for IoT development outsourcing.

I. Poland

Boasting the largest IT workforce in Europe, Poland stands out for highly qualified programmers. Often top-ranked in various programming languages, Polish developers are strong competitors despite slightly higher labor costs. The country’s rich tech ecosystem and proficiency in English make it an attractive outsourcing destination.

II. Romania

With government incentives like a zero-income tax for developers, Romania is increasingly attractive. Its 116,000 programmers contribute to a growing IT industry. Romania’s emphasis on industry stimulation and favorable policies make it a promising option for IoT development.

4. Africa

Africa, with nations like Nigeria and South Africa, is becoming a notable hub for IT talent. The youthfulness of the population, English proficiency, and cost advantages make Africa an increasingly appealing destination. As the continent establishes itself in the global IT market, companies can explore its growing potential for IoT development.

I. Nigeria 

Emerging as a notable IT hub, Nigeria offers a growing pool of tech talent. With a youthful population, English proficiency, and cost advantages, it’s becoming an appealing destination for IT outsourcing. Nigeria’s emphasis on technology and innovation is positioning it as a competitive player in the global IT market.

II. South Africa

With a well-established IT industry, South Africa provides skilled developers and a stable business environment. English proficiency is an advantage, but costs may be higher compared to other African countries. South Africa’s experience in IT outsourcing and established infrastructure make it a reliable choice for IoT development [[additional source needed]].

5. North America

North America, represented by Canada and Mexico, offers stable business environments and proximity to the U.S. Canada, known for its skilled workforce, and Mexico, with a growing IT sector, provide cultural compatibility and strategic advantages for companies seeking reliable IoT development partners.

I. Canada

Known for its skilled workforce, Canada offers a stable business environment and proximity to the U.S. Canada’s IT sector benefits from a strong educational system, making it an attractive destination for companies looking for reliable IoT development partners. The cultural alignment with the U.S. adds to its appeal [[additional source needed.

II. Mexico

With a growing IT sector, Mexico is becoming a preferred destination. Proximity to the U.S., cultural compatibility, and a favorable business environment make it an attractive option. Mexico’s strategic location and efforts to enhance its IT capabilities position it as a competitive choice for IoT development outsourcing.

Different Options for Hiring IoT Application Developers

From outsourcing to building a dedicated team, discover the optimal choice for building your IoT development team.

1. Engage a Partner with IoT Experience:

Engaging a partner with existing IoT experience can be a strategic move for companies aiming to develop IoT applications. This option involves collaborating with a specialized firm that already possesses a skilled team familiar with IoT technologies and development processes. By leveraging their expertise, companies can potentially accelerate the development timeline and navigate the complexities of IoT projects more efficiently. However, it’s essential to carefully consider the terms of partnership, as this approach may entail sharing ownership or revenue. Collaborating with an experienced partner can provide insights into best practices, industry trends, and potential challenges, contributing to the overall success of the IoT project.

Pros:

  • Tap into the expertise of a team that already has experience in IoT development.
  • Benefit from their knowledge of best practices and potential challenges.
  • Faster development time due to their pre-existing skills and infrastructure.

Cons:

  • Might involve sharing ownership or revenue with the partner, which may not be suitable for everyone.
  • Limited control over the development process.

2. Assemble Your Own Team

Assembling an in-house team for IoT application development offers the advantage of full control over the team composition and development process. Companies can tailor the team to their specific needs, ensuring that members possess the required skills and align with the project goals. However, challenges may arise for companies inexperienced in IoT development. Integrating IoT specialists into an existing team might be complex, and there could be a learning curve for the organization as a whole. While this approach allows for direct involvement in the hiring process, it often results in longer recruitment timelines and the possibility of hiring individuals with limited IoT expertise.

Pros:

  • Full control over the team composition and development process.
  • Direct involvement in the hiring process allows you to tailor the team to your specific needs.

Cons:

  • Challenges for companies inexperienced in IoT development, as integrating IoT specialists might be complex.
  • Longer recruitment timelines, and the possibility of hiring individuals with limited IoT expertise.

3. Outsourcing to IoT Developers

Outsourcing the IoT project to specialized developers provides access to a pool of professionals without the need for in-house expertise. This option can be cost-effective, especially if outsourcing to regions with lower labor costs. The flexibility to scale the team based on project requirements is a significant advantage. However, challenges such as communication barriers due to geographical and cultural differences may arise. Additionally, ensuring quality control and effective project management becomes crucial, requiring careful selection of an outsourcing partner.

Pros

  • Access to a pool of specialized IoT developers without the need for in-house expertise.
  • Cost-effective, especially if outsourcing to a region with lower labor costs.
  • Flexible scalability – easily adjust the team size based on project requirements.

Cons

  • Communication challenges due to geographical and cultural differences.
  • Potential issues with quality control and project management if not handled properly.

4. Building a Dedicated IoT Team

Building a dedicated in-house IoT team involves recruiting and forming a team within the organization. This option provides full control over the team, fostering a cohesive and aligned development process. Companies can focus on long-term goals, continuous improvement, and direct collaboration within the same organizational structure. However, this approach demands significant time and resources for recruitment, onboarding, and team building. Finding and retaining skilled IoT professionals in a competitive market can be a challenge, but the benefits include a more integrated and closely-knit team.

Pros

  • Full control over the team, fostering a cohesive and aligned development process.
  • Ability to focus on long-term goals and continuous improvement.
  • Direct collaboration and communication within the same organizational structure.

Cons

  • Requires significant time and resources for recruitment, onboarding, and team building.
  • Potential challenges in finding and retaining skilled IoT professionals.

5. Hybrid Approach  

A hybrid approach combines elements of in-house development and outsourcing. Companies can leverage external expertise for specific tasks or phases of the IoT project while maintaining control over critical aspects internally. This approach offers flexibility, allowing organizations to scale resources based on project requirements. However, effective coordination between in-house and external teams is essential to ensure seamless collaboration. Potential challenges may include misalignment in development methodologies and communication processes. Striking the right balance between in-house control and external flexibility is crucial for the success of this approach.

Pros:

  • Combines the benefits of in-house control with the flexibility of outsourcing.
  • Can leverage external expertise for specific tasks or phases of the project.

Cons:

  • Requires effective coordination between in-house and external teams.
  • Potential for misalignment in development methodologies and communication.

Why Hiring Indian IoT Developers Is the Best Option?

Discover why hiring Indian IoT developers stands out as the optimal choice, as we delve into the unique advantages and expertise they bring to the table.

1. Abundant Talent in IoT Development

India is home to a vast pool of skilled professionals, and projections for 2024 indicate that it will host the world’s largest developer base. In the realm of IoT development, Indian experts bring a wealth of experience in various domains, including SaaS, mobile applications, artificial intelligence (AI), and data analytics. The expansive talent pool ensures a diverse set of skills, making India a strategic destination for hiring IoT developers capable of addressing multifaceted project requirements.

2. Highly Skilled IoT Developers

Indian programmers are recognized for their proficiency in foundational areas such as mathematics and logic, and they excel in cutting-edge technologies like IoT. Their expertise extends to emerging fields such as AI, machine learning, blockchain, cybersecurity, and robotics, providing a solid foundation for tackling the complexities of IoT development. The adeptness of Indian IoT developers in these critical areas positions them as valuable contributors to projects requiring advanced technical skills.

3. Communication Excellence

With English integrated into the education curriculum, Indian IoT developers 

exhibit exceptional communication skills in the language. This proficiency in English facilitates seamless collaboration with global teams and clients, eliminating language barriers during the development process. The ability to convey ideas, discuss project nuances, and comprehend client requirements ensures effective communication channels throughout the IoT development lifecycle.

4. Cost-Effective IoT Development

Outsourcing IoT development to India offers significant cost advantages, with hourly rates notably lower than those in Western countries. This cost-effectiveness allows businesses to access a highly skilled pool of IoT professionals at a fraction of the cost, making India an economically viable choice for IoT projects. The financial prudence associated with Indian IoT development ensures that companies can optimize their budgets while maintaining high-quality standards.

5. Benefit of Time-zone Differences for IoT Projects

The substantial time-zone difference between India and Western countries serves as a strategic advantage for IoT projects. This difference enables around-the-clock development, fostering continuous progress. When the Indian IoT development teams complete their workday, the in-house teams in Western countries can review and provide feedback, ensuring a seamless workflow and minimizing project delays.

6. Flexibility in IoT Development

Indian IoT developers are known for their adaptability and flexibility in working hours. This characteristic is particularly beneficial for IoT projects that may require adjustments to meet specific timelines or project needs. The willingness of Indian IoT developers to accommodate varied work schedules contributes to enhanced project efficiency and adaptability to evolving requirements.

7. Continuous Learning in IoT

Indian IoT developers exhibit a strong commitment to continuous learning, with a significant portion being self-taught. This dedication reflects their enthusiasm to stay abreast of the latest developments in IoT and related technologies. The proactive approach to learning ensures that Indian IoT developers remain innovative and well-equipped to address evolving challenges in the dynamic IoT domain.

8. Adherence to Global Standards in IoT Development

Having experience working with global clients, Indian IoT developers adhere to international standards and best practices in IoT development. Exposure to diverse project requirements and global perspectives equips them with a comprehensive understanding of industry benchmarks, ensuring that IoT projects align with the highest quality and compliance standards.

9. Faster Turnaround Time for IoT Projects

Indian IoT developers prioritize innovation and efficiency, translating into faster turnaround times for challenges and updates in the dynamic field of IoT development. The commitment to quick responses ensures that IoT projects progress seamlessly, meeting deadlines and adapting to evolving project requirements in a timely manner.

10. 24/7 Development Support for IoT Projects

The readiness of Indian IoT developers to work across different time zones provides a distinct advantage, offering continuous development support for IoT projects. This commitment to around-the-clock availability ensures that developers can address project needs, meet deadlines, and provide efficient support, contributing to the success of IoT initiatives.

11. Closing the Talent Gap in IoT

As the demand for IoT talent continues to rise globally, India emerges as a solution with a growing economy and a consistent influx of qualified software graduates specializing in IoT-related skills. The steady addition of approximately 200,000 software graduates annually, with a focus on advanced coding, data security, and cloud computing, positions India as a key contributor to filling the widening talent gap in the IoT industry worldwide.

How To Build Your Dedicated IoT Software Development Team?

Building a dedicated IoT software development team is a strategic process that requires careful planning and consideration. In the following steps, we’ll outline key measures to help you assemble a skilled and cohesive team capable of successfully navigating the complexities of IoT software development.

1. Building Team Structure

Engaging a distributed team for IoT software development entails broadening your business capacities by integrating developers and managers situated in diverse regions. A committed IoT app development team is deeply engaged in the client’s project, dedicating their full-time efforts. Direct access to each outsourced software developer is commonly established, fostering a collaborative and communicative atmosphere. As just one of numerous potential examples, a basic team structure might look like this:

I. Developer(s) 

When building your dedicated IoT software development team, the foundation lies in selecting skilled developers who specialize based on project requirements. Whether it’s a backend developer ensuring robust server-side functionalities or a mobile developer crafting a seamless user experience, the choice depends on the specific needs of your IoT application. A backend developer might focus on creating scalable and secure server architectures to handle the data influx from connected devices. Meanwhile, a mobile developer can design user-friendly interfaces for end-users interacting with the IoT system. Having a versatile team of developers ensures a comprehensive approach to IoT software development, covering various aspects of the project.

II. Hardware Engineer

The presence of a hardware engineer is indispensable, especially for IoT projects involving physical devices and components. These experts bring a deep understanding of electronic systems and play a pivotal role in hardware integration. They collaborate with software developers to ensure seamless communication between the software layer and the physical devices. Hardware engineers are responsible for selecting appropriate sensors, actuators, and other components, ensuring they are compatible with the IoT system’s requirements. Their expertise in optimizing hardware performance and addressing potential challenges is crucial for the success of any IoT project with a hardware component.

III. Embedded Developer

An embedded developer is a key player in the IoT development team, focusing on writing firmware for microcontrollers embedded in IoT devices. These developers have expertise in low-level programming languages and understand the intricacies of working with resource-constrained environments. Their role is critical in ensuring the efficient functioning of IoT devices, as they write code that directly interacts with hardware components. Embedded developers also play a significant role in optimizing code for performance and power efficiency, a crucial aspect for IoT devices that often operate on limited resources.

IV. QA Engineer

Quality assurance (QA) is paramount in IoT software development to guarantee the reliability and security of the application. A dedicated QA engineer is responsible for conducting rigorous testing at various stages of the development process. This includes functional testing to ensure that the IoT application meets specified requirements, performance testing to assess scalability, and security testing to identify and address vulnerabilities. QA engineers also play a crucial role in conducting compatibility testing across a range of devices and platforms to ensure a seamless user experience. Their involvement ensures that the IoT application is robust, resilient, and capable of handling real-world scenarios effectively.

V. Project Manager

A project manager is the linchpin of the IoT software development team, overseeing the entire development process from inception to delivery. They are responsible for coordinating the efforts of the team members, ensuring that tasks are completed on time, and addressing any challenges that may arise during development. The project manager plays a crucial role in communication with stakeholders, providing regular updates on project progress and managing expectations. Additionally, they focus on resource allocation, risk management, and ensuring that the development process aligns with the client’s requirements and expectations. A skilled project manager contributes to the overall success of the IoT project by facilitating smooth collaboration and timely delivery.

2. Define Technical Requirements and Stack

Before selecting a development service provider, define a set of technical requirements for the IoT product. This includes determining the stack of technologies needed for the product’s creation. Participate in crafting an IoT developer job description to find specialists aligned with the project’s requirements. Pay attention to less obvious competencies, such as the ability to work with third-party APIs for seamless integration. Knowledge of data transfer protocols, web and mobile development, and familiarity with various network technologies is crucial. Consider hardware engineering if it’s not covered internally, and involve UI/UX designers and product managers based on project needs.

3. Technical Details to Consider

When selecting an IoT development team, focus on technical details that can significantly impact development speed. Look for expertise in working with various data transfer protocols, from basic HTTP to specific ones like modbus, RS-485, KNX, and I2C. The ability to navigate these protocols expedites the integration of software and physical devices, reducing development costs. Knowledge of network technologies such as Ethernet, TCP/IP, Zigbee, and Bluetooth is essential. If hardware engineering is not in-house, find a partner with expertise in designing devices and sensors. Consider the inclusion of UI/UX designers and product managers based on project needs.

4. Confirm Experience with Completed Projects

Before finalizing a partnership, ask potential IoT development partners to showcase their completed projects, preferably those relevant to your product’s intended sectors. Examining past projects gives insight into the team’s capabilities, experience, and ability to deliver results in specific domains. This step helps ensure that the selected development team aligns with your product’s unique requirements and challenges.

5. Establish Cost Limits and Timeline

Agree on the cost limit and desired timeline for the development process. Seek detailed information from the partner regarding the various stages of development. Discuss and agree on additional services for supporting and maintaining the product after development. Establish timelines and parameters for testing to enable the prompt identification and correction of errors.

6. Conduct Candidate Interviews

In the process of building your dedicated IoT software development team, conduct interviews with potential candidates. This step allows you to assess whether the employee fits into your corporate culture and evaluate their soft skills, including project management, business intelligence, and language proficiency. Understanding the compatibility of team members with your organization’s values and goals is crucial for fostering a cohesive and effective development team.

Conclusion

Hiring IoT developers is a crucial undertaking that requires careful consideration and a strategic approach. The multifaceted nature of IoT projects demands a specialized skill set, making it essential to identify candidates with expertise in hardware, software, connectivity, and data analytics. 

To streamline the hiring process, businesses should clearly define their project requirements, establish a comprehensive job description, and leverage various recruitment channels, including online platforms, industry events, and professional networks.

Businesses may also explore alternative hiring models, such as outsourcing, to access a global pool of skilled developers and benefit from specialized IoT development teams’ collective knowledge and experience. Ultimately, a well-planned and meticulous hiring process is instrumental in assembling a proficient IoT development team that can drive innovation, navigate challenges, and contribute to the success of IoT initiatives in the ever-expanding realm of interconnected technologies.

Why Select The Idea Usher IoT Development Team?

Selecting The Idea Usher for IoT development is a strategic choice driven by a myriad of factors that set them apart in the competitive landscape. The team’s extensive experience in IoT projects showcases a deep understanding of the complexities and nuances inherent in this rapidly evolving field. Their track record of successful implementations attests to their proficiency in navigating the challenges of IoT development, ensuring reliable and innovative solutions for clients.

The Idea Usher’s commitment to staying abreast of the latest technological advancements ensures that clients benefit from cutting-edge solutions. The team’s proactive approach to adopting emerging trends positions them as thought leaders in the IoT domain, providing clients with forward-thinking and future-proofed solutions.

Contact us today to learn how we can help you with IoT development.

Hire ex-FANG developers, with combined 50000+ coding hours experience

Hire Ex - developers, with combined 50000+ coding hours experience

FAQ

Q: Are there dedicated platforms for finding IoT developers?

A. Consider utilizing trusted portals like Clutch or Top Tech Biz, providing information on top IT companies and objective assessments of specialists. Platforms such as LinkedIn, GitHub, Hired, AngelList, and CrunchBoard are also effective for searching and hiring IoT developers.

Q: What is the ideal team size for IoT development?

A. The size of your IoT development team depends on the project’s scale and requirements. For a small startup, an initial team might include a developer or multiple developers, a hardware engineer, an embedded developer, or a QA engineer.

Q: What other factors should be considered when hiring IoT developers?

A. A number of things need to be taken into account, including defining the technical specifications and technology stack, asking to see showcases of finished IoT projects, particularly in related industries, establishing budgets and development schedules, getting comprehensive information on the stages of development, and deciding on extra support and maintenance services, conduct interviews to evaluate candidates’ soft and technical skills.

Share this article
Contact Us
HR contact details
Follow us on

Idea Usher is a pioneering IT company with a definite set of services and solutions. We aim at providing impeccable services to our clients and establishing a reliable relationship.

Our Partners
Contact Us
Follow us on

Idea Usher is a pioneering IT company with a definite set of services and solutions. We aim at providing impeccable services to our clients and establishing a reliable relationship.

Our Partners
Newsletter
© Idea Usher. 2024 All rights reserved.