SolidWorks Software Engineer Interview Questions & Reviews
Getting an Interview
Very Difficult Interview
Software Engineer Interview (Positive Experience; Very Difficult Interview)
I applied through a staffing agency and the process took 2 days - interviewed at SolidWorks in June 2008.
Interview Details – Initial communication started through contracting agency. After talking with me, the agency thought I would be a great fit at SolidWorks (SW). They approached SW and I was told they wanted to see me in an hour. I had no time to prepare, but I was confident. It was a good thing I was wearing my suit!
On arrival, I was greeted by the branch manager, the VP of research and development, and a beautiful Trek bicycle hanging on the wall which was designed there. The office was stunning, such a breath of fresh air from cubicle views! Every developer had their own office and each had a window! To the outside! There was a kitchen stocked with beverages and coffee and water. Food stuffed in a fridge and snacks abounding. The guide let me know that they were just about to expand and what that would offer. I was really drooling. I noticed that they had a game center with x-box, wii, and a gaming computer and it was open for use during the day for clearing the mind and relaxing. Wow. Seriously blown away.
So he showed me around, asked if I needed something to drink. Then we sat together and he introduced me to the company as a whole, what they did, background, etc. He told me how long the interview would take and asked me if I had any questions. I was by that time, very excited, and frightened! He said they were good at finding out how much I knew, what my experience was, etc. After two days of two on one interviewing, I believed it!
My first interview that day consisted mostly of programming questions, my knowledge of C++ and OOP, some algorithm questions. Some questions that got at my personal programming philosophy and why I did things the way I did them. Then I was given a problem that took the rest of the time. I can't share what that is, but it was pretty challenging. I think that a lot of this was to see how I thought, my mental processes, was I a quick learner, etc.
Lunch was provided and it gave me a chance to chat with everyone, laugh, get the pressure off. It was really fun and gave me a hint at the camaraderie amongst the employees at SW. We talked about movies, hobbies, personal fun stuff and laughed a lot (always a good sign). Lunch really put me at ease (and made me tired!) and I wasn't as nervous the rest of the afternoon. I felt good about having done well in the first interview and had a lot of confidence for the later part.
After lunch, I had three in-person interviews with pairs of people. The first happened to be a lot about my experience, explaining projects, what I learned on them. They also asked me some conceptual programming questions mostly around OOP and C++, like what's a memory leak and so forth. Some of the harder questions they asked had to deal with the things that I worked on, validating that I knew what I knew. The second of these pairs asked me more higher level programming questions, asked me about debugging and how I did that, what sort of skills did I have debugging software, working in large code bases, etc. Finally, the last interviewer was a one on one and asked a lot of detailed technical questions about networking, C++ and Operating System guts such as what makes up a process in Windows and how memory is allocated.
I went away for a week on vacation and they asked me to come in one more day for four more interviews. One was full of geometry and math questions. Things like proving geometrical properties of shapes and really dug deep into my high school memory. They also asked me some algorithmic questions such as how I might implement such and such feature of a known application, digging into my conceptual knowledge of different datastructures like B-Trees and HashTables, searching, etc. It was difficult to do over the phone, frankly, as they couldn't see things that I was writing on paper or drawing out on a whiteboard. I was a bit tired as well and had been interviewing while on vacation for different companies, so I was a bit mentally out of shape. All that didn't help and I didn't feel like I did well on it. The next few interviews were not technical at all and were much more conversational, again, touching on my personal work and what motivated me, why I liked what I did.
I was told after those interviews that there would be a team huddle and everyone would talk about what they liked or didn't like about me and I'd be contacted in a few days by the agency. It was a rough two days because I really wanted the job. Absolutely nothing compared with the intelligence, passion and culture of this company. They really cared about their employees. You could see it in the computers they bought, the comforts given to each, the personal space and attention to detail. What other company has a pool table in the middle of an open space... being used!?
After those two days, I was called back and got the job. I've been there for a year and I am happy as can be.
- Mentally draw two lines from the endpoints of the diameter of a circle to any point on the circumference. Can you prove that the angle with vertex on the circumference will always be a right angle? How? View Answer
- Suppose you were to implement the dynamic spell checker in Word, you know the one that puts a squiggly line under misspelled words. The way it's observed working, it will flag a word immediately when it detects a misspelling. Start typing "Hell" and if you put an "i" instead of an "o", it will flag it. At a higher level, how would you implement this? What sort of data structures might you use? How would they be pieced together? Answer Question
- Pretend I'm a student in your programming class. The topic you are lecturing on is debugging. Explain to me what a debugger is, why I should use one and how it works. Answer Question
Negotiation Details – There wasn't all that much of a negotiation phase. They asked me what I expected to be paid and I shot high. I was told that it was right in line with what they would offer and it was more a small give/take. I felt that the rate was very good and I really, really wanted this job. Had I been a bit more confident that I was rock solid in the technology that I would be working in, I might have fought for a bit more, but I didn't play with it.
I'd say that if you were being offered a position here, most likely the pay rate will be what you'd expect. There's great incentives and I wouldn't push it. Not many companies care about their employees this much.
Software Engineer Interview (Positive Experience; Difficult Interview)
The process took 2+ weeks - interviewed at SolidWorks in May 2008.
Interview Details – Got a phone screening in which they tested basic programming skills on C++. They assume that you are a developer who knows C++ programming constructs. Some geometry skills are needed as well. After passing the phone screening, i was called on site, and there were 6 or 7 hour long interviews. The interviewers ranged from software engineers to Director of engineering of the group i was applying to. They were all technical. I was even asked to write program on white board, find bugs in there and so on. But over all a nice experience. The environment sounded quite positive and I decided to join the company once they offered that position to me.
Interview Question – If you have a point on 2d plane, and you have a closed contour, how can you decide if the point lies inside the contour or outside the contour? View Answer