Guidewire

www.guidewire.com
Engaged Employer

# Guidewire Senior Software Engineer Interview Questions

10 Interview Reviews

33%
22%
44%

50%
25%
12%
12

3.0
Average

Hard

Average

Easy

More

Helpful (3)

## Senior Software Engineer Interview

No Offer
Negative Experience
Difficult Interview

Application

I applied through a recruiter. The process took 2 weeks. I interviewed at Guidewire (San Mateo, CA) in August 2010.

Interview

Here’s my review of one of the four interviewers at Guidewire. His primary issue was that he had only one solution in mind, which was syntactically and semantically broken, and yet dogmatically tried to push me towards it the entire time. It went flawlessly with the other three interviewers that day, both in terms of their interviewing style and my performance, which makes this all the more painful a loss. The scenario is that a customer orders a coffee from a vending machine by selecting a choice from several categories, such as size, flavor, and creamer type. Given their choices, we then have to figure out the cost. The twist is that the various creamer choices cost slightly more if you get an extra-large coffee. For example, if you choose milk as your creamer, it’s normally 50 cents; but, if you also choose XL as your size, the milk costs 60 cents. The interviewer’s solution (in Java) was to have an enum for each category: Size, Creamer, Flavor, etc. Each choice in a category is one of the instances of the enum: “enum Creamer{ NONE, MILK, HALF_N_HALF }”. Rather than have each enum instance store its normal cost as an int, we cleverly set the int value of the instances to the cost of the choice: “enum Creamer{ NONE = 0, MILK = 50, HALF_N_HALF = 45 }”. To deal with the fact that creamer cost depends on the size you choose, we add the method getPriceGivenSize(Size). If later on there are new dependencies between categories (I asked him this “what if”.), we just add methods, such as getPriceGivenFlavor(Flavor), getPriceGivenSizeAndFlavor(Size, Flavor), etc. The contents of these methods are simply switch statements which return a value based on the Size/Flavor passed in. So here’s my critique of his solution. First off, it’s entirely hard-coded; to add a new choice/category, change a cost, or add/change a dependency between categories, you have to directly edit the Java code that runs the vending machine, recompile and reinstall it. How do we know when to use the “int value” of the enum to get the cost of a choice, versus calling getPriceGivenSize(), or even getPriceGivenSizeAndFlavor()? In other words, there’s no real way for the client to describe the business logic (costs and dependencies), and no way to use that business logic when figuring the cost to charge the customer. The idea of setting the enum instances to their cost is unsound because it breaks as soon as we have two choices that cost the same amount. Also, the interviewer was thinking of a syntax, “MILK = 50”, which is only available in C/C++, not Java. Conversely, enum methods aren’t available to enums in C/C++. His confusion about enums is ironic. After giving me several hints to try to push me towards his expected solution, he suspected I simply didn’t know enough about enums to think of his “MILK = 50” solution. So he had me look up information about Java enums on the internet during the interview. I mildly protested that I already knew plenty about Java enums and their use, which isn’t much really, but he still had me go through the motions. Despite the constant misdirection, I came up with a perfectly good solution and presented it to him. He admitted that he didn’t understand my solution and spent the next 10 minutes at the board describing his solution, as I fully detail above. We’re running out of time at this point. I patiently waited for him to finish his presentation and then reflected back my understanding of his solution to him so he knew that I got it. I then asked to try presenting my solution to him again on the board. After he started to get it, I had to deflect a couple straw-man arguments against it, and then finally, he seemed to “understand” the solution. He walked out of the room to get the next guy without saying bye or shaking my hand. He seemed upset.

Interview Questions

• Support dependent costs between categories. Please reference the question mentioned above.   1 Answer

1.

## Senior Software Engineer Interview

No Offer
Neutral Experience
Average Interview

Application

I applied through a recruiter. The process took 2 days. I interviewed at Guidewire (San Mateo, CA) in December 2010.

Interview

First I've got a written test at home to implement function that validates user input for their Wordy game. I did it over weekend and submitted to them. Then I was invited for on-site interview. On-site interview took 4 hours. First hour I was asked to write function that calculates price of the coffee in the coffee machine depending on size (small, large ...) and selection of condiments (sugar, milk, ...). You have to program it with interviewer sitting behind your back. Second hour - the same problem just conditions become slightly more complex - now price of condiments depends on the coffee cup size. Third hour I was asked to fix some issues in their artificially incorrect implementation of Set class. All this time you practically don't communicate with interviewers they just sit behind your back and watch at what you are doing. Last hour I've talked with project manager. It was free flowing discussion about my experience. At the end I didn't get an offer even so I don't exactly understand the reason. I was told that team was satisfied with my technical skills but didn't feel that I was exited (eager) enough to work for their company. Which sounds really weird to me.

Interview Questions

• Write the function that calculates price of the cup of coffee where price of the condiments depends on size of the coffee cup. For example milk cost 10 c for small cup 15 c for medium and 20 c for large   3 Answers
2. Helpful (1)

## Senior Software Engineer Interview

No Offer
Positive Experience
Average Interview

Application

I applied through a recruiter. The process took 1 day. I interviewed at Guidewire (Foster City, CA) in February 2011.

Interview

I was called for an Interview for a Senior Software Engineer Applications position. The interview lasted 4 hours. First hour I was asked to calculate price of a cofee. You can chose the cofee and add additional items like milk creamer etc. Second Hour same problem but now cost of extra items depends on the size of the cup. Third hour i was asked to fix issues in an artificially badly written Set class. Fourth hour was a general discussion with the Project manager. All interviewers were very good. Treated me with respect. All of them seem to be good technically. i received a call from HR next day that i was rejected. Which i appreciate, since many companies dont call if you are rejected. They also gave me the reason of my rejection saying i had over engineered the cofee vendor and i took around 1 hour and 50 mins to solve the first problem. They expected me to solve it sooner. On the Set Class i knew i couldnt identify problems immidietely so i knew i wont get through. Overall very good experience no regrets even though i got rejected. This is a good company to work for !

Interview Questions

• I was asked to identify problem in artificiallly incorrect class   2 Answers
3. Helpful (4)

## Senior Software Engineer Interview

No Offer
Neutral Experience
Average Interview

Application

I applied through a staffing agency. The process took 1 day. I interviewed at Guidewire (San Mateo, CA) in March 2009.

Interview

After asking my previous working experiences, the interviewer just asked one single coding problem. No any other skills has been asked. I.e., completely depends on the coding! Coding Problem: Coding hasNext() and next() methods for a class that contains a Collection of Collections. (main collection must not be null or empty, sub collections must not be null.) Answer: I got several hints from the interviewer. I think I didn't get the offer because I didn't finish the coding by myself! Even we discussed nicely. public class CollectionOfCollections { private Iterator mainIter; private Iterator subIter; CollectionOfCollections(Collection col) { mainIter = col.iterator(); sunIter = mainIter.next().iterator(); } public boolean hasNext() { if (subIter.hasNext()) { return true; } while (mainIter.hasNext()) { subIter = mainIter.next().iterator(); if (subIter.hasNext()) { return true; } } } public Object next() throws NoSuchElementException { if (hasNext()) { return subIter.next(); } throws new NoSuchElementException(); } }

Interview Questions

• Coding hasNext() and next() methods for a class that contains a Collection of Collections. (main collection must not be null or empty, sub collections must not be null.)   Answer Question
4. Is this helpful? The community relies on everyone sharing – Add Anonymous Interview Review

5.

## Senior Software Engineer Interview

No Offer
Positive Experience
Average Interview

Application

I applied through a recruiter. The process took 1 day. I interviewed at Guidewire (San Mateo, CA) in July 2009.

Interview

Was contacted by recruiter via email and phone and called in to a technical interview right away. Met the recruiter in the offices and was taken to a conference room. The interviewers were friendly, talked for 15 minutes about the company and their product, then did a whiteboard programming exercise.

Interview Questions

• Implement a sparse matrix Java class with a constructor, set and get method. The matrix has millions of rows and columns and is at a maximum 15% populated.   1 Answer
6.

## Senior Software Engineer Interview

No Offer
Negative Experience
Average Interview

Application

I applied through other source. The process took 1 day. I interviewed at Guidewire in September 2009.

Interview

I talked to the recruiter on the phone and he scheduled an interview for the very next day. When I got there he talked with me briefly and reiterated what he had told me on the phone, that they are looking for only very senior software engineers. He then turned me over to an engineer for the rest of the interview. After a brief discussion about the company's products the interviewer presented a Java programming problem for me to solve on the whiteboard. The problem was this: given a class that is a Collection of Collections (let's call it CofC), code an Iterator for the CofC class. Implement the next() and hasNext() methods and the constructor. The only method in Collection that you can use is iterator(). That is to say, you cannot use size() or any other method. During the exercise the interviewer interacted with me, made some suggestions. pointed out some errors. I wouldn't call this a trivial problem but it is not that difficult and probably is a fair test for the amount of time alloted. I made some mistakes early on and didn't focus well enough so I didn't do that well. I strongly suggest doing this exercise at home and timing yourself and paying attention to your process. My impression was that process, and not just the correct answer, was important. They emailed me later the same day to say they would not proceed to the next step with me. It was nice that I got that information right away, compared to most companies who either never contact you at all or contact you weeks later to say they are still interviewing other people.

Interview Questions

• Code an iterator for a Collection of Collections in Java.   1 Answer
7.

## Senior Software Engineer Interview

No Offer
Negative Experience
Average Interview

Application

I applied online. I interviewed at Guidewire.

Interview

Got a phone interview, most of the questions are core java related. Did well, but not selected. Interviewer was so humble and greeted well. Explained the company policies and focus and also working environment.

Interview Questions

8.

## Senior Software Engineer Interview

No Offer
Negative Experience
Average Interview

Application

I applied online. The process took a week. I interviewed at Guidewire in September 2014.

Interview

it was little weird interview, interviewer asked tell me about yourself then he cut me off halfway which was not more than 30 seconds, then is said he does not have time for technical interview so he lets start technical interview. 1) he asked how you design chess game. I identified all the related class like Player, game, pieces, board etc 2) which hashing technique is best? I told they are three 1) linear probing 2)Quadratic probing 3)Double hashing. We had discussion on each of the technique and pros and cons. I got email after couple of days that I was not cleared. Glad anyway I offered in other company who gave more than guidewire compensation discussion with HR

Interview Questions

9. Helpful (1)

## Senior Software Engineer Interview

Accepted Offer
Positive Experience
Easy Interview

Application

The process took 2 days. I interviewed at Guidewire (San Mateo, CA) in November 2009.

Interview

After a short phone screen, I had a four hours of interviewing. The interviewers wanted to see if we could work well together. Other companies wanted me to prove that I was good enough to work there. The difference: Guidewire respects their candidates. Interviews focused on writing clean, maintainable code, communication and problem decomposition. Other companies tested me on trivia or implementing algorithms that I doubt someone in the position in question would need to implement. In addition to being smart, Guidewire wants to know the quality of the code you produce and what it would be like to work with you to solve problems. This told me that I'd like working with other at Guidewire, and I was right.

Interview Questions

10.

## Senior Software Engineer Interview

No Offer

Application

I interviewed at Guidewire in September 2012.

Interview

Applied through linkedin and they were quick to respond. There wasn't any phone screen. They sent a coding exercise with about a week's time to complete. They were quick to respond back in about a week with their feedback. However did not provide much details about their decision.

Interview Questions

Don't Miss Out On a Job You Love
Upload a resume to easily apply to jobs from anywhere. It's simple to set up.

The difficulty rating is the average interview difficulty rating across all interview candidates.

The interview experience is the percentage of all interview candidates that said their interview experience was positive, neutral, or negative.

Your response will be removed from the review – this cannot be undone.