The following are real things happened at my work place (various software companies I have worked before). The interview gems are from actual technical interviews conducted by us (group of software engineers) while we were at i2 technologies.
Enjoy!
WTF moments
dev engineer: My desktop has 3GB RAM, dual-core, tons of space but runs like a molasses, can you find out what is causing this?
IT support guy: [Fiddles with the computer for about 10 mins and says...] "Well the problem is because you are running windows XP applications on Windows 2000, thats why, we need re-image your machine with an XP Image"
dev engineer: what the f?!#
product mgmt: Can you remove the product version,build number etc from the software?
dev mgr: The product version/build number is necessary so we can identify the release customer has. Almost every software
ever made has this information. why do you want to do this?
product mgmt: well, mentioning build # 11 to our first customer
may convey the idea that we've got it wrong the first 10 times.
dev mgr: what the f?!#
engineer1: I need you to return error code when the call fails so I
can return proper error message to caller
engineer2&3: The client did not specify anything so we designed the
software so there is no mechanism to return error code
engineer1: what the f?!#
dev enginner: Do we need to re-compile hooks every time we get the SDK service pack updates? [NOTE: hook in this context refers to dynamically loadable C/C++ runtime shared objects]
dev mgr: If you use header files from SDK to build your 'hook' you must re-compile every
time you get a new delivery.
dev engineer: We like to
avoid re-compiling bla bla bla... I'am sure that the hours spent on unnecessary re-compiles
have an effect on the profit margins for these projects.
dev mgr: [whaaa?]... How much time are you going to save by not re-compiling code?. Just
setup the make dependency properly and *always* do a make before delivery... it is the typical thing you do
when you deliver software to QA or production, its called 'nightly build'
dev engineer: Remember each time we re-compile a hook we need to stress test it
too to ensure the possibly modified libraries have intoduced new leaks/bugs. It is equally dangereous
to just release untested code into production.
dev mgr: what the f?!#
dev engineer1 To develop a good application software you need to first start with a good design.
dev engineer2: No, good programmers don't need design as it's already in their head when
they start coding. [NOTE: This is the same engineer above who thinks he can save tons of money
by not doing nightly builds]
dev engineer1: what the f?!#
manager1: The companies #1 goal is quality. QA will not test any of the items below
[items below refers to basic things like parameter validation which will be the first
thing any QA will do] and Delivery will not deliver a non-quality product
manager2: I couldn't agree with you more on testing and delivering quality
software but I disagree on your statement that QA will not test this sorta stuff,
they will not get any result if they don't so they will and they should test.
manager1: QA will not get to this level of detail
manager1: what the f?!#
QA: XML files are not validated when validate option is set to false [entered a defect]
dev engineer: This is not a defect, just set validate=true if you need validation.
QA: defect is fixed. XMLs are now validated when validate option is 'true'
dev engineer: what the f?!#
dev mgr: please remove bin/solaris, bin/aix etc, this is a pure java application
CM engineer: it is the standard we follow across the company where we store platform
specific binaries on separate directories
dev mgr: this is a pure java application so it is not necessary
CM engineer: I understand it is java application but you store only the platform specific
part of the binaries in these folders.
dev mgr: what the f?!#
customer: we like your software to pass the login credential to external system to retrieve highly sensensitive data
vendor: hmm, ok where is the external service?, I hope it is w/ in your network protected by corporate firewall and such..
customer: no external network, no firewall.
vendor: huh, external network as in public network?
customer: yes
vendor: what the f?!#
customer(IS admin): we dont want to run that service because of security reasons.
vendor: we dont need it on physical interface, just run it on
loop back interface so it is not accessible outside of the host
customer(IS admin): well people can access the service...
vendor: how?. Do you think external hosts can connect to a service running on 127.0.0.1?
customer(IS admin): yes
vendor: what the f?!#
customer: We need the source code for the software we bought
vendor: I am sorry, we can't give source code... [follows with explanation on the obvious reasons]
customer: I don't want to go into lengthy discussion on why you can't provide source code. We need the source for software we designed.
vendor: what the f?!#
customer: We are getting error when calling your toolkit can you
tell us what is wrong?
vendor: Have you looked at the log file for any errors?.
[NOTE: Logs refered here is a nicely formated HTML output where
errors are hilighted in 'red' color :) ]
customer: During training they never told us to look at the logs,
besides, I dont want to look at logs everytime I run my tests.
vendor: what the f?!#
Random Quotes
- "Is AIX and Solaris is like a Dell or IBM? -- a clueless application integration 'specialist' in charge of integrating various UNIX application components!
- "What is UNIX?, is it like a script or something? -- a delivery executive in charge of delivering UNIX based application software!
- "do we have something that explains how VPN is secure?" -- a Software Project Manager!
- "Where did you get the impression that QA would be installing software?" -- a QA Manager!
- "so we are using SOAP/MQ/HPTP" [note: HPTP is not a typo] -- a client
- "we don't need version control we can use zip files and use the timestamp on it to track files" -- a sotware analyst
- "Java by nature is not as an efficient language as COBOL" -- a software engineer
- "Windows is far more hardened and secure compared to Linux" -- a software engineer (now works for Micro$oft, go figure)
Interview Gems
Q: What's a class?
A: It's a "ball". Or a "can"... Anything in the real world.
Q: Why do you want to do user interface work?
A: I just love the user. I think about the user all the time.
Q: How do you force garbage collection in Java?
A: By running the class finalizers.
Q: What do you like best about C++?
A: Multiple inheritance. I love multiple inheritance. I use it
everywhere. (pause) I just really love multiple inheritance.
Q: Have you used or studied any distributed object systems?
A: Yes, I've built a large system using "COBRA".
(Note: not a typo.)
Q: How many years experience do you have with C?
A: Probably 6 years.
Q: Okay, what's a pointer?
A: Oh I've never used pointers.
Q: What's the difference in '==' and the equals() method in Java?
A: You have to use == for primitives and equals() for objects.
Q: Does polymorphism use overloading or overriding or both?
A: Overloading.
Q: Explain the difference in overloading and overriding a method?
A: [Lucid explanation.]
Q: Explain polymorphism.
A: [Another lucid explanation.]
Q: Okay, so does polymorphism use overloading or overriding?
A: Overloading.
Q: What causes a thread to block?
A: Entering a synchronized method.
Q: Give justifications for using an interface as opposed to
an abstract class?
A: Interfaces allow you to have constants.
Q: How would you link a C++ application with a C library?
A: Well, I'd just find the C++ version of the library.
Q: (Phone interview) What's does the scope resolution operator in C++ do?
A: uh...
Q: You know, the colon colon.
A: Oh, yeah. <sound of rustling paper over phone> I think I used that in this
project... (about 15 seconds go by). No, I guess I haven't ever used that.
Q: In C++, what's a default constructor?
A: Um... <random babbling> I guess I don't know.
Q: (Explanation of default constructor.) Okay, do
you know what a copy constructor is?
A: Um... <more random babbling>
Q: (Explanation of copy constructor) How about this?
What is a constructor used for?
A: I guess any of this stuff about constructors I'm just not going to get.
Q: How would you specialize the Java Vector class to always allocate capacity for 100 elements?
A: I guess I don't understand the question.
Q: Well, Vector has a constructor that takes an int, which is the initial capacity.
A: Um...
Q: So, you'd write (I begin writing on a whiteboard)