Fragen im Vorstellungsgespräch für Service Reliability Engineer

3168

Fragen aus Vorstellungsgesprächen für „ Service Reliability Engineer“, von Bewerbern geteilt

Top-Fragen in Vorstellungsgesprächen

Sortieren: Relevanz|Beliebtheit|Datum
LinkedIn
Site Reliability Engineer wurde gefragt...15. Juli 2014

There were two and they both happened during the live-debugging portion of the interview. All of the live debugging questions revolved around a simple website that had something broken in it. You were to fix the brokenness to be able to move on to the next page. In total there were 4 questions, each getting progressively more difficult to debug. The first question was a simple permissions problem on a file being requested by the client. The ownership of the file (a blank text file) was too restrictive, so it was raising an error. You could verify this in the apache web logs. The second error was due to a permission problem too, however this time the file was hidden in a sub directory of the main web site. You could only determine this by looking at the apache configuration file to see that the shtml file was located somewhere else. After that, change the permissions to fix. The third was a head scratcher. The filename in question was raising a 500 error and showing urlencoded characters in the filename in the web log. Looking at the name of the file on disk though, showed nothing out of the ordinary. It turns out that the unicode representations for the characters in the file name are printed in the terminal as english ascii characters. The only way you can tell that this is the case is to open the file and do a search for the filename itself and see if it matches. For example, if the correct filename is called "challenge1.shtml" you can search for that exact string but NOT find the unicode version of it. Once you find the incorrect file name, delete it and type the correct file name (in this case "challenge3.shtml" into the file and the page works. The final question was a segfault occurring in apache. It resulted in no information being returned to the client. You could see this occurring in the apache web logs as well as the Chrome tools. The apache web logs noted that a core file was dumped. This challenge required that you know a little bit about gdb and C programming. Basically, you need to run the core dump through gdb. gdb /path/to/apache /path/to/core/dump It will spew out a lot of stuff. In particular, it mentions that there is something happening in an apache module; mod_rewrite or something...it doesnt really matter. The output also points to the C source file for that module which is, conveniently on disk. Open that file in vi and jump to the line number mentioned in the gdb output (line 1861 or something). There you will see that if the filename matches challenge4.shtml to SIGSEGV; there's your smoke gun. They dont ask you to fix the final challenge, only to explain what the strstr is doing. The error in question basically looks like this if (strstr($r->filename, "challenge4.shtml") != NULL) { SIGSEGV } Just point out to them that, yeah, it's segfaulting when I ask for that file.

11 Antworten

FYI, in 2020, this is still relevant.

Relevant in 2021 too.

OP here. Yes, for my interview on site they only asked two

Mehr Antworten anzeigen
Booking.com

They gave me the below question to solve in 30 mins. Based on customer research, we know that our guests get confused when they are searching for accommodation and they found multiple hotels with the same name in the same city. To avoid this, we want to create a tool to identify "confusing" cities: cities with at least 3 hotels with the same name. Given a list of tuples (hotel_id, hotel_name, city) return a list of all "confusing" cities. Input: [ {hotel_1234, "Sheraton", "Amsterdam"} , {hotel_1000, "Sheraton", "Buenos Aires"} , {hotel_1001, "Hilton", "Amsterdam"} , {hotel_1002, "Royal Palace", "Bogota"} , {hotel_1003, "Hilton", "Amsterdam"} , {hotel_1004, "Sheraton", "Buenos Aires"} , {hotel_1005, "Sheraton", "Buenos Aires"} ] Output: [ "Buenos Aires" ]

8 Antworten

Another approach would be to create a hashtable/dict with key as a tuple (city,hotel name) and value to be the occurrence of the hotel name in that city (count, keep incrementing the count when seen). When the hashtable is created, iterate over items and see whose value >= 3 and return the tuple's/key 1st value Weniger

using golang ---- package main import ( "fmt" ) func main() { input := [][]string{{"hotel_1234", "Sheraton", "Amsterdam"}, {"hotel_1000", "Sheraton", "Buenos Aires"}, {"hotel_1001", "Hilton", "Amsterdam"}, {"hotel_1002", "Royal Palace", "Bogota"}, {"hotel_1003", "Hilton", "Amsterdam"}, {"hotel_1004", "Sheraton", "Buenos Aires"}, {"hotel_1005", "Sheraton", "Buenos Aires"}, } confuse_cities := []string{} Cities := make(map[string]map[string]int) for _, line := range input { if _, ok := Cities[line[2]]; ok { if val, ok2 := Cities[line[2]][line[1]]; ok2 { Cities[line[2]][line[1]] = val + 1 if Cities[line[2]][line[1]] == 3 { confuse_cities = append(confuse_cities, line[2]) } } } else { Cities[line[2]] = map[string]int{} Cities[line[2]][line[1]] = 1 } } fmt.Println(confuse_cities) } Weniger

from collections import Counter Input = [ ("hotel_1234", "Sheraton", "Amsterdam") , ("hotel_1000", "Sheraton", "Buenos Aires") , ("hotel_1001", "Hilton", "Amsterdam") , ("hotel_1002", "Royal Palace", "Bogota") , ("hotel_1003", "Hilton", "Amsterdam") , ("hotel_1004", "Sheraton", "Buenos Aires") , ("hotel_1005", "Sheraton", "Buenos Aires"), ("hotel_1232", "Sheraton", "Amsterdam"), ("hotel_123222", "Sheraton", "Amsterdam") ] confusing_cities = [] for i,v in Counter((elem[1],elem[2]) for elem in Input).items(): if v >= 3: confusing_cities.append(i[1]) print(confusing_cities) Weniger

Mehr Antworten anzeigen
Google

What's 2^32 ?

6 Antworten

The correct approach is to show that you can break down the problem. 2^32 = 2^10 * 2^10 * 2^10 * 2^2. 2^10 = 2^8 * 2*2 = 256 * 4 ~(roughly) 1000 So: 2^32 ~ 1000 * 1000 * 1000 * 4 = 4,000,000,000 Weniger

4 giga

The number that will overflow a variable of type unsigned 32-bit int. const MAX_U32INT = 2^32 -1 Weniger

Mehr Antworten anzeigen
LinkedIn

You need to distribute a terabyte of data from a single server to 10,000 nodes, and then keep that data up to date. It takes several hours to copy the data just to one server. How would you do this so that it didn't take 20,000 hours to update all the servers? Also, how would you make sure that the file wasn't corrupted during the copy?

6 Antworten

P2P is the first thing that came to my mind. BitTorrent is a good tool and I believe Twitter or Facebook has developed this kind of distributing tool based on BitTorrent protocol. And I don't believe the 1TB data will be read at the same time. We can write a FUSE module that mount the directory from the central server. When one of the files was read, we can copy it and cache it locally. Weniger

P2P is the best solution. If P2P is not allowed. We can use broadcast, for example: server1-> server2, then we have 2 sources, server1->server3, server2-server4; then it will take about (time to transfer one copy)*log(10000)= 3*3.32192809489*(time to transfer one copy). For fault tolerance, redundancy or retry. Or deploy a distributed file system so that file can be accessed. Central server solution is like NFS, however, NFS's server could be bottleneck. Weniger

We can take checksum of the file when it is correct and compare it with the checksum of the same file in future. If both checksum are found to be same then the file isn't corrupted otherwise it is corrupted. Weniger

Mehr Antworten anzeigen
Google

What happens when I type "ps" into a UNIX prompt?

4 Antworten

Those are not the answers that they are looking for. You basically answered what happens when you turn your computer on with: "The picture appears on the monitor". A proper answer involves: shell word splitting, searching PATH, loading dynamic libs, argument parsing, syscalls, /proc. If you don't know what ps is doing, it isn't hard to find out. Weniger

It's a question to check if you understand behind the scenes of a terminal when a command is issued. I would answer it in that way: when I type a command and press enter, the Shell has a command line parser that checks if the text entered is a available command in the PATH or not, if not found it checks the system libs to see if it can find the definition of it, if nothing is found, it throws error ": command not found". In the successful case, where the command is found it loads the binary from the defined path and a system call is executed accordingly to fetch the process data from the OS. Weniger

see list of all processes

Mehr Antworten anzeigen
Google

Find all pairs of 3 in an array that add to n.

4 Antworten

Wrote code.

This is what I came up with, probably not the smartest way : #!/usr/bin/env python def sum_to_n(numbers, n): """ Pick the first two numbers in the list first, then add the third one. Return if the sum is equal to n. Then remove the first two, since you are done with them. Do the same thing as long as you have at least 3 elements in the list """ numbers = numbers.split(",") output = [] first = int(numbers[0]) second = int(numbers[1]) while len(numbers) > 2: for item in numbers[2:]: if first + second + int(item) == n: output.append((first, second, item)) numbers.pop(0) numbers.pop(1) first = int(numbers[0]) second = int(numbers[1]) return output numbers = raw_input("Enter a comma separated list of integers:") n = raw_input("Enter an integer:") print sum_to_n(numbers, int(n)) Weniger

public static void printPairSums(int[] array, int sum) { Arrays.sort(array); // 2 pointeurs int first = 0; int last = array.length - 1; while (first < last) { int s = array[first] + array[last]; if (s == sum) { System.out.println("( "+array[first] + " ," + array[last]+ " )"); ++first; --last; } else { if (s < sum) ++first; else --last; } } } //Exemple public static void main(String[] args) { // TODO Auto-generated method stub int[] myIntArray = new int[]{1,2,3,-1,4,5,-2,7,1}; printPairSums (myIntArray, 3); } Weniger

Mehr Antworten anzeigen
Google

Enumerate the following from 1 to 4, being 1 the fastest to execute and 4 the slowest: - read cpu register - disk seek - context switch - read from main memory

4 Antworten

1 CPU 2 Memory 3 Context switching 4 Disk

context switch - 3

context switching is costlier than RAM access. I think we all have read this in those operating system lectures. Weniger

Mehr Antworten anzeigen
AfterShip

Can you believe in me as the "Messiah" ?

4 Antworten

Xavier, we appreciate the interview did not go as planned and we are sorry you are upset. You are of course entitled to express your own opinions though such ill-wishes against our business and your personal attacks against our CEO are unjust. Weniger

I think the company just make it worst.. is evident the impossibility to get any constructive criticism.. even coming from an outsider in a shape of a totally legit review. "ill wished & personal attacks". Thats your definition of the best and most sincere review this company ever had ?... what is next ?.. ask again everyone to vote positively on the page to increase company ratings ? Stop deceiving the system and start tackling the inside problems. It isn't about a bad review, its about bad practices and situations that have been happening for several years inside the company without solution. 1) Is this the only review that mentions the weird behaviour of your CEO in the interviews ?.. and i quote from other review: "feeling of disrespect and intimidation".. When i got hired, we did not had such process.. probably i won't get hired today, but i proved my value to the company for several years. It's true that he ask people to believe in him.. but everything have a limit and he sometimes behaves with no common sense at all, but i liked him because he is smart.. but he don't like to listen so its quite arrogant and disrespectful. 2) Half company quitted because it was impossible to work with him or near him.. ain't that true ? Because here you have many employees that agrees with the review and i saw it with my own eyes.. a week where half dozen developers suddenly quit.. 3) Its not true that the company does not follow DevOps or SRE industry standards ? Let me be more precise, isn't true that you don't have TechOps team but just 1 Junior Sysop as SRE and one Mid Level SysOp that act as SRE with nearly 3 dozen of developers, QA got fired and there is no DevOps team ?? 4) Many of the workers interviews talk about the leak of senior profiles and the absolute absence of mentoring, im one of them. Now is pretty clear why.. nobody can work in AfterShip.. the CEO is in the middle with another of his weird processes that negatively impacts the company.. as usual. 5) Its totally true the CEO is CFO,COO,CXO,HR,CTO.. and any other title you can come out. He is in the middle of everything.. 6) I wonder why you don't explain what happened 1 year ago when he tried to implement SCRUM by himself.. after the epic fail and some other people quitting the company, he end hiring a Scrum Master. From my perspective as AfterShip former worker: this review, unfortunately, reflects some of the biggest problems of the company.. weird processes, neglect behaviour, incapacity of delegate and a incoherent management. We were on the same project, same product, same idea .. since the first day, with no improvements for over 3 years.. and i'm sure if he focus and think on how to grow the company products and step out of the other thousand process he put himself in the middle, things surely will go better. Work in AfterShip have some benefits, but the CEO is not one of them and certainly get hired is virtually impossible right now. The salary is below national standards, the requirements are high, plus the 'culture-fit' is virtually impossible to pass.. how a company can attract people in this way ? I can say that since i left AfterShip, i don't have to worry get fired just for complain about something that is not working in our business process, and the developers concerns are taken as constructive criticism and not as an offence or an excuse to get fired. Weniger

"ill-wishes against our business and your personal attacks against our CEO are unjust." Nobody wish you anything bad and nobody attack your CEO. Im sorry that AfterShip feels shame about his stage in the recruiting process.. but everything i said in the review was a true fact of the reality and other answers and reviews just agree with what i said. Im very sorry that my honesty and transparency of the interview caused you so big discomfort that you had to threat the recruiter... Nobody passes the 'culture-fit' .. No mentoring.. Lack of management.. Lack of methodologies... are not my words, but also several other reviews of your workers. You should consider those premises as possible true facts and start work on them. I believe in the transparency of GlassDoor reviews, even your workers report your "forced" request of good reviews in GlassDoor.I suggest you to solve your internal problems and good reviews will come as reward of such changes. My goal reviewing your company is not a revenge, is not a fight, is not an ill wish: It's about make your company and candidates aware of the problems, give them the chance to consider or improve the process. Your banal comment, your attempt to dilute GlassDoor reviews and your threat to the recruiter only proves that you are more concern on hide the problem then to fix it.. suggest stop whimper and start solving your internal malfunctions. If after one year, you had solved the recruiting problem and is reflected in GlassDoor reviews. I'll consider to rewrite the review, you can mail me. Until then, you'll keep the review as its a true mirror of what is going on there. Regards Weniger

Mehr Antworten anzeigen
Google

Given a string, return true if after jumbling/rearranging the characters of the string will it be a palindrome. and false if not. eg: given string "evlel", it can be rearranged to "level" and thus it is a palindrome, and return true. eg: 1234 cannot be rearranged to become a palindrome hence false.

4 Antworten

A palindrome is a word that has the same spelling forward and backwards. “1234” are numbers and cannot be a palindrome. Weniger

“acrecar” is a palindrome by that definition of the word, “racecar”, “dad”, “pop”, “poop”. These I feel like may be better examples. “454” would be an example of a palindrome that is a number. Weniger

Count the occurrence of each character; if more than one char has odd number of occurrences, it’s false Weniger

Mehr Antworten anzeigen
Google

What signal is sent by default in the unix kill command

4 Antworten

SIGTERM is the correct answer

or the number 15.

sigkill

Mehr Antworten anzeigen
1 - 10 von 3.168 Fragen aus Vorstellungsgesprächen angezeigt

Bewerbungsfragen für ähnliche Jobs anzeigen

principal reliability engineersenior reliability engineermaintenance reliability engineersite reliability engineerreliability managerreliability engineer

Glassdoor bietet 3.168 Fragen und Bewertungen von Service reliability engineer-Vorstellungsgesprächen.Bereiten Sie sich auf Ihr Vorstellungsgespräch vor. Unternehmen entdecken. Traumjob finden.