Software Engineer Interviews

Software Engineer Interview Questions

Software engineers write programs to design and develop computer software. Interviews are highly technical, so come ready to work through coding problems and math brainteasers. The specific questions you are asked will depend on what type of programming position you are looking for. Try researching a specific software discipline such as web development, application development, or system development.

Top Software Engineer Interview Questions & How to Answer

Question 1

Question #1: How would you describe your programming task process?

How to answer
How to answer: When answering a question about your process or life cycle for software development and engineering, it's helpful to consider every step, beginning with obtaining the requirements for the end product. Include as much detail as possible to help the interviewer learn more about any work you've done as a software engineer and how you handle a task to show your ability to tackle a project from start to finish.
Question 2

Question #2: Which programming languages do you know and prefer?

How to answer
How to answer: An interviewer will want to know what programming languages you're familiar with, as well as which languages you prefer. This question doesn't necessarily have a right or wrong answer, but it does provide insights into your capabilities and coding expertise. If the job listing for which you are interviewing includes specific language knowledge preferences, make sure to include them when outlining the software languages you know.
Question 3

Question 3: What is an example of a successful project that you completed?

How to answer
How to answer: When describing your success with a past project, it's helpful to identify aspects of the project that went well and detail the different task list elements. You can describe the team with whom you worked on the project, how you managed your time, and how you specifically contributed to the project.

419,571 software engineer interview questions shared by candidates

Given inputs from Google Search, you have K chunks. Each chunk is individually alphabetically ordered (apple, banana, cat) ... (*apple, *banan, *cat). You want to merge all chunks into a single list. How would you do it? What limitations are there to your approach? It's on an x86 processor, what does that mean and how does that affect your approach?
avatar

Software Engineer

Interviewed at Google

4.4
Dec 8, 2011

Given inputs from Google Search, you have K chunks. Each chunk is individually alphabetically ordered (apple, banana, cat) ... (*apple, *banan, *cat). You want to merge all chunks into a single list. How would you do it? What limitations are there to your approach? It's on an x86 processor, what does that mean and how does that affect your approach?

Task Description Diamond Mine is your new favorite game. Its map is represented as a square matrix. The board is filled with cells, and each cell will have an initial value as follows: • A value ≥ 0 represents a path. • A value of 1 represents a diamond. • A value of −1 represents an obstruction. The basic rules for playing Diamond Mine are as follows: • The player starts at (0, 0) and moves to (n−1, n−1), by moving right (→) or down (↓) through valid path cells. • After reaching (n−1, n−1), the player must travel back to (0, 0)by moving left (←) or up (↑) through valid path cells. • When passing through a path cell containing a diamond, the diamond is picked up. Once picked up, the cell becomes an empty path cell. • If there is no valid path between (0, 0) and (n−1, n−1), then no diamonds can be collected. • The ultimate goal is to collect as many diamonds as you can. For example, consider the following grid: 0 1 -1 0 Start at the top left corner. Move right one, collecting a diamond. Move down one to the goal. Cell (1, 0) is blocked, so we can only return on the path we took initially. All paths have been explored, and 1 diamond was collected. Function Description Complete the function collectMax in the editor below. It must return an integer denoting the maximum number of diamonds you can collect given the current map. collectMax has the following parameter(s): mat[mat[0],...mat[n-1]]: an array of integers describing the game grid map Constraints • 1 ≤ n ≤ 100 • −1 ≤ mat[i][j] ≤ 1 Input Format for Custom TestingSample Case 0 Sample Input 0 3 3 0 1 -1 1 0 -1 1 1 1 Sample Output 0 5 Explanation 0 You can collect a maximum of 5 diamonds by taking the following path: (0, 0) → (0,1) → (1,1) → (2, 1) → (2, 2) → (2, 1) → (2, 0) → (1, 0) → (0, 0) Sample Case 1 Sample Input 1 3 3 0 1 1 1 0 1 1 1 1 Sample Output 1 7 You can collect all 7 diamonds by following the path: 0 → 1 → 1 ↑ ↓ 1 0 1 ↑ ↓ 1 ← 1 ← 1 Sample Case 2 Sample Input 2 3 3 0 1 1 1 0 -1 1 1 -1 Sample Output 2 0 Explanation 2 The cell at (2, 2) is blocked, so you cannot collect any diamonds.
avatar

Software Engineer

Interviewed at Uber

3.7
Oct 28, 2018

Task Description Diamond Mine is your new favorite game. Its map is represented as a square matrix. The board is filled with cells, and each cell will have an initial value as follows: • A value ≥ 0 represents a path. • A value of 1 represents a diamond. • A value of −1 represents an obstruction. The basic rules for playing Diamond Mine are as follows: • The player starts at (0, 0) and moves to (n−1, n−1), by moving right (→) or down (↓) through valid path cells. • After reaching (n−1, n−1), the player must travel back to (0, 0)by moving left (←) or up (↑) through valid path cells. • When passing through a path cell containing a diamond, the diamond is picked up. Once picked up, the cell becomes an empty path cell. • If there is no valid path between (0, 0) and (n−1, n−1), then no diamonds can be collected. • The ultimate goal is to collect as many diamonds as you can. For example, consider the following grid: 0 1 -1 0 Start at the top left corner. Move right one, collecting a diamond. Move down one to the goal. Cell (1, 0) is blocked, so we can only return on the path we took initially. All paths have been explored, and 1 diamond was collected. Function Description Complete the function collectMax in the editor below. It must return an integer denoting the maximum number of diamonds you can collect given the current map. collectMax has the following parameter(s): mat[mat[0],...mat[n-1]]: an array of integers describing the game grid map Constraints • 1 ≤ n ≤ 100 • −1 ≤ mat[i][j] ≤ 1 Input Format for Custom TestingSample Case 0 Sample Input 0 3 3 0 1 -1 1 0 -1 1 1 1 Sample Output 0 5 Explanation 0 You can collect a maximum of 5 diamonds by taking the following path: (0, 0) → (0,1) → (1,1) → (2, 1) → (2, 2) → (2, 1) → (2, 0) → (1, 0) → (0, 0) Sample Case 1 Sample Input 1 3 3 0 1 1 1 0 1 1 1 1 Sample Output 1 7 You can collect all 7 diamonds by following the path: 0 → 1 → 1 ↑ ↓ 1 0 1 ↑ ↓ 1 ← 1 ← 1 Sample Case 2 Sample Input 2 3 3 0 1 1 1 0 -1 1 1 -1 Sample Output 2 0 Explanation 2 The cell at (2, 2) is blocked, so you cannot collect any diamonds.

1st phonescreen: 1) background 2) algorithmic question which i dont remember but it was average difficulty level 3) Pagination in java - Given an implemented method getFeed(userId, StartTimeStamp, EndTimeTimeStamp) which returns a List<Feed>, right an API to return feeds to a mobile client. Design the API from scratch
avatar

Senior Software Engineer

Interviewed at Tinder

3.5
Jul 6, 2017

1st phonescreen: 1) background 2) algorithmic question which i dont remember but it was average difficulty level 3) Pagination in java - Given an implemented method getFeed(userId, StartTimeStamp, EndTimeTimeStamp) which returns a List<Feed>, right an API to return feeds to a mobile client. Design the API from scratch

write code for this function matchstr() given "ab" in a(1)b(1) ---> true "z" in a(4)b(4) --> false "aaaa" in a(3)b(3) ---> false "aab" in a(3)b(3) ---> true "aaba" in a(3)b(3) ---> true asked and he told that a(3)b(3) means {"ab","aab","aaab","aabbb"... etc.. all combinations of a dn b string lengths... b should always be after an a. asked and he told that a(3)b(3)a(3) is also possible asked and told that a(0)b(3)a(3)c(3) is also possible .. which means every string starts with b - This information changed my interview experience.
avatar

Software Engineer

Interviewed at Uber

3.7
Aug 4, 2016

write code for this function matchstr() given "ab" in a(1)b(1) ---> true "z" in a(4)b(4) --> false "aaaa" in a(3)b(3) ---> false "aab" in a(3)b(3) ---> true "aaba" in a(3)b(3) ---> true asked and he told that a(3)b(3) means {"ab","aab","aaab","aabbb"... etc.. all combinations of a dn b string lengths... b should always be after an a. asked and he told that a(3)b(3)a(3) is also possible asked and told that a(0)b(3)a(3)c(3) is also possible .. which means every string starts with b - This information changed my interview experience.

Online screen sharing interview questions Q) Remove html tags in a string Sample Input: <h1>Hello World!</h1> <p>something</p> Output: Hello World! something My Solution: public static String stripHtmlTags(String html){ html = html.replaceAll("<.*?>", " ");//replace tag with space html = html.replaceAll(" +", " ");//replace multi-spaces with a single space return html; } Q) Given an integer input array A, you need to create an integer output array B of same size such that each entry at index i, is stated as B[i] = A[0]*A[1]*....A[i-1]*A[i+1]*A[i+2]*.... So, it means we have to multiply all the numbers excluding the value at that index i. Sample Input: {3,1,6,4} Output: [24, 72, 12, 18] B[0] = 1*6*4, B[1] = 3*6*4, B[2] = 3*1*4, B[3] = 3*1*6 My Solution: /** * Assumptions: zero is not present in the numbers. * @param input int numbers * @return output int array */ public static int[] product(int[] input){ int prod = 1; int[] res = new int[input.length]; for(int ele:input) { prod *= ele; } for(int ind=0; ind<res.length; ind++) { res[ind] = prod/input[ind]; } return res; }
avatar

Java Software Engineer

Interviewed at Wallet Hub

4.2
Jun 30, 2017

Online screen sharing interview questions Q) Remove html tags in a string Sample Input: <h1>Hello World!</h1> <p>something</p> Output: Hello World! something My Solution: public static String stripHtmlTags(String html){ html = html.replaceAll("<.*?>", " ");//replace tag with space html = html.replaceAll(" +", " ");//replace multi-spaces with a single space return html; } Q) Given an integer input array A, you need to create an integer output array B of same size such that each entry at index i, is stated as B[i] = A[0]*A[1]*....A[i-1]*A[i+1]*A[i+2]*.... So, it means we have to multiply all the numbers excluding the value at that index i. Sample Input: {3,1,6,4} Output: [24, 72, 12, 18] B[0] = 1*6*4, B[1] = 3*6*4, B[2] = 3*1*4, B[3] = 3*1*6 My Solution: /** * Assumptions: zero is not present in the numbers. * @param input int numbers * @return output int array */ public static int[] product(int[] input){ int prod = 1; int[] res = new int[input.length]; for(int ele:input) { prod *= ele; } for(int ind=0; ind<res.length; ind++) { res[ind] = prod/input[ind]; } return res; }

Viewing 2131 - 2140 interview questions

Glassdoor has 419,571 interview questions and reports from Software engineer interviews. Prepare for your interview. Get hired. Love your job.