Here’s how to crack your interview for an engineering role at FinBox

FinBox Team   /    Team    /    2022-06-24

LinkedInLinkedIn

Today, ‘Ubering’ cabs or ‘Swiggying’ food is much like Googling things. It’s when a company changes the way people behave, while it ushers in an industry-wide, never-before revolution. 

This is not just a change in the distribution model, it’s a move towards a new normal. 

We are doing something similar for financial services. In the future, every company will be a fintech company. It’s not a question of if, it’s a question of when. And when that happens, they will all be running their FinTech operations built on FinBox’s tech. 

We are laying the foundation for the next generation of fintech firms. We are building infrastructure that powers fintech capabilities for the who’s who of the software world. 

To power our ambitions and build towards our mission, we need ace engineers - not just programmers, but everyone who’s an engineer at heart - a problem solver and an innovator. 

So when you interview with us, you should know that we are looking for real value brought to the table and there is a thought-out process in place to assess that. 

If you’re lined up for an interaction with us, this is what you can expect.

The rounds

Our hiring process is nimble but thorough. If you fit the bill, we move fast. 

Job fitment: Your first interaction will be with a representative from our talent acquisition team who will assess your role fitment and explain the job requirements. 

Technical Know-how: Then, our team leads will get in touch, probably with an assignment to evaluate your engineering skills. We are looking for a problem-solving aptitude that works out in. The big picture, basically. You might want to ensure the code you write for your assignment is reusable and maintainable. The value and impact of your work need to go beyond the task at hand.

We’re looking for the kind of databases the candidate has worked on, and whether they have the knowledge of what database to use in what situation. Typically, a candidate may be given a situation or a feature, like creating a URL shortener. The candidate is expected to outline the product features, architecture, use-cases and then build a system to accommodate this.

Once done, we could ask follow up questions on things like edge cases. Success will depend on factors such as how the solution is structured and explained will be assessed in this round.

To put it simply, we’re looking for the clarity of your thought process, your understanding of the task, and your ability to ask the right questions.

Here’s an example: For an assignment like Given a string s, find the length of the longest substring without repeating characters. Example:

Input: “skwekekewrt”

Output: 5

Because here “kewrt” is the longest substring sequence

Candidate one sends this:

// First Submission

var lengthOfLongestSubstring = (str) => {

  // handle spaces in string

  const s = str.replace(/ /g,'')

  // keeps track of the most recent index of each letter.

  const seen = new Map();

  // keeps track of the starting index of the current substring.

  let start = 0;

  // keeps track of the maximum substring length.

  let maxLen = 0;

  for (let i = 0; i < s.length; i++) {

    // if the current char was seen, move the start to (1 + the last index of this char)

    // max prevents moving backward, 'start' can only move forward

    if (seen.has(s[i])) start = Math.max(seen.get(s[i]) + 1, start);

    seen.set(s, i);

    // maximum of the current substring length and maxLen

    maxLen = Math.max(i - start + 1, maxLen);

  }

  return maxLen;

};

//Test cases 

test("Longest substring repeating characters", () => { 

  expect(lengthOfLongestSubstring("pwwkew")).toBe(3); 

}); 

test("Substring with spaces", () => { 

  expect(lengthOfLongestSubstring(" ABD EFG ABE F ")).toBe(6); 

});

1. This does not solve the problem but the code is clean, the approach is correct with minimal time complexity

  2. Candidate has considered input validation and sanitized it for spaces, after confirming with the interviewer whether to ignore all spaces in input string

  3. Code is well structured and has comments which explains each step, also has couple of test cases

Candidate two sends this:

// Second Submission

function lengthOfLongestSubstring(s) {

    let x = 0;

    let y = 1;

    let array = [s[x]];

    let result = 0;

    if (s.length <= 1) {

      return s.length;

    }

    while (y < s.length) {

      if (array.includes(s[y])) {

        x++;

        array = s.substring(x, y);

      } else {

        y++;

        array = s.substring(x, y);

        if (array.length > result) {

          result = array.length;

        }

      }

    }

    return result;

  }

1. This submission gives correct output but its not an optimal one in terms of time complexity 2. Code does not have explanatory variable names, is a little abstract and no comments at all 3. Will be rejected because it is stripped-off and difficult to understand 

Cultural fit: The third interaction happens with our product leads who will gauge your interpersonal skills and how you would fit into the team dynamics. We are looking for people who are hungry to learn, patient, to traverse the learning curve and make a discernible impact. You can be a movie junkie and also an engineering ninja. Jack of all trades work, master of none don’t.

The Skillset

Because this is a domain-intensive industry, most candidates believe it is imperative to have a working knowledge of finance or banking IT systems. 

Not really. These are good to have, but not must-haves. We are essentially disrupting those systems, and so all we need is engineering and problem-solving prowess. If you crack that, we help you learn the ropes.

We want candidates to execute use cases for cutting-edge technologies. For us, AI and ML are not marketing jargons. We need trailblazers who can take charge and drive meaningful change in the fintech realm with technological tools.

Our products and teams are designed to help you get exposure to various programming languages. We don’t strait-jacket people into what they come in as. We promise you learning and we look for people willing to experiment. 

There will be days when it would seem grunt work is all you do. Remember these are necessary and meaningful tasks that will set the agenda. The banking IT systems are legacy, and to straddle them with digital technologies will require a fair bit of cleaning and patching. Once that’s done, it’s a freeway.

Leadership Mandate

We promote and bank on ownership and accountability. We are a small team of ace players with their skin in the game. You require leadership skills that go above and beyond your stipulated mandate. 

So don’t be limited to the task at hand, instead see how it impacts work for adjacent teams. It will be beneficial here if you demonstrate your understanding of user journeys, business requirements, and customer experience. Working them into our product roadmap is one of the charters for you.   

What we promise:

If you make it through the grind, the world’s your oyster. Along with:

  • Industry-beating remuneration

  • Exciting team-building and recreational retreats

  • Opportunities to grow and diversify. We fund learning opportunities

  • Beer on the house on days that don’t seem to end