Back end engineer Interview Questions


Back End Engineer interview questions shared by candidates

Top Interview Questions

Sort: Relevance|Popular|Date
Veeva Systems
Senior Software Engineer, Java Back End was asked...August 18, 2015

public class Person { Person father; Person mother; Gender gender; Integer age; List<Person> children; int level = 0; public enum Gender { Male, Female; } } For the above class, you basically have to implement 2 methods. public List<Person> getOldestSisters() public List<Person> getGreatestAncestors()

5 Answers

/** * Returns the Persons which are the greatest number of levels up the family tree * from this instance. Examples: * Given a tree where this person instance only has a mother and father, return mother and father. * Given a tree where this person instance has a mother &amp; father, and a grandfather on the mother's side, return only the grandfather on the mother's side. * @return List of Person */ public List getGreatestAncestors() { // If this is the root of the tree, return empty array because there is no ancestor for the tree if (this.father == null &amp;&amp; this.mother == null) { return new ArrayList(); } List fList = new ArrayList(); List mList = new ArrayList(); if (this.father != null) { fList = this.father.getGreatestAncestors(); } if (this.mother != null) { mList = this.mother.getGreatestAncestors(); } List results = new ArrayList(); for (Person p : fList) { if (results.contains(p)){ continue; } results.add(p); } for (Person p : mList) { if (results.contains(p)){ continue; } results.add(p); } return results; } Less

What do they expect in onsite interview for senior software engineer for app development Less

I cranked this out in about 30 minutes. I believe it works quite well. I've also included the corresponding unit tests: file: ------------------------------------------------------------------------------------------------------------- package Command; import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class Person { Person father; Person mother; Gender gender; Integer age; List children; int level = 0; public enum Gender { Male, Female; } Person(Person dad, Person mom, Gender gender, int age, int level) { this.father = dad; this.mother = mom; this.gender = gender; this.age = age; this.level = level; } public void setChildren(List children) { this.children = children; } public void addChild(Person child) { this.children.add(child); } public List getOldestSisters () { // given the current person (self), determine parents // then get children of those parents // Determine gender of each child // Where they are female, get ages // return females with age &gt; mine // Note: must check on both sides father/mother as there may be a mixed marriage // Combine list of children - Exclude YOU as you cannot be your own sister. // Use a set to eliminate duplicates. HashSet allChildren = new HashSet(); // Can't add null to a hashSet so screen for it. if ((father != null) &amp;&amp; (father.children != null)){ allChildren.addAll(father.children); } if ((mother != null) &amp;&amp; (mother.children != null)) { allChildren.addAll(mother.children); } // If you are not in this list, there is an issue! if (allChildren.contains(this)) { allChildren.remove(this); // System.out.println("Removing self from list."); } else { System.out.println("Error: You are not a child of your parents! Adopted?"); } // Filter down to only women and get any older than me: int myAge = this.age; List oldestSisters = new ArrayList(); for (Person child : allChildren) { if (child.gender == Gender.Female) { if (child.age &gt; myAge) { oldestSisters.add(child); } } } return oldestSisters; } public List getGreatestAncestors() { if ((this.father == null) || (this.mother == null)) { return null; // You must have two parents to have ancestors } // Find root parents List myParents = getParents(this); return getElders(myParents); } private List getElders(List parents) { List elders = new ArrayList(); List myParents = new ArrayList(); boolean newElders = false; for (Person parent : parents) { myParents = getParents(parent); if (myParents.isEmpty()) { elders.add(parent); } else { elders.addAll(myParents); newElders = true; } } if (newElders == true) { return getElders(elders); } return elders; } private List getParents(Person person) { List parents = new ArrayList(); if (person.father != null) parents.add(person.father); if (person.mother != null) parents.add(person.mother); return parents; } } // For the above class, you basically have to implement 2 methods. // public List getOldestSisters() // public List getGreatestAncestors() Less

Show More Responses

round 1: Why coming to Berlin from India? Why Zalando? What do you know about Zalando? Salary expectations? Do you have any questions? round 2: Tell me about about a situation when there has been a conflict between you and your colleague, how you resolved it. Tell me about about a situation when there has been a conflict between two of your colleagues, they approached how you resolved it. How do you convince people to choose a technology? Tell me about about a situation when you went against odds / didn't listen to your manager. How you convince people to help you with technical issues. Tell me about about a situation which proves you are motivated to take up challenges and learn new technologies. How you choose a a particular technology/solution from among multiple technologies/solutions.

4 Answers

They will be testing your interpersonal and motivational skills.

round 3 questions: reverse a string recursively. explain architecture of Cassandra (I worked on Cassandra in previous projects) explain consistency configuration in Cassandra. Less

How long did the overall process take from the start till you joined? Were you already in Germany while interviewing for this role? Less

Show More Responses
Punch (CA)

They wanted a 2 minute profile video, for their clients

3 Answers

This isnt online dating!

The same thing happened to me. Is this a scam?

I get a weird vibe from this company. Not even sure they exist for real.


The Codility Test was about taking an integer and determine how many different arrangements of the number are possible. So if given, 132, arrangements are 132, 123, 231, 213, 312, 321. So the function should return 6.

3 Answers

Python solution: import itertools def solution(N): s = list(str(N)) solution = set([ s for s in itertools.permutations(s)]) if len(solution) == 1: print("1") return final_solution = [ s for s in solution if s[0] !='0' ] print(len(final_solution)) Less

import collections def fact(n): factorial = n for i in range(1, n): factorial *= i return factorial def better_solution(N): s = list(str(N)) string_counts = collections.Counter(s) print(string_counts) permutations = fact(len(s)) # dealing with duplicate string values for string, count in string_counts.items(): if count &gt; 1: permutations //= fact(count) return permutations Less

#include #include using namespace std; int factorial(int n){ return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Returns number of occurences of char c in string s int numberOfOccurences(string s, char c){ int occurences = count(s.begin(), s.end(), c); return occurences; } int solution (int N){ string numString = to_string(N); int numOfDigits = numString.length(); int computation = factorial(numOfDigits); // Using ASCII Codes for (int i = 48; i &lt; 58; i++) { char currentChar = (char) i; int occurences = numberOfOccurences(numString,currentChar); if (occurences != 0){ computation = computation / (factorial(occurences)); } } return computation; } Less


How to determine which button offers which drink from a vending machine, knowing that all the labels are mixed.

2 Answers

The first thing that came to mind was Bubble Sort, but other (and more efficient) sorting methods should work too. Less

First the questioned was not defined very well by the interviewer, second the way how the problem was declared did not cover all the possible cases! Less


Some questions are not that clear . Eg. How can you find all instances of a class. I did not understand that.

2 Answers

OR on runtime: {v for v in locals().values() if isinstance(v, SomeClass)}

the question was, how can you find all instances of a class in a file. Answer would be "grep". Less

Grow Technologies

You are given a 5L and a 3L jug. Both jugs are really oddly shaped and don't have any measure markings, so you can only fill the jug up to the top. Given unlimited water, can you somehow make 4L of water from these two jugs?

2 Answers

This was the Die Hard III problem!

This is a classic question that is in CTCI/CareerCup. There are two solutions for this. 1) Fill up the 5L jug, then pour it into the 3L jug (5L jug has 2L of water in it). Pour out the 3L jug and pour the 5L jug into the 3L jug (3L jug now has 2L in it, 5L jug has 0L). Fill up the 5L jug with water, and pour it into the 3L jug until it is full! (5L jug has 4L in it, 3L jug has 3L in it) 2) Fill up the 3L jug, then pour it into the 5L jug (5L jug has 3L in it, 3L jug has nothing). Fill up the 3L jug again, and pour it into the 5L jug until it is full (5L jug has 5L in it, 3L jug has 1L in it). Pour out the 5L jug, then pour the 3L jug into the 5L jug (5L jug has 1L in it, 3L jug has 0L). Fill the 3L jug and then pour it into the 5L jug (5L jug has 4L in it, 3L jug has 0L). Less


Can you talk about one of your developing experience?

2 Answers

I have used python to develop a website application

During my last year of bachelor's of engineering I was working on mobile application project. I have used java and sql database to create and adroid application called Person Chat Mobile Less


"Suppose you have two different kinds of server requests - requests that MUST be responded to in 2 seconds and cannot be resent, and requests that can be responded to in 10 seconds, but can be resent. How would you handle the priority of responding to these requests?"

2 Answers

Take prior constantly

I got it wrong a couple times, but with guidance from the interviewer, eventually came to the conclusion that priority for the short-time requests should start out higher than long-time requests, but that a long-time request nearing its timeout window should rise in priority to the point that it can be handled before a new (and unlikely to time-out) short-time request. Less


SQL: you have a table with customers, with gender m and f. Write a query to update m with f, f with m in a single query, without temporary tables

2 Answers

UPDATE customers SET gender = CASE WHEN gender = 'm' THEN 'f' WHEN gender = 'f' THEN 'm' END Less

UPDATE customers SET gender = CASE WHEN gender = 'm' THEN 'f' WHEN gender = 'f' THEN 'm' END Less

Viewing 1 - 10 of 584 Interview Questions

See Interview Questions for Similar Jobs

front end engineerback end developersoftware engineer