Banks need technologists. The need them so much that Lloyd Blankfein, CEO of Goldman Sachs, declared this week that the bank particularly wants to hire STEM students and that Morgan Stanley is promoting technology to analysts to associate after six months instead of two or more years.
This doesn't mean banks' tech teams are easy to get into. Despite some suggestions that banks pose easier coding challenges than top tech firms, banks still want impressive programmers and banks' technology interviews are as - if not more - challenging than interviews for jobs in the front office.
If you're applying for an entry-level engineering/technology job in an investment bank, you can expect a three phase application process: a coding test, a digital interview (usually via Hirevue), and an interview onsite. The coding test will test your ability to code in your given language, the Hirevue interview will usually ask you "soft" questions about your working style ("How do you deal with conflict?" And "Tell me a time you've demonstrated leadership." etc.) And the onsite interview will probe both those things over again.
"You're going to be asked about programming languages, databases, data structures and algorithms, as well as software engineering, operating systems and networks," says a first year an analyst at a major bank. He says typical questions are along the lines of, "You are given a lot of data about a particular organization. Design a database to organize and efficiently store the information,” or, “You need to develop a game using an Object Oriented language (like Java). What are the different classes you would design and how would you apply different principles of object oriented programming while developing the game?”
You can also expect more hypothetical questions, like: “In a big financial institution what are the advantages and risks associated with technologies like Big Data?." Or ,“In a big financial institution what are the advantages and risks associated with technologies like Big Data?”. Or, “Give an example of a piece of software that you think has a poor interface. Why do you think so and what can be done to improve it?”
Banks also like to ask their technologists mathematical brain teasers. While these questions have been dropped from sales and trading interviews they're alive and well when banks are hiring engineers. Remember that in most cases, these mind-wringing questions aren't about the answer, but your thought processes: interviewers want to see how you process the problem, so you make sure you articulate your approach.
If the worst comes to the worst, you'll face questions similar to those below. These have all been asked in banks' technology interviews over the past 18 months.
Technology interview questions from Morgan Stanley:
- Imagine a crossroads between two roads. Traffic can't enter the crossroads from each road simultaneously. Code a traffic light with only two signals (red and green) to turn the traffic on and off so that only one direction can flow at a time.
- How would you design Facebook?
- Which data structures and algorithms does Facebook use for its suggested friends function?
- Can you design a browser system in which you have multiple tabs and where whenever you close a tab, it jumps back to the tab you visited prior to it?
- When you type an entry in Google's search box, you'll see some suggestions for what you should be searching for. Which data structures and algorithms underpin these suggestions?
Technology interview questions from Goldman Sachs:
- Two people are supposed to meet at a pre-arranged destination within a one-hour time interval. One of them arrives first and will wait a maximum of 15 minutes for the second person. What's the probability that they meet?
- What's the length of rope required in order for a cow to be able to graze an area of 9856 sq m?
- You're given a TV remote with the digits 0-9, along with a plus button to increase the channel, a minus button to decrease the channel and a previous channel button to take you to the previous channel. Starting on channel 3 and ending on channel 8, how would you visit all the channels with the minimum number of clicks?
- You have two ropes and a lighter. Both ropes take an hour to burn to the other end if you light one end, but they don't necessarily burn at a uniform rate. How can you measure a period of 45 minutes?
- Can you write a code to establish whether a string is a Palindrome?
Technology interview questions from J.P. Morgan
- What's the most efficient way to find all the lower case letters in a string and capitalize them?
- Write a program in Python to print all the numbers from 1 to 100, except multiples of three for which you should print "Fizz" and multiples of five for which you should print "Buzz", and multiples of three and five, for which you should print "Fizz Buzz."
- Write a program to establish whether a given binary tree is balanced or not.
- You have the chapter of a book. Build an index so that for a given word you're able to tell which pages it appears on. Explain which data structure you would use and optimize your solution for space utilization.
- Write a program that can take a board filled with letters and print all the words that can be constructed by connecting these letters together. The letters can be connected diagonally and up and down, but you can't cross over the same letter twice in each word. For example, faced with the following board, you could make the words BEAD, CALM, CAN, DAMN, MAKE. How would you program this?