Lead Engineer Interview Questions


Lead Engineer interview questions shared by candidates

Top Interview Questions

Sort: Relevance|Popular|Date
EPAM Systems
Lead Java Developer was asked...22 May 2017

Coding test: 1. Given a string, find out if there's repeat characters in it. 2. SQL. Given a Customer table and a Payment table (with Customer ID as primary and foreign key), write a query to output a list of customers who have not paid their bills in the last 3 months.

15 Answers

Did well on the first Java coding test. Solution using Hashset. Not so well on the SQL query. Able to give a query, but a few errors in it I am sure. Also there was a second questions regarding the SQL query, which we didn't have time to get to. So that was another bad thing. I am pretty sure I did not pass. But good learning experience. Less

import java.util.*; public class test { public static void main(String[] args) { String str = "abdc"; char[] arr = str.toCharArray(); HashSet set = new HashSet(); for (char i : arr ) { set.add(i); } if((set.size()) == (arr.length)) System.out.println("unique character"); else System.out.println("repetition"); } } Less


Show more responses

Most of the technical questions focused on power supply design. For this position this is a one of the more difficult tasks so they want to know how switching regulators work and different trade offs involved.

5 Answers

What you said is correct but they are more interested in you showing that you understand how those work togeather - ie how the currents are fllowing and what actually effects efficency. For the switchers they use in there design they are using syncrounous switchers in polyphase designs. These are concerned with getting every last bit of efficency out of a design at the minimum space usage and lowest cost. Your efficency will be dictacted by your choise of mosfets (rds vs gate charge), switching frequency, inductor loss and copper loss. The most important thing is to demonstrate that your understanding all of this like it is second nature. Less

Number of different questions regarding power supplies such as: Describe how buck regulator works? What effects efficiency? Describe effect on output when step response on load occurs. Less

Buck regulator is easy to design. A switch, a diode and an inductor with bypass/decoupling capacitors at input and output Efficiency = load power/ total power Effect of step on output will be overshoot, ripples, before it settle down to actual voltage level. What were your answers? Was there any other questions asked regarding digital design? Less

Show more responses
Punj Lloyd

Are you ready joing in chennai location

4 Answers

Yes sir i am ready to join there



Show more responses
Tata Communications

Most difficult question is of Salary expectations.

3 Answers

We can never get what we want.


Its depends on company norms also consider my experience and knowledge if meet the market criteria i can go with that Less

Cisco Systems

2. Swap the two values (int A=5 and int B=3), w/o using a 3rd attribute(so you cant use the 3rd attribute to store the value as a temporary storage).

3 Answers

Both previous answers are theoretically correct, yet buggy. 'A' could potentially overflow due to (A+B) or (A*B). Therefore, the best method is to use the 'xor' operator. A ^= B; B ^= A; A ^= B; Less

first you do A= A*B, next you divide B=A/B and finally A= A/B.

A = A+B B = A-B A = A-B


Given an array of numbers, e.g. [5,0,9,2,5,5,5] - return all the consecutive numbers that add up to N.

3 Answers

There were two followup questions to this. a) What if there are lot of zeros after the sum is 10. E.g. 505000000 - what would it return? b) what if we allow negative numbers. For example 5,5,-6,6,0,0 We also discussed its time complexity. Less

The following should work. cheers! public int[] calculateSumSet(int[] inputArray, int desiredSum) { for (int stratingIndex = 0; stratingIndex < inputArray.length; stratingIndex++) { int sumOfSubArray = -1; int endingIndex = stratingIndex; do { sumOfSubArray = getSum(inputArray, stratingIndex, endingIndex); if (desiredSum == sumOfSubArray) { return subArray(inputArray, stratingIndex, endingIndex); } endingIndex++; } while (endingIndex < inputArray.length);//&& sumOfSubArray < desiredSum } return null; } private int getSum(int[] inputArray, int stratingIndex, int endingIndex) { int retValue = 0; for (int i = stratingIndex; i <= endingIndex; i++) { retValue += inputArray[i]; } return retValue; } private int[] subArray(int[] inputArray, int stratingIndex, int endingIndex) { int[] retValue = new int[endingIndex - stratingIndex + 1]; int j = 0; for (int i = stratingIndex; i <= endingIndex; i++) { retValue[j] = inputArray[i]; j++; } return retValue; } Less

Hi, What made you say that "Talking about TDD in a company where tests virtually do not exist is a big no-no"? Did you talk about it in general or did you make your presentation on/about TDD? What do you recommend for future candidates? --prospective candidate Less

Applied Materials

Input is a string like "AAAAABBCCAA" and it should print "5A2B2C2A". 5 being the continuous number of occurance for character 'A'. Same is with other characters also.

3 Answers

let string:String = "AAAAABBBVVVCVCAA" let characters = Array(string) var counter:Int = 1 var newArray:[String] = [String]() let lastCount = characters.count - 1 for count in 0...(characters.count - 2) { if characters[count] == characters[count + 1] { counter = counter + 1; }else { newArray.append("\(counter)\(characters[count])") counter = 1 } if lastCount == count + 1 { newArray.append("\(counter)\(characters[count])") } } print(newArray) Less

public static void main(String[] args) { String s = "AAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBCC"; Set set = new HashSet(); char b = 0; int count = 1; String newString = ""; for (int i = 0; i 0) { b = s.charAt(i - 1); } char c = s.charAt(i); if (!set.add(c)) { count++; } else { if (b != 0) { newString = newString + b + count; count = 1; } } } newString = newString + b + count; System.out.println(newString); } Less

public static void main(String[] args) { String s = "AAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBCC"; Set set = new HashSet(); char b = 0; int count = 1; String newString = ""; for (int i = 0; i 0) { b = s.charAt(i - 1); } char c = s.charAt(i); if (!set.add(c)) { count++; } else { if (b != 0) { newString = newString + b + count; count = 1; } } } newString = newString + b + count; System.out.println(newString); } Less


So how do you implement workflow?

3 Answers

Me: So to implement workflow, you need to actually map out the "work flow" ... NO. NO. NO. How do you implement it? Me: Well, you do realize that you have to map out the workflow, right? Have you used the WorkFlow Designer? It leverages Microsoft Visio to map out the "work flow" as a diagram.... Yes, I know that but how do you make it work? Me: Well, once you map the "work flow" then you save it and you have to code C# fragments that you attach to each node in the diagram that performs a specific action. So the actual diagram is key to the workflow implementation, because the rest is just C# fragments.... Ok. ok. ok. Next question. It turns out that he is a Java guy, like 75% of Silicon Valley and as soon as you say C# they "tune out" and do not want to hear more. Less

The point was to highlight the lack of diversity and how unwelcome I felt after being asked to come in for an interview, but if you must know. I include India when I say asian, but maybe some prefer differentiating asian, south asian, etc. Just gets silly. Anyway, interviewer #1 was probably Chinese female from the name. Interviewer #2 was Indian male. Interviewer #2 was definitely Chinese male. As for the people I saw in the cubicles, they were all Indian males from the people I saw conferencing together in cubicles, and the other 2 people interviewing were Indian females. Explicit enough detail for you? I really enjoy walking around the Google campus. VMware is also another GREAT campus. So much diversity in terms of age, race, etc although I know those campuses have a TON of students interning and working temporarily there, so they might not be permanent staff. Less

Are you including Indians as Asian? Were there a lot of Indians? Or mix?

Octopus Deploy

As above; it starts with a massive take home coding challenge. Basically you're given a very vague problem statement and a small amount of example data (carefully chosen to NOT cover any interesting edge cases), and must come up with an entire solution (design, implementation, API, test cases, code coverage, documentation, everything), all finished to the level you'd expect in production code (ie, full test coverage, edge cases thought about, errors handled, consistent method names, use a logging framework, everything). Don't be surprised if you fail due to something like "we told you we wanted logs, but we didn't tell you what would be consuming the logs, and you guessed wrong, so the formatting of the log messages isn't quite what we expected". Yes, it's THAT nit picky. And no, you can't ask questions during the process.

3 Answers

This could have been word to word, a review I wrote. I applied for the same position. Submitted what I thought was excellent code and was rejected for minor reasons. In their feedback their list of positives outweighed the negatives by a significant margin. Was rejected all the same. The decent thing would have been to call for an interview to discuss the code to give the applicant a chance to justify the decisions. A very poor experience. Less

Not well enough, it turns out.

Unless you did a different coding test, it clearly stated they didn't want a full-fledged solution. i.e No UI or API. Just a service basically with unit tests which is quite standard. Less


Given a set of components like A,B,C,D... And their ordered dependencies like A -> B,C B -> C C -> D find the dependencies for any given component "X".

3 Answers

The question involved setting up a data structure and algorithm to solve this. I used list of lists and made a recursive solution. Less

By assuming there will be no circular dependencies, one can setup a 2d matrix of dependencies then perform a dfs/bfs starting from the input X node and flag all the dependent components. Less

I can think of 2 approaches 1. Make lists and recurse till u reach X; return the success/fail status and add to a list of dependencies iff the status was a success 2. Make a directed graph out of this (Iff there are no circular dependencies). Then perhaps do a topological sort (use DFS/BFS). All the vertices visited before X are dependencies (2 data structures used here: Graph and Stack) Another possible solution: Make a directed graph, reverse all edges so that all incoming edges are outgoing. Then do a DFS/BFS to figure out which parts of the graph are accessible from X Less

Viewing 1 - 10 of 5,623 interview questions

See Interview Questions for Similar Jobs

staff engineertechnical leadprincipal engineersenior engineersoftware engineerengineering analystproject engineerdesign engineernetwork engineer iitechnical staff

Glassdoor has 5,623 interview questions and reports from Lead engineer interviews. Prepare for your interview. Get hired. Love your job.