Hire the Best Developers In 72 Hours

Build your dream team with developers, engineers and architects from Flexiple, handpicked through a 6-stage screening process.
RICHA VERMA

RICHA VERMA

Senior Developer

WORKED AT

Plivo
TRI NGUYEN

TRI NGUYEN

Senior Developer

WORKED AT

Pecan Analytics
JUDE DIKE

JUDE DIKE

Backend Developer

WORKED AT

Teller Finance
DJURO ALFIREVIC

DJURO ALFIREVIC

Senior Developer

WORKED AT

Reddit
OTSUKA ENDO

OTSUKA ENDO

Senior Full Stack Developer

WORKED AT

Fujisoft

You Bring the Vision. We Build the Team.

Flexiple spent good amount of time understanding our requirements, resulting in accurate recommendations and quick ramp up by quality developers.
Narayan Vyas, Senior PM (YC S12)
Overall Flexiple brought in high-level of transparency with quick turnarounds in the hiring process at a significantly lower cost than any other alternate options out there.
Esther Hersh, Co-founder ('17 NYU Grad)
Flexiple has been instrumental in helping us grow at a fast pace. Their vetting process for engineers is top notch and they connected us with quality talent quickly.
Tanu V, Founder (#1 Salesforce Leads App)

Top Developers are Handpicked by Flexiple

  • MOHAMED SAMIR
    MOHAMED SAMIR
    .NET C Sharp

    A senior full-stack developer, Mohamed has an extensive experience of 13 years in the industry. Proficient in technologies like .NET, C Sharp, AngularJS, he has ... A senior full-stack developer, Mohamed has an extensive experience of 13 years in the industry. Proficient in technologies like .NET, C Sharp, AngularJS, he has developed applications across domains like EdTech, hospitality, FinTech, etc. He has worked with multiple teams and has also shown his ability to work as an individual contributor. Read MoreRead Less

    Worked at StratoChem Services

    Get a Quote
  • ADITYA VINNAKOTA
    ADITYA VINNAKOTA
    PHP Python NodeJS MySQL

    A Senior Developer with over 17 years of experience, Aditya has worked as both an Individual Contributor and Team Lead for multiple startups. Over the ... A Senior Developer with over 17 years of experience, Aditya has worked as both an Individual Contributor and Team Lead for multiple startups. Over the course of his career, he has gained a solid understanding of PHP, Python, NodeJS, MySQL, AWS (EC2, Lambda, CloudWatch, etc.), and Big Data technologies. Read MoreRead Less

    Worked at Edavntics

    Get a Quote
  • KOMAL AHLUWALIA
    KOMAL AHLUWALIA
    Java NodeJS AngularJS

    Komal is a software engineer with 5+ years of experience in developing scalable and concurrent business applications in Java, NodeJS, and AngularJS. Further, being exposed ... Komal is a software engineer with 5+ years of experience in developing scalable and concurrent business applications in Java, NodeJS, and AngularJS. Further, being exposed to the agile methodology gives her the ability to adapt to new technologies, learn, master and coach. And Komal has found working as a freelance fullstack developer more interesting everyday. Read MoreRead Less

    Worked at Thoughtworks

    Get a Quote
  • RICHA VERMA
    RICHA VERMA
    Ruby on Rails

    Richa is a freelance developer with 5+ years of software development experience across both large companies and fast-growing tech startups. While being a Rails loyalist, ... Richa is a freelance developer with 5+ years of software development experience across both large companies and fast-growing tech startups. While being a Rails loyalist, she has also slowly developed a liking for NodeJS and has hence also dabbled in JS frameworks. A graduate from IIT Kanpur (India's premier tech institute), she wishes to explore the latest technologies while enjoying her off-time travelling. Read MoreRead Less

    Worked at Plivo

    Get a Quote
  • SIDDARTH SHANKAR
    SIDDARTH SHANKAR
    NodeJS React Native VueJS

    A Software Engineer with 10+ years of experience across technologies such as JavaScript (React-Redux, NodeJS, React-Native, VueJS), Elixir, Scala, Python. During this time, he has ... A Software Engineer with 10+ years of experience across technologies such as JavaScript (React-Redux, NodeJS, React-Native, VueJS), Elixir, Scala, Python. During this time, he has shipped web applications, worked in react projects as a freelancer and built scalable distributed systems for early-stage startups while working as a remote contractor. Siddharth has a great reputation as a freelance developer which is a testament to his amicable work. Read MoreRead Less

    Worked at Kawasaki

    Get a Quote
  • ANKUR GUPTA
    ANKUR GUPTA
    Python C++ RoR

    Ankur, is a freelance backend engineer with around 10 years of experience in the software development domain. He started his career at Microsoft and over ... Ankur, is a freelance backend engineer with around 10 years of experience in the software development domain. He started his career at Microsoft and over the years has worked for other top companies including Craftsvilla. Ankur’s areas of expertise are diverse and the prominent technologies of that are Ruby on Rails, Python, C/ C++, AWS, Azure and Power BI. Read MoreRead Less

    Worked at Microsoft

    Get a Quote
  • ARJUN KAPOOR
    ARJUN KAPOOR
    ReactJS NodeJS Angular Java

    Arjun, a fullstack developer, has around 10 years of experience in the software development space. His areas of expertise revolve around ReactJS, NodeJS, Angular, Java, ... Arjun, a fullstack developer, has around 10 years of experience in the software development space. His areas of expertise revolve around ReactJS, NodeJS, Angular, Java, Android, C/C++ and Perl. Arjun gained experience by working in large product companies such as Atrenta and Guavus across stacks. And after working on a number of projects in domains like management, social networking and e-commerce, he took up freelance projects and has been working as AngularJS developer for the past 3 years. Read MoreRead Less

    Worked at Guavus

    Get a Quote
  • DJURO ALFIREVIC
    DJURO ALFIREVIC
    iOS Swift

    Djuro, a senior iOS architect, has spent over 14 years fine-tuning his skills in Swift and Objective-C. He has developed over 155 apps across service/ ... Djuro, a senior iOS architect, has spent over 14 years fine-tuning his skills in Swift and Objective-C. He has developed over 155 apps across service/ product-based companies and startups as an architect, team lead, full-stack developer, individual contributor. As a remote experienced freelance iOS developer, Djuro is a very detail-oriented person and an exceptional team player. Read MoreRead Less

    Worked at Reddit

    Get a Quote
  • Get access to 103 vetted developers

    Unlock 103 profiles

Hire Quality Talent. Personalized & Risk-Free.

Only The Best

Our developers are selected through a 6-stage screening process. As a result, our developers have an average of 5-years industry experience and are ready to immediately contribute on projects.

Role-Specific Developers

Save time and energy lost in manually sifting through profiles. Our solutions expert along with our Director of Technology will handpick developers who are a perfect match for your requirement.

Risk-Free & Start Within 2 Days

With immense confidence in the quality of our developers and the accuracy of our recommendations, we are happy to offer you a 2-week trial where you pay only if you are satisfied.

Book a Tech Consultation Call

Our 6-Step Developer Screening Process

45.4%pass rate

Depth in past work

Flexiple Developers are reviewed on their experience and complexity of products built. Those who display depth and have worked on end-to-end projects are given an introductory call.

14.6%pass rate

Good communication and motivation

Over a call, the developer’s ability to communicate in an articulate manner is tested. A deeper understanding of the candidate’s technical experience and also motivation to freelance is achieved.

3.1%pass rate

Strong technical abilities

Over one or more F2F interviews, the developer’s involvement and performance in building complex software products are assessed. This sets the platform to delve deeper into technology-specific discussions.

1.5%pass rate

Keen problem solving and coding

Developers' mental agility and problem-solving abilities are tested through a coding test involving algorithmic as well as skill-specific problems. A mixture of live evaluation and timed coding tests is used.

1.2%pass rate

Splendid reviews in background check

The live experience of working with developers is verified by reaching out to past clients and/or employers. Inputs on various qualitative factors such as reliability, punctuality, communication and responsiveness are received.

1%pass rate

Consistent exemplary performance

Performance during each engagement is continually assessed. Our developers are expected to maintain Flexiple standards across all engagements with our customers.

Hire Developers in 4 Simple Steps!

Your technical needs & business objectives are understood by our Solutions Experts.

You save time by reviewing profiles of only the best-suited candidates.

You interact with the candidates to ensure alignment with your product goals.

You, the freelancer & Flexiple work together to meet your engagement objectives.

100+ Startups & Companies Trust Us with Developer Hiring!

star-rating
Client Rating  4.5 | Our Clients 

Frequently Asked Questions

  • How To Find The Best Developers For Hire?

  • Development refers to a set of computer science activities dedicated to the process of creating, designing, deploying, and supporting software. It is the process of creating a piece of software designed to perform a particular task.

    If you’re looking to hire developers for your company, this guide is going to help you find the perfect fit. We’ve included everything you need to know about hiring a freelance Developer.

    1. Let's introduce Freelance development to you

    • Origin story: The history of development began in Manchester, England in 1948. Alan Turing came up with the term in 1935.
    • Widely popular: At the end of 2021, according to the State of the Developer Nation there were about 26.8 million active developers in the world. Out of these, 6 million work on Android development only.
    • 2. Why is Freelance development widespread?

      • Development is important because specific software is needed in almost every industry, in every business, and for every function.
      • Development is used to differentiate brands and gain competitive advantage which requires proficiency with the techniques and technologies that can accelerate software deployment, quality, and efficacy.

      3. What are the tools used by Developers?

      Here are some of the tools generally used by developers:

      1. IDEs and Code Editors

      Integrated Development Environments provide everything that is needed for a developer to build a software product. Language-specific, as well as general IDEs, are available in the market. Atom, Sublime, Visual Studio Code are examples of these.

      2. Inspection Tools

      Code inspection tools enable developers to check how their application will perform on a browser at the user's end. The developer can then make fixes to the software if required. Chrome DevTools is a commonly used tool under this category.

      3. Repositories

      These tools serve as a storage point for the software. These are particularly used for version control, where all the changes made to a piece of software are tracked. Using these, developers can access past versions of their code files with ease. GitHub is a commonly used developer tool in this category.

      4. Build and Deployment

      Deployment tools make it easier to distribute and update software that developers are working on. Containerization platforms like Docker allow developers to create, deploy and run apps in containers, making this process simple.

      5. Stack Overflow

      Stack Overflow is a large online forum for developers. Here, developers can ask any queries they have and other users answer help in finding solutions. Developers can also refer to already existing solutions for their queries.

      4. Writing the job description to hire developers

      Below are some key points that we at Flexiple have learned through trial and error - a process of filtering through over 15,000 developers. You can use these in your process to hire developers.

      • Years of software development experience: Be specific about the technology you’re looking for and the number of years of experience needed. A proxy to years of experience can be the number of production-level apps worked on.
      • Type of products built in the past: Based on the type of product you are trying to build - social network, SAAS product, etc. - you can prioritize certain developers over others.
      • Exposure to specific industries: Developers who have built products in certain industries will already know key aspects of laying the foundation for a great product and will be able to predict possible problems.
      • Experience working remotely: A developer with past remote work experience is an added advantage as they would have first-hand experience of everything - right from how contracts work to streamlined communication, as well as timelines and deliverables.
      • Strong communication: An essential thing to look at when hiring a freelancer is excellent communication skills. Since all the interaction happens online, a freelancer should be able to effectively communicate to ensure a streamlined execution of all work.
      • 5. Interview Questions to hire developers

        Now that you have made a quality JD, it can still be tricky to evaluate the skills of your applicants when you hire developers. To help you with that, we have created a pool of questions that a good developer should be comfortable with.

        It is important to note that the ability to answer these questions doesn't imply that you have a top quality candidate. But it definitely is a big step in that direction.

        To help you navigate through these questions, we’ve categorized the interview questions in 3 parts:

        A. Basic concepts: Includes all basic concepts used across languages.This will give you an understanding of how strong their programming foundation is.

        B. Advanced concepts: Includes all concepts that someone with higher expertise should know.

        C. DS/Algorithm questions: To test the logical capability of the candidate.

        A. Basic concepts

  • What is the difference between the operators == & === in JavaScript?

    The comparison operator double equals transform operands of the same type before comparison.

    Therefore, JavaScript turns any string into a number when comparing it to a number. Zero is always added to an empty string. A string that contains no numbers is converted to NaN (Not a Number), which produces a false result.

    In JavaScript, the triple equals comparison operator is a strict equality comparison operator that returns false for values that are not of the same type. With this operator, type casting is done for equality. For example, the comparison operator === will return a false result if we compare 2 with "2".

    The main distinction between the == and === operators is that the former compares variables by correcting for type. For example, if you compare a number with a string with a numeric literal, == allows that, whereas === doesn't allow that because it checks both the value and the type of two variables. === returns false if two variables are not of the same type. ==, however, returns true.

  • What is the popular open standard file format (like XML) used with javascript and node.js? And what are the popular commands to convert string to that and vice versa?

    It is JSON which stands for Javascript Object Notation. It is a lightweight data interchange format. It is easy for humans to read. Even though it has Javascript in its full form, it is language independent.

    It’s built on 2 structures:

    • Collection of key-value pairs. This is called an object, dictionary, hashmap, associative array, in different languages
    • Ordered list of values, This is called an array, list, vector, in different languages

    These are universal data structures which is important for a file format which is language independent.

    Example of JSON:

    {
      "flexiple": {
          "top": "1%",
          "location": "remote"
      },
      "blog": {
        "topic": "engineering",
        "title": "What are stable coins and how do they work?"
      }
    }

    This in XML would look like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <blog>
          <title>What are stable coins and how do they work?</title>
          <topic>engineering</topic>
       </blog>
       <flexiple>
          <location>"remote"</location>
          <top>1%</top>
       </flexiple>
    </root>

    Valid JSON

    Few of the rules to remember while handling JSON are that:

    • Empty objects and arrays are okay
    • Strings can contain any unicode character, this includes object properties
    • null is a valid JSON value on its own
    • All object properties should always be double quoted
    • Object property values must be one of the following: String, Number, Boolean, Object, Array, null
    • Number values must be in decimal format, no octal or hex representations
    • Trailing commas on arrays are not allowed

    These are all examples of valid JSON: -

    {"name":"John Doe","age":32,"title":"Vice President of JavaScript"}
    
    ["one", "two", "three"]
    
    // nesting valid values is okay
    {"names": ["John Doe", "Jane Doe"] }
    
    [ { "name": "John Doe"}, {"name": "Jane Doe"} ]
    
    {} // empty hash
    
    [] // empty list
    
    null
    
    { "key": "\uFDD0" } // unicode escape codes

    These are all examples of bad JSON formatting:-

    { name: "John Doe", 'age': 32 } // name and age should be in double quotes
    
    [32, 64, 128, 0xFFF] // hex numbers are not allowed
    
    { "name": "John Doe", "age": undefined } // undefined is an invalid value
    
    // functions and dates are not allowed
    { "name": "John Doe",
      "birthday": new Date('Fri, 26 Jan 2019 07:13:10 GMT'),
      "getName": function() {
          return this.name;
      }
    }

    Javascript provides 2 methods to encode data structures to JSON and to convert JSON to objects or arrays. These methods are JSON.stringify() and JSON.parse().

    JSON.stringify()

    It takes a Javascript object or array as input and returns a serialised string form of it.

    const obj = {
        name: "Flexiple",
        city: "Bengaluru"
    }
    
    const jsonStr = JSON.stringify(obj)
    console.log(jsonStr)
    // output is {"name":"Flexiple","city":"Bengaluru"}

    JSON.stringify() can take 3 arguments in total, the first one being the data structure. The second argument, called the replacer parameter, can either be a function or an array. It is used to manipulate the properties (keys and values) in JSON.

    let cost = {
        candy: 5,
        bread: 20,
        cheese: 100,
        milk: 15
    }
    
    let func = (key, value) => {
        if (value < 15) {
            return undefined
        }
        return value
    }
    
    let arr = ['candy', 'bread']
    
    let jsonStrWithFunc = JSON.stringify(cost, func)
    console.log(jsonStrWithFunc)
    // Output is {"bread":20,"cheese":100,"milk":15}
    
    let jsonStrWithArr = JSON.stringify(cost, arr)
    console.log(jsonStrWithArr)
    // Output is {"candy":5,"bread":20}

    The third argument, called the space parameter, takes in either a number or a string. It is used to control the spacing of the final string by deciding the size of indentation.

    let cost = {
        candy: 5,
        bread: 20,
        cheese: 100,
        milk: 15
    }
    
    let jsonStrWithNum = JSON.stringify(cost, null, 2)
    console.log(jsonStrWithNum)
    // Output is 
    // {
    //   "candy": 5,
    //   "bread": 20,
    //   "cheese": 100,
    //   "milk": 15
    // }
    
    let jsonStrWithStr = JSON.stringify(cost, null, 'xx')
    console.log(jsonStrWithStr)
    // Output is 
    // {
    //     xx"candy": 5,
    //     xx"bread": 20,
    //     xx"cheese": 100,
    //     xx"milk": 15
    // }

    JSON.stringify() is also popularly used for debugging, as trying to see a JSON object using console.log() isn’t always successful

    const obj = {
        "nest1": {
            "ex": "ex",
            "nest2": {
                "nest3": {
                    "ex": "ex",
                }
            }
        }
    }
      
    console.log(obj)
    // Output is { nest1: { ex: 'ex', nest2: { nest3: [Object] } } }

    As we can see that after a certain level of nesting the log just displays ‘[Object]’. Therefore, JSON.stringify() can be used to make debugging easier.

    const obj = {
        "nest1": {
            "ex": "ex",
            "nest2": {
                "nest3": {
                    "ex": "ex",
                }
            }
        }
    }
      
    console.log(JSON.stringify(obj,null,2))
    // Output is 
    // {
    //     "nest1": {
    //       "ex": "ex",
    //       "nest2": {
    //         "nest3": {
    //           "ex": "ex"
    //         }
    //       }
    //     }
    // }

    JSON.parse()

    It takes a JSON string and converts it into its respective data structure

     const jsonStr = '{"name":"Flexiple","city":"Bengaluru"}'
    const obj = JSON.parse(jsonStr)
    
    console.log(obj)
    // output is { name: 'Flexiple', city: 'Bengaluru' }

    Calling JSON.parse() on invalid JSON string will throw a SyntaxError.

    Cloning Objects in Javascript

    These 2 functions of JSON can be used together to clone javascript objects.

    const obj = {
        "prop1": {
            "ex": "ex",
            "prop2": {
                "ex": "ex"
            }
        }
    }
    
    const objCopy = JSON.parse(JSON.stringify(obj))
      
    console.log(objCopy)
    // Output is { prop1: { ex: 'ex', prop2: { ex: 'ex' } } }

    But this is not recommended, because of multiple reasons:

    • It is slower than alternatives
    • This works properly only for valid JSON, but not all javascript objects fall in that category

    A better alternative for deep cloning objects would be to either use an npm library called ‘lodash’ or write a custom recursive function to do the same. The spread operator can be used for shallow cloning of objects.

    B. Advanced concepts

  • What are some important JavaScript Unit Testing Frameworks?

    Unit.js, QUnit, Jasmine, Karma, Mocha, Jest, and AVA are a few well-known JavaScript unit testing frameworks and tools.

    The open-source assertion library Unit.js is known for running on browsers and Node.js. With JavaScript unit testing frameworks like Mocha, Karma, Jasmine, QUnit, Protractor, etc., it has a very high degree of compatibility and provides the assertion list's entire documented API.

    Both client-side and server-side JavaScript unit testing is done using QUnit. jQuery projects use this Free JavaScript testing framework. It adheres to the Common JS unit testing Specification for JavaScript unit testing. In addition, the Node Long-Term Support Schedule is supported.

    Jasmine is a framework for behavior-driven development used for unit testing JavaScript programs that are both synchronous and asynchronous. It has a simple syntax that can be written for any test and does not require DOM.

    Karma is a free and open-source environment for productive testing. Simple workflow management using the command line. It allows the freedom to write tests using QUnit, Mocha, and Jasmine. The test can be executed on actual hardware with simple debugging.

    Mocha is browser- and Node.js-based. As a result, asynchronous testing can be done more easily with Mocha. In addition, it delivers precision and adaptability in reporting and provides outstanding support for numerous rich features, including JavaScript APIs and test-specific timeouts.

    Facebook has so far tested all of the JavaScript code using jest. In addition, the "zero-configuration testing experience" is offered. It supports running tests that are independent and conflict-free and requires no additional setup, configuration, or libraries.

    AVA is a basic framework for unit testing in JavaScript. Both parallel and serial test runs are being performed. The execution of parallel tests proceeds uninterrupted. This testing framework also supports asynchronous testing. JavaScript unit tests are run by AVA using subprocesses.

  • What is CORS?

    CORS stands for Cross Origin Resource Sharing. It is a mechanism that uses additional HTTP headers instructing the browser to allow applications on one origin to accept resources from another origin. A different origin means either different domain, protocol or port.

    This is required because browsers, as a security measure, do not allow cross origin HTTP requests initiated from scripts. This is the case with XMLHttpRequest (mostly used method for resource requests) and Fetch API. By default, they allow only same-origin requests.

    For example, let’s assume that the front end is hosted on https://a-domain.com and the backend on https://b-domain.com. In such a case, if the front end makes a GET request to https://b-domain.com/posts, it will receive the following error in the console:

    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://b-domain.com 

    To prevent this CORS is utilised. Basically, additional headers need to be provided - this is the Access-Control-Allow-Origin header. This can take 2 forms of values:

    • Access-Control-Allow-Origin : [origin]
      An example of this would be ‘Access-Control-Allow-Origin: https://a-domain.com. This allows requests only from the specified origin to be able to access resources provided.
    • Access-Control-Allow-Origin : *
      Using the wildcard character (*) means that any site can access the resources provided by your application.

    As standard practice, if cross origin requests are being made it is recommended to not use the wildcard character, and instead mention the origin. If the front end is not rendered by the server itself then CORS needs to be used for the client to be able to interact with the server.

    In Node.js, you can either directly write the headers for each request or there exists npm packages which plug into frameworks like Express.js. One such example is the ‘cors’ npm package. It is very simple to use:

    // declaring app to use express framework
    let app = express()
     
    // this is using wildcard character
    app.use(cors()) 
    
    // this is specifying origin
    app.use(cors({
      origin: 'https://a-domain.com' 
    }))
    
    // this is specifying cors for specific route
    app.get('/', cors(), (req, res) => {
        
    });

    In this way CORS can easily be incorporated into your backend server.

  • What are the vulnerabilities of using cookies? What about the usage of local storage?

    Cookies and local storage are primarily used for session management in web application development. What this means is that once the user is authenticated, there needs to be a way for the application to remember the user for a period of time without asking the user to login again.

    In an architecture design it is standard to keep the server stateless, but this would mean that the user information cannot be stored on the server. Therefore, the decision was taken to store it on the client. This was originally done using cookies. Cookies are basically a storage facility with the browser, which the client side javascript or the server (using headers) can interact with.

    Each item stored in cookies is called a cookie, and each cookie has an expiration time which can be manually set too. The cookie persists in the browser for that duration and is not removed by page refreshes or window being shut. When a client interacts with a server using HTTP requests, then the cookies are also sent along in headers.

    The data which is stored in a cookie is generally a token such as a JSON Web Token (JWT). JWT consists of a payload which is used to fetch information about the user. JWT tokens are signed on the server using a secret key. The routes allow only authorized users to check whether the token is present in the cookies. This is the outline of the architecture followed for session management.

    Difference between Cookie and Local Storage 

    Primarily both function in similar ways - i.e. both involve persistent storage in the browser. The differences come in slight nuances of their functioning:

    • Local storage does not have the concept of expiration time. So, the developer dealing with it needs to handle the expiration of tokens stored in it. Whereas, the expiration time for cookies can be set while storing the cookie and the browser handles the rest.
    • Local storage is not sent with every HTTP request, like a cookie is sent. This reduces load on especially those HTTP requests which are public and do not require to use the token stored.
    • The server can directly interact with cookies, whereas only the client side script can interact with local storage.
    • Local storage has a much larger storage capacity of 5mb compared to 4kb of cookie. This is primarily because cookies are meant to be read by the server, whereas local storage is meant for the client side to be able to persistently store data.

    Vulnerabilities

    Local storage

    Local storage is accessible only by client-side javascript code. This makes it particularly vulnerable to XSS attacks. XSS (Cross-Site Scripting) attacks are a type of injections in which malicious scripts are injected into otherwise trusted websites due to a vulnerability.

    This script then executes on the client’s browser and can access the local storage quite easily. XSS attacks are mainly used to steal cookies, session tokens and other information. After obtaining session tokens they can access protected routes using it. Therefore, storing authentication tokens on local storage is very risky.

    Cookies

    Cookies function similarly as they can also be accessed by client-side javascript code. They are also vulnerable to XSS attacks, but there can be a further layer of protection added to prevent this.

    If the ‘httpOnly’ flag is marked as true while setting cookies then client side javascript cannot access that cookie. This allows only the server side code to interact with it. So this protects it from XSS attacks. However, due to its property of sending a cookie on every request, it gets vulnerable to CSRF/XSRF attacks.

    CSRF/XSRF (Cross-Site Request Forgery) attacks are when malicious web apps can influence the interaction between a client browser and a web server that trusts the browser. Therefore, further measures need to be taken like using CSRF tokens and proper use of the Same-Site cookie attribute.

    C. Data Structure/ Algorithm

  • 1. Write a program to find whether a string or number is palindrome or not.

    import java.util.Scanner;
    public class Palindrome {
        public static void main (String[] args) {
            String original, reverse = "";
     Scanner in = new Scanner(System.in);
           int length;
            System.out.println("Enter a number or a string");
            original = in.nextLine();
            length = original.length();
            for (int i =length -1; i>;=0; i--) {
                reverse = reverse + original.charAt(i);
            }
            System.out.println("The reverse is: " +reverse);
    
            if(original.equals(reverse))
                System.out.println("The string is a palindrome");
            else
                System.out.println("The stringis not a palindrome");
    
        }
    }
    
  • 2. Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Note that an empty string is also considered valid.

    class ValidParenthesesF {
        func isValid(_ s: String) -> Bool {
            var stg = [Character]()
    
            for char in s {
                if char == "(" || char == "[" || char == "{" {
                    stg.append(char)
                } else if char == ")" {
                    guard stg.count != 0 && stg.removeLast() == "(" else {
                        return false
                    }
                } else if char == "]" {
                    guard stg.count != 0 && stg.removeLast() == "[" else {
                        return false
                    }
                } else if char == "}" {
                    guard stg.count != 0 && stg.removeLast() == "{" else {
                        return false
                    }
                }
            }
            return stg.isEmpty
        }
    }
    
    The above code will input 0(false). 
  • 3. What will the output of the following code be?

    var i = 10;
    var f = 5;
    var g = 3;
    if (i / f / g)
         document.write("hi");
    else
        document.write("hello");
    a) hi
    b) hello
    c) error
    d) no output
    The answer is A because the floating-point division returns a non zero value = 0.66 which evaluates
    to true and outputs ‘hi’.

    Hire developers - parting thoughts

    As discussed, it isn't easy to find a quality freelance Developer but this guide makes the process easier for you. To offload the entire hiring process, reach out to us at Flexiple. We've designed a high-quality, 6-step screening process to find the top 1%, freelance developers. You can find the best freelance Developers here. We've already served over a hundred clients, earning great reviews for the quality of service.

    Lastly, to quickly summarize it for you:

    • Note your project requirements and hire accordingly. Do not go for the lowest or the highest-paid developer.
    • Don’t hire without vetting- consider asking questions right from the basics to advanced to logical questions.
    • Look for companies like Flexiple that help you find the perfect fit.

    That is everything you need to know to hire developers. Happy hiring! :)

Try a Top Quality Developer for 14 Days.
Pay Only If Satisfied.