# 14K

Solutions Specialist interview questions shared by candidates

## Top Interview Questions

Sort: Relevance|Popular|Date
Apple Solution Consultant was asked...June 11, 2012

### were do u see urself after 5 years

my aim is to work hard and honestly at any pt. of time...and i see myself working in ur company as a hardworking and honest person Less

within 5 yrs i want to be as stable as holdiing myself to such a level where i can take care of my expenses Less

i can tell u somthing that is mysterious,what i want to dedicate to you is smart work is better than hard work,effectiveness is better than efficiancy,then we can reach 100% purity in every activity. Less

### Given a list of integers and a target number, list all pairs that sum up to that number

Not sure what happened above an wrong code got pasted. First one: int main (int argc, char * argv[]) { vector v = {2, 3, 5, 1, 6, 9, 10}; int target = 12; map m; for(auto it = v.begin(); it!= v.end(); it++) { int diff = target - *it; if(m.find(diff) != m.end()) { cout v = {2, 3, 5, 1, 6, 9, 10}; int target = 6; unordered_map m; //essentially a hash table map used; //to make sure we do not print same pair twice as (a,b) and (b,a) for(auto it = v.begin(); it!= v.end(); it++) //just load from vector to hashtable for quick lookup. m[*it]++; for(auto it = v.begin(); it!= v.end(); it++) { int diff = target - *it; auto it2 = m.find(diff); if(it2 != m.end()) { if(used.find(diff) == used.end() &amp;&amp; used.find(*it) == used.end()){ //use unused pair cout &lt;&lt; *it &lt;&lt; ", " &lt;&lt; diff &lt;&lt; "\n" ; used[diff]++; used[*it]++; } } } return 0; } Less

WTH. Something wrong with the interface, I will post one by one. int main (int argc, char * argv[]) { vector v = {2, 3, 5, 1, 6, 9, 10}; int target = 12; map m; for(auto it = v.begin(); it!= v.end(); it++) { int diff = target - *it; if(m.find(diff) != m.end()) { cout &lt;&lt; *it &lt;&lt; " ," &lt;&lt; diff &lt;&lt; "\n"; } else{ m[*it]++; } } return 0; } Less

I think the solution to this problem is pretty easy. We need to take a map that monitors for the difference in it. I got the following code for it: int[] findPairs(int[] numbers, int target){ Map map = new HashMap(); int[] result = new int[2]; for(int i=0;i Less

### What are the packets sent in a TCP connection?

Syn // Syn - Ack // Ack

It's either you are so confused with the question or that question actually is very vague. It is not very clear. It seems that's obviously not the actual question you heard. The interviewer is probably asking "What are the information is in a TCP packet?" - This question makes lot of sense. Less

Whoever answered it with a 3 way handshake (SYN/SYN-ACK/ACK) does not know what the question is about. Less

### What port does ftp use? (That seemed like a trick question because they only wanted one port)

20 and 21 but they only wanted 20.

20 for TCP; 21 on command

In FTP, Port 20 is used for the data whilst port 21 is used for commands

### Write a program which stores the results of the numbers in a Fibonancci sequence in an array

def fibRecr(n): if n==1 or n==2: return 1 return fibRecr(n-1)+fibRecr(n-2) # Eg, to 15, store the sequence in array f1 for i in range (1, 15): f1.append(fibR(i)) Less

I think the key here is to use memoization so that you don't do have to calculate same value again as again in intermediate steps. Eg. in above solution, if we say find all values till 10, you have to calculate fibR(5) for 6, 7, 8, 9, 10 and since its recursive call this will not finish for even small size of n. Here is a solution using DP/memoization #define n 10 map m; //caches the intermediate steps int fib(int x) { auto it = m.find(x); if(it!= m.end()) return it-&gt;second; if(x == 0) { m[0] = 0; return 0; } if(x == 1) { m[1] = 1; return 1; } int val = fib(x-1) + fib(x-2); m[x] = val; return val; } int main (int argc, char *argv[]) { int result[n+1]; m[n] = fib(n); for(map::iterator it2= m.begin(); it2!= m.end(); it2++) // just to convert answer in an array form as asked result[it2-&gt;first] = it2-&gt;second; return 0; } Less

I would write only the function and I assume that you will have to return the array: It goes as follows: long[] fib(int n){ long[] result= new long[n]; result[0]=0; result[1]=1; if(n&lt;2) return result; for(int i=0;i Less

### WHAT IS YOUR AGE??? - A totally prohibited ground in HR context.

Look at the question: "What is your age?" That's different from "How old are you?" Answer accordingly. Less

I was asked this question by the CEO of a company during my telephonic interview. Even though I didn't ask, told me his age. That just seemed weird and not very professional. This wasn't Deloitte. Less

So many ways to find this information - in a, sort of, sneaky way. Has no-one noticed that now you not only being asked for your degrees but what year you obtained them - easy enough to extrapolate in the majority of cases... Less

### Below are some of the questions I could remember that they asked. Hope it helps What is CIDR block and what do you use it for Troubleshoot a webpage that can't access the DB Troubleshoot why you can't access a webpage server What is DOS/DDOS and how to mitigate this What is CDN and why is it important who would setup the CDN What is database indexing and why is it important Difference between NOSQL and RDBS Difference between object storage and file system Difference between Asymetric and symetric crypto Whats a three tier web page architect,and how do you monitor to see a bottleneck and how do you improve it How would you design an e-commerce web page and how would you improve it What is MSA If you collected logs and wanted to store them for 14 days then move them over to permanent storage for a few years how would you do this How would you analyze objects stored in S3 and share them with users What ports do databases use Difference between IOPS, Throughput, and Latency What is a web application firewall and how do you use it, what layer is it on How would you monitor utilization of equipment in a datacenter How do you secure a web site How would a developer make an API friendlier Of the 14 principles which one do you relate with mostly and use at work, Which one do you not agree with

CIDR - Classless Inter-domain Routing, Which replaced the old class based IP addressing scheme based on A,B &amp; C. CIDR has 2 parts a network Address (samel like normal IP address) followed with a subnet prefix. the subnet prefix decides how many bits of the IP address has taken for network. and rest will be allocated for the subnet. Less

DoS- Denial of Service DDos - Distributed Denial of service. AWS Shield will provide protection for CDN and S3 from DDoS attack . Less

IOPS - Input and output per seconds - measure the capacity in terms of the number request can be served in a second. Throughput - The volume of data that can be handles and measured in MBPS Latency - is the time between a request and response. Less

### How do you convince a CIO of a utility to care about energy efficiency?

He cares because if he can lower the system peak number, he can lesson the amount of spinning reserves he must have in place, whixh in effect is stranded capital. Less

CIO cares since as a company executive he needs to work with his customers (operating unit executives) to cut costs and increase revenues. By providing a solution that mines data to assist customer to save energry usage - the CIO is prioviding a solution for the utility to flatten its energy demand curve. Less

Simple. You demonstrate a cost savings analysis comparing efficient energy use to inefficient energy use. Use a graph of the inefficient use, compare to an efficient use, then run assign the value. That is just one way. This of course assumes that the inefficient use cost more then the cost to correct the problem. But if you do make the changes you can leverage the changes into a PR piece and get a double benefit (efficient use and a "look at us going green!" piece.) Less

### My most unexpected question was on the nature of strings in java. e.g. the different ways that strings can be considered equal, etc...

String are immutable so they usually go into the string pool after creation, all identical strings there should point to the same string object. Less

Thanks for extending the answer Jeff. I am always unsure as to how to phrase the rules about String. Less

short answer: strings should be compared using equals method just like any other object. long answer: just like Integers strings can be cached. in a string pool. So sometimes if strings are equal == can also be true. This is called string interning. There's also a method string.intern() that will return cached string if it exists or add instance on which it was called to cache and return it. regarding equalsIgnoreCase: there are 2 methods with locale and without. Using equalsIgnoreCase without locale is almost always a bad choice, because equalsIgnoreCase depends on locale (e.g. not in all locales "i".equalsIgnoreCase("I") is true). so you should prefer using method with locale. Less