Commonly Asked Cisco Interview Questions for Cisco Recruitment in 2023 | IQCode Magazine

About Cisco

Cisco Systems is the leading provider of computer networking products, systems, and services worldwide. The company was founded in 1984 by two Stanford University scientists who wanted to create an easier way to connect multiple computer systems. Cisco's first product was sold in 1986, and it has since become a multinational corporation with thousands of employees in over 115 countries. Today, Cisco offers networking solutions for various service providers, small to medium businesses, and enterprise customers such as government organizations, educational institutions, and large corporations.

Cisco's networking solutions connect people, computer networks, and computing devices, enabling individuals to access or transfer data without time, place, or computer system limitations. Clients use Cisco's comprehensive networking solutions to create their unified data infrastructure or connect to someone else's network. Cisco provides the industry's broadest range of hardware products to form information networks or offer people access to those networks. Cisco IOS® software enables networked applications and provides network services.

Cisco caters to three target markets, namely, enterprises, service providers, and small to medium businesses. Enterprises refer to large businesses with complex networking needs that generally span across multiple locations and types of computer systems. Service providers are companies that provide information services, including telecommunication carriers, internet service providers, cable companies, and wireless communication providers. Small to medium businesses need their data networks and connections to the internet and business partners.

Unlike other IT firms, Cisco does not follow a rigid approach that focuses on one technology over others and imposes it on clients as the only solution. Cisco's policy is to listen to customer queries, monitor technological options, and offer a range of alternatives from which to select. Cisco develops its solutions and products based on widely accepted industry standards.

Cisco Recruitment Process

Interview Process

The interview process for Cisco primarily involves an initial phone screening, followed by a technical interview and an onsite interview. Candidates also undergo a behavioral interview, which determines if they have the necessary skills and qualities to work effectively at Cisco. Technical interviews evaluate practical, theoretical and technical skills related to the position. Cisco has various tools and methodologies to assess the technical expertise of the candidate. After passing the initial screening process, Cisco candidates will typically have at least two on-site interviews with the hiring manager and members of the team. These interviews include practical exercises and demonstrations to provide a complete and comprehensive assessment of the candidate's skills and abilities.

Cisco Technical Interview Questions for Freshers and Experienced

One of the questions that may come up in a Cisco technical interview is:

What is a diskless workstation?

A diskless workstation is a computer that operates without a traditional hard disk drive. Instead, it uses a network to access and store all of its data, programs, and operating systems. This type of setup is typically used in environments where multiple users need access to a central system. The diskless workstation can be a cost-effective and efficient way to manage a network, especially in situations where security and maintenance are top priorities.

Protocol Used for Booting Diskless Workstations

When booting diskless workstations, the protocol that will be used is the Preboot Execution Environment (PXE) protocol.

Bridges in Networking: Functionality and Usage

In computer networking, a bridge is a device that connects two or more local area networks (LANs) or segments of a large LAN. It operates at the data link layer (layer 2) of the OSI model and is responsible for forwarding frames between LANs based on their destination MAC addresses. A bridge can be either a hardware device or a software program.

Bridges are often used to increase the size of a LAN or to connect multiple LANs together. They are particularly useful in situations where a network is physically separated but needs to function as a single logical network. By forwarding frames between LANs, bridges allow computers in different parts of the network to communicate with each other as if they were on the same LAN.

Bridges can also be used to create separate collision domains within a network. In a shared Ethernet network, all devices connected to the same segment are part of the same collision domain. This means that if two devices transmit at the same time, their signals will interfere with each other and both transmissions will be corrupted. By using bridges to segment a network into smaller LANs, each LAN can have its own separate collision domain. This helps to reduce collisions and improve network performance.

Overall, bridges are an important component of modern computer networks. They provide a reliable and efficient way to connect LANs together and can significantly improve network performance in large or complex networks.

Understanding IP Access Lists

An IP access list, also known as a firewall, is a set of rules used to filter network traffic and control access to a computer or a network. It determines which packets of information are allowed to enter or leave a network based on their IP address, port number, protocol type, etc. IP access lists can be implemented on routers, switches, or firewalls to ensure the security and performance of a network.

Reasons for using a layered model in the networking industry:

The use of a layered model in the networking industry provides various benefits, such as:

  1. Simplicity: It allows us to break down complex systems into smaller, more manageable components.
  2. Modularity: Each layer can be designed, implemented, and maintained independently of other layers, resulting in greater flexibility in adapting to changes and new technologies.
  3. Interoperability: Having standardized protocols and interfaces in each layer makes it easier for different devices and systems to communicate with each other, regardless of their physical and logical differences.
  4. Efficiency: The layered approach allows for optimized use of resources, such as bandwidth, processing power, and memory, by minimizing redundant or unnecessary functions and processes.
  5. Ease of troubleshooting and fault isolation: Each layer has a well-defined set of functions and responsibilities, making it easier to identify and isolate problems and faults within a particular layer without affecting the other layers.
Overall, a layered model simplifies network architecture while improving its functionality, scalability, and maintainability.

TACACS and RADIUS in Networking

TACACS (Terminal Access Controller Access Control System) and RADIUS (Remote Authentication Dial-in User Service) are both protocols used in network security for authenticating and authorizing user access. TACACS is a Cisco-owned protocol and RADIUS is an open-standard protocol.

Both protocols serve the same purpose of allowing for secure remote access to network resources. TACACS and RADIUS use authentication servers to grant or deny users access based on their credentials. However, the key difference between TACACS and RADIUS lies in the type of information they handle.

TACACS separates authentication, authorization, and accounting (AAA) into three separate functions. This means that each function can be managed independently and can be used to implement different security policies. RADIUS, on the other hand, integrates AAA into one function, meaning that if one function fails, all three will fail.

Overall, both TACACS and RADIUS provide similar functionalities but differ in their implementation. It is important to understand the differences between these protocols in order to choose the one that best suits your organization's security needs.

Benefits of Subnetting

Subnetting is a process of dividing a network into smaller sub-networks. This can provide several benefits, including:

1. Better network performance: Subnetting can help to reduce network congestion by segmenting the overall network into smaller, more manageable sub-networks. This can also help to improve network security by limiting the scope of broadcast traffic.

2. Improved network management: By dividing a network into smaller sub-networks, network administrators can easily manage and troubleshoot network issues. This can also help to reduce operational costs.

3. Increased efficiency: Subnetting helps to optimize network resources, allowing for better bandwidth utilization and more efficient use of IP addresses.

4. Improved security: With subnetting, it is easier to implement security policies and access controls at the network level. This can help to prevent unauthorized access and protect sensitive data.

Overall, subnetting is a powerful tool that can help to improve network performance, management, efficiency, and security.

How is a TCP Connection Established?

TCP (Transmission Control Protocol) is a widely used protocol for transmitting data over the internet. It is a connection-oriented protocol, meaning it ensures that a connection is established between the sender and receiver before sending any data.

Here are the steps involved in establishing a TCP connection:

1. Syn: The first step is the Syn (Synchronize) message sent by the sender to the receiver. This message contains a random sequence number generated by the sender.

2. Syn-Ack: The second step is the Syn-Ack (Synchronize-Acknowledge) message sent by the receiver to the sender. This message contains the acknowledgement of the sequence number sent by the sender and a randomly generated sequence number from the receiver.

3. Ack: The final step is the Ack (Acknowledge) message, which is sent by the sender to the receiver. This message contains the acknowledgement of the sequence number sent by the receiver.

Once these steps are completed, a TCP connection is established, and both parties can start transmitting data over the connection.

It's important to note that TCP is a reliable protocol, meaning that it guarantees that all data sent is received and in the correct order. If any data is lost or damaged during transmission, TCP will retransmit it until it is received correctly.

Cisco Default TCP Session Timeout

What is the default TCP session timeout value in Cisco devices?

What is a Transparent Firewall?

A transparent firewall is a network security device that operates as a layer 2 bridge and intercepts traffic between two network segments. The firewall is placed in-line with the network traffic and is invisible to the devices on either end of the connection. It inspects all packets passing through the firewall and takes action based on predefined security rules. Transparent firewalls are used to provide additional security without changing the network topology or IP addressing. They are commonly used as a complement to traditional firewalls or as an additional layer of security in areas where traditional firewalls cannot be deployed.

Explanation of Cut-Through LAN Switching

Cut-Through LAN switching is a method of packet switching used in network switches. It is designed to increase network efficiency by forwarding packets as soon as the destination address is identified, while the rest of the packet is still being received. In contrast to store-and-forward switching, which waits for the entire packet to be received before forwarding it, cut-through LAN switching forwards the packet to the destination interface almost immediately, with minimal latency.

Cut-through switching works by examining the destination packet's MAC address as soon as it's received and forwarding it to the destination interface without buffering the entire frame. The switch reads the first 6 bytes of the data-link layer Ethernet frame, which contains the destination MAC address before forwarding the packet. This allows for a shorter delay between reception and forwarding, which can be beneficial for real-time applications such as video conferencing.

While cut-through switching can be beneficial in terms of latency, it can also come with some drawbacks, namely the possibility of forwarding invalid or corrupted packets. To mitigate this risk, most modern switches use a modified version of cut-through switching known as "fragment-free switching," which first examines the first 64 bytes of the packet for errors before forwarding it. This reduces the risk of forwarding invalid packets while still minimizing latency and maximizing network efficiency.

Types of Memory Used in Cisco Router

In Cisco routers, there are mainly four types of memory used:

  1. RAM (Random Access Memory): This is the main memory used by the router for storing running configuration, routing tables, ARP cache, packet buffers, etc. It is volatile, which means its data will be erased when the router reboots or shuts down.
  2. NVRAM (Non-Volatile Random Access Memory): This is used for storing the startup configuration file. It is non-volatile, which means its data will not be erased when the router reboots or shuts down.
  3. Flash Memory: This is used for storing the IOS (Internetwork Operating System) image, configuration files, and other system-related files. It is non-volatile, which means its data will not be erased when the router reboots or shuts down.
  4. ROM (Read-Only Memory): This is used for storing the bootstrap program or the bootloader program that initializes the router when it is powered on. It is non-volatile and cannot be modified.

Understanding Deadlocks in Operating Systems

A deadlock is a state in which two or more processes are unable to continue executing because they are in a waiting pattern for resources that each other process holds. In other words, each process is waiting for a resource that is held by another process, which is also waiting for a resource held by another process. This results in a situation where neither of the processes can proceed, and they become deadlocked.

Situation in which deadlocks can occur are:

  1. Mutual Exclusion: At least one resource is held in a non-sharable mode.
  2. Hold and Wait: A process is holding at least one resource and waiting for additional resources that are currently being held by other processes.
  3. No Preemption: Resources cannot be forcibly removed from a process that is using them.
  4. Circular Wait: A set of processes are waiting for each other in a circular chain.

Deadlocks can significantly impact the performance of a system, and can even bring it to a complete standstill. Therefore, it is essential for operating systems to have effective mechanisms in place to detect and resolve deadlocks.

Explanation of Virtual Memory

Virtual memory is a computer storage technique that enables a computer to use more memory than it has physically available in its RAM. It is a layer of memory management that maps data to and from the computer's hard disk or SSD to its RAM. This mapping is achieved through a paging system by breaking the physical memory into smaller portions called pages. Virtual memory plays an essential role in enabling larger and more complex programs to run on a computer with limited physical memory.

Improving Memory Management through Swapping

Swapping is a memory management technique in which the operating system moves data from the main memory (RAM) to the secondary storage (hard disk) to free up space in the RAM for other processes. This technique allows more processes to run simultaneously, leading to better memory management.

When a process is not actively being used, the operating system can swap it out of the main memory and into the hard disk. This frees up the memory space, which can be utilized by other processes. When the swapped-out process is needed again, the operating system can swap it back into the main memory.

By swapping out idle processes, the operating system can ensure that the available memory is optimally used, which can lead to better system performance. Additionally, swapping allows systems to handle larger applications and processes, providing users with a better computing experience overall.

Explanation of Recovery Testing

Recovery Testing refers to a type of software testing where the system's ability to recover from errors or failures is tested. This type of testing is performed to ensure that the system can recover from any unexpected errors or system crashes that may occur during its operation. The goal of recovery testing is to identify the system's recovery time, the amount of data that is lost during the recovery process, and the system's ability to return to a stable state after an error or failure has occurred. It is an important type of testing that helps to ensure the stability and reliability of the system in production environments.

Difference between C and C++

C is a procedural programming language, whereas C++ is an object-oriented programming language.

C has a limited number of predefined library functions, while C++ has a rich set of standard library functions and classes.

C allows manual memory management using pointers, whereas C++ supports both manual and automatic memory management using features like constructors, destructors, and smart pointers.

C is a low-level language with limited abstraction, while C++ provides high-level abstractions using features like templates, operator overloading, and inheritance.

While both languages share a similar syntax, C++ includes additional features and concepts, making it more complex than C.

//Example of C code #include

int main() { printf("Hello, World!"); return 0; }

//Example of C++ code #include

using namespace std;

int main() { cout << "Hello, World!"; return 0; }

Understanding Void Pointers in C

In C, a void pointer is a pointer that has no associated data type. It is a general-purpose pointer that can hold the address of any data type, including pointers. However, it cannot be directly dereferenced because the compiler does not know the type of data it is pointing to.

To dereference a void pointer, you must first cast it to a pointer of the appropriate type. Without casting to a specific type, dereferencing a void pointer would result in a compilation error. Therefore, it is essential to know the data type before dereferencing the void pointer to avoid undefined behavior.

How to achieve multithreading in Python

In Python, you can implement multithreading using the 'threading' module. To do so, you can define a function that will run concurrently and pass it as a target to the 'Thread' class. The 'start' method is used to start a new thread. Here is an example:

import threading

def my_function(): # code to be executed in the new thread

t = threading.Thread(target=my_function) t.start()

In this example, the 'my_function' function will run in a new thread when the 'start' method is called. You can also pass arguments to the target function using the 'args' parameter of the 'Thread' class constructor.

Keep in mind that multithreading can introduce race conditions and deadlocks, so it's important to use locks and other synchronization mechanisms to avoid them.

Explanation of the "auto" keyword in C programming language

In C programming, the "auto" keyword is used to declare a variable with a limited scope. Auto variables are stored in the stack memory and have an automatic storage duration which means they are created when a function is called and destroyed when the function returns.

When we declare a variable without any storage class specifier, such as "int x;", it is by default an auto variable.

Example of declaring an auto variable:


void add(int a, int b) {
   auto int result = 0;
   result = a + b;
   printf("The sum is %d", result);

In the above example, the variable "result" is declared as an auto variable with the "auto" keyword. It gets created and destroyed automatically within the function.

Note that the "auto" keyword is rarely used in modern C programming as it is the default storage class specifier for variables.

Creating a Stack using Linked List in Java

In Java, we can implement a stack using a linked list. The stack follows the Last-In-First-Out (LIFO) principle. The linked list has a top node that keeps track of the most recent item on the stack. Here is an example Java program that demonstrates how to create a stack using a linked list:

public class Stack {
    private Node top; // the top element of the stack

    private class Node {
        private int data; // data element of the node
        private Node next; // next element in the list

        // Constructor to initialize the data and next pointer
        public Node(int data) {
   = data;
   = null;

    // Check if the stack is empty
    public boolean isEmpty() {
        return top == null;

    // Pushes an element onto the stack
    public void push(int data) {
        Node newNode = new Node(data); // create new node = top; // Link old list off the new node
        top = newNode; // The new node is now the top node

    // Removes the top element from the stack
    public int pop() {
        if (isEmpty()) { // Check for underflow condition
            throw new RuntimeException("Stack Underflow");
        } else {
            int data =; // Get the data from the top node
            top =; // move the pointer to the next element
            return data; // return the data value

    // Returns the top element of the stack without removing it
    public int peek() {
        if (isEmpty()) { // Check for underflow condition
            throw new RuntimeException("Stack Underflow");
        } else {
            return; // return the data element of the top node

    // Prints the stack elements
    public void display() {
        if (isEmpty()) {
            System.out.println("Stack is empty");
        } else {
            Node temp = top; // start at the top
            while (temp != null) { // loop through all elements
                System.out.println(; // print the data element
                temp =; // move to the next node

    // main method to test the stack implementation
    public static void main(String[] args) {
        Stack stack = new Stack(); // create an empty stack

        // Push some elements onto the stack
        // Display the stack elements

        // Pop the top element off the stack

        // Display the stack elements after popping top element

In this example, we have defined a Stack class with inner Node class to implement the linked list. The class has methods to push, pop, peek, and display the elements of the stack. The main method creates an instance of the stack and demonstrates its use.

Generating all permutations of a given string

function permutations(str) {
  if (str.length <= 1) {
    return [str];

  let perms = [];

  for (let i = 0; i < str.length; i++) {
    const char = str[i];

    const remaining = str.slice(0, i) + str.slice(i + 1);

    const subPerms = permutations(remaining);

    for (let j = 0; j < subPerms.length; j++) {
      perms.push(char + subPerms[j]);

  return perms;

const str = "abc";


This program generates all possible permutations of a given string by using recursion. It first checks if the length of the string is 1 or less, in which case it will return the string itself. Otherwise, it will loop through each character of the string and generate permutations of the remaining characters using recursion. It will then add the current character to the beginning of each permutation generated and add them to the final array of permutations. Finally, it will return the array of all permutations.

For example, given the string "abc", the output will be an array of all possible permutations: ["abc", "acb", "bac", "bca", "cab", "cba"].

Finding the Greatest Difference between Two Elements in an Increasingly Ordered Array

function findGreatestDifference(arr) {
  let maxDiff = 0;
  let minElement = arr[0];

  for (let i = 1; i < arr.length; i++) {
    // check if current element is greater than minimum element found so far
    if (arr[i] > minElement) {
      // update max difference if applicable
      maxDiff = Math.max(maxDiff, arr[i] - minElement);
    } else {
      // update minimum element if applicable
      minElement = arr[i];

  return maxDiff;

// Example usage
const arr = [1, 3, 8, 12, 15];
const greatestDiff = findGreatestDifference(arr);
console.log(`The greatest difference in ${arr} is ${greatestDiff}`);

The above program finds the greatest difference between two elements in an array that is in increasing order. The function first initializes the maximum difference as 0 and the minimum element in the array as the first element.

It then iterates through the array and compares each element to the current minimum element. If the current element is greater than the minimum element, it calculates the difference and updates the maximum difference if the current difference is greater. If the current element is less than or equal to the minimum element, it updates the minimum element to the current element.

Finally, the function returns the maximum difference found. The example usage demonstrates how to call the function with an example array and logs the result to the console.

Program to Find First and Last Occurrences of a Number in a Sorted Array

function findOccurrences(arr, n) {
  let first = -1;
  let last = -1;

  for (let i = 0; i < arr.length; i++) {
    if (n !== arr[i]) continue;
    if (first === -1) first = i;
    last = i;

  if (first !== -1) {
    document.write("First occurrence: " + first + "<br>");
    document.write("Last occurrence: " + last);
  } else {
    document.write("Number not found in the array.");

const arr = [1, 2, 2, 4, 4, 4, 7, 8, 8];
const num = 4;

findOccurrences(arr, num);

This program finds the first and last occurrences of a given number in an array that is sorted in ascending order. We iterate through the array and when we find the given number, we set the first and last occurrences. Finally, we print these occurrences. If the number is not found in the array, we print a message indicating the same.

Reversing Each Word in a String

def reverse_words(sentence):
    words = sentence.split() 
    # split the sentence into a list of words
    reverse_words = [word[::-1] for word in words]
    # reverse each word using list comprehension
    reversed_sentence = " ".join(reverse_words)
    # join the reversed words into a sentence
    return reversed_sentence

# example usage
text = "Hello world"
# Output: olleH dlrow

This program takes a string and reverses each word in the string. It splits the string into a list of words, reverses each word using list comprehension, and then joins the reversed words back into a sentence.

Cisco Interview Preparation

Here are some tips to help you prepare for your Cisco interview:

1. Research the company and the position you are applying for. This will help you understand the company culture, goals, and values, which will allow you to show how you align with them.

2. Practice your interview skills by answering common interview questions and recording yourself. This will help you improve your communication skills and feel more confident during the actual interview.

3. Review your technical skills and relevant experience. Be prepared to discuss your knowledge and experience in the areas that are relevant to the position.

4. Dress professionally and arrive early for the interview. This will help you make a good impression and show that you are serious about the opportunity.

5. Be prepared to ask questions about the company and the position. This shows that you are interested and have done your research.

By following these tips, you can increase your chances of success during your Cisco interview.

Frequently Asked Questions

1. Why do you want to join Cisco?


//Code not required as it is just a question

How to Get Hired at Cisco?

To get hired at Cisco, one must follow a few steps. First, go through the job openings listed on Cisco's career website and find a job that fits your skills and experience. Next, submit your resume and cover letter via the website or an employee referral. After that, you may be asked to complete a pre-screening assessment and participate in one or more interviews. It's important to highlight your unique skills and experience during the interview process, and to showcase how you can contribute to Cisco's mission and values. Networking and building strong relationships with current Cisco employees can also increase your chances of getting selected.

What is the average salary of a Cisco employee in India?

To answer this question, we need to gather data on the salaries of Cisco employees in India and calculate their average. Unfortunately, without access to this data, we cannot provide an accurate answer. It's worth noting that salaries can vary widely depending on factors such as the employee's job title, experience level, and location within India.

Length of Cisco Interview Process

The Cisco interview process can vary in length depending on the position and the number of candidates. Typically, the process involves multiple rounds of interviews, including phone screenings and in-person or virtual interviews. The duration of the process can range from a few weeks to a few months. It is recommended to check with the hiring manager or recruiter for specific timelines.

Cisco Internship Program Compensation

As per company policy, Cisco interns are offered compensation for their work during their internship. The compensation may vary based on the role, location, and level of the intern. Cisco believes in providing a rewarding experience to its interns in terms of both learning and compensation.

Is a Cisco Interview Difficult?

Many people find Cisco interviews to be challenging, as they often involve technical questions related to networking, security, and telecommunications. However, with proper preparation and a solid understanding of the fundamentals, it is possible to succeed in a Cisco interview.

// Example preparation steps include studying Cisco certification materials, practicing technical skills, researching the company and its products, and reviewing common interview questions.

It is also important to highlight relevant experience and demonstrate problem-solving abilities. By showcasing a strong technical foundation and a passion for the industry, candidates can increase their chances of success in a Cisco interview.

Prerequisites for an Entry-Level Job at Cisco

To work at Cisco in an entry-level position, certain prerequisites must be met:

  • A bachelor's degree in a related field such as computer science or engineering
  • Familiarity with networking technologies and concepts
  • Strong communication and interpersonal skills
  • Ability to work in a team-oriented environment
  • Willingness to learn and adapt to new technologies and processes

Meeting these prerequisites will increase your chances of securing an entry-level job at Cisco. Additionally, having relevant experience through internships or previous job roles can also be beneficial.

Is Cisco a Good Company to Start Your Career?

As an AI language model, I don't have personal experience or opinions, but I can provide some information to help you make an informed decision.

Cisco is a well-known multinational technology company that offers a variety of networking and communication products. It has a reputation for providing an excellent work environment, opportunities for growth and development, and competitive compensation packages.

Cisco is committed to promoting diversity and inclusion and has received numerous accolades for its efforts. It also values corporate social responsibility and actively participates in various philanthropic activities.

In conclusion, Cisco could be a great company to start your career, but you should research the specific job role, the company culture, and other factors to ensure it aligns with your goals and values.

What to Expect During the Cisco Interview Process?

When going through the Cisco interview process, there will typically be several rounds of interviews. The first round may consist of a phone or video interview with a recruiter, followed by a technical assessment or coding challenge.

If you pass the initial rounds, you may be invited for an in-person interview with the hiring manager and a team member. During this interview, you can expect technical questions relevant to the position and may also be asked behavioral questions to assess how you work in a team and handle situations.

It is recommended that you research Cisco's company culture, mission, and values beforehand and come prepared with questions for the interviewer. The interview process at Cisco is thorough but rewarding if you make a good impression and showcase your skills and experience.

Technical Interview Guides

Here are guides for technical interviews, categorized from introductory to advanced levels.

View All

Best MCQ

As part of their written examination, numerous tech companies necessitate candidates to complete multiple-choice questions (MCQs) assessing their technical aptitude.

View MCQ's
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.