↳
It is good to see a comment from one of the interviewers. The drag and drop has its limitations but it is an easy of use tool to help none technical people such as business user to create their business process and get it deployed in a timely fashion. Developers should be happy to see these tools since it is easier for business users to test their business processes. Less
↳
Mr. Mark Richman: I happened to whiteness your interview that day. An interview with the CIO is not about your technical skills, but rather about your style of engagement with team members and your ability to add discussion value versus desperately trying to make a stand on your opinions. In my view, bad move on your part not understanding the actual purpose of the drag and drop question. It was not a technical question, and your ego might have gotten the better of a well crafted interview designed to find the brightest talent in the marketplace. Less
↳
Could you give some examples on the online test? Is it technical ?
↳
This is non technical online test. It is an aptitude test.
↳
My answer: Look at the class tree, try to find out the design (actual and intended);try to encapsulate, what can we reuse, what do we have to rewrite. This wasn't what the interviewer intended, he was after something more specific, see next question. Less
↳
Unit testing is automated testing of individual smallest units of program code to see if they fulfill the contract they were written for correctly. (-> Design by contract). "Smallest units" of program code can be classes or methods. In .Net, the Visual Studio Unit Testing Framework generates default unit tests for the methods of a class. So, when you have coded the basic design of a class and its methods with their signatures (possibly from a UML class diagram), the tests can be auto-generated and then filled in. By default, there is one test per method; if different input-output relationships of the method have to be tested, this is usually done with different method calls within the one test. This may work differently with different unit testing frameworks: http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks In "pure" test-driven development, the test is written even before the class, and the class then written so that the test will compile (and later, when coding is finished, even run without an error). Less
↳
First: Dependency _Inversion_ (not injection) is when before, a system that is developed would call little components (the dependencies) as they were given, whereas now, with inverted dependency, the system defines and publishes abstract interfaces as dependencies that the components had better fulfill, and the components are written to just fulfill the abstract interfaces. Based on this principle, Dependency _Injection_ is where a system defines/publishes its dependencies, but the actual components or elements that fulfill the dependencies are supplied ("injected") later, possibly at runtime. "Day to day programming" had me dumbfounded. What the interviewer meant was: There are some of Dependency Injection Frameworks out there, where the code that you write gets called by the framework, not the other way round, and the framework "injects" the dependencies your code needs. Example frameworks are Spring in the Java sphere and Managed Extensibility Framework in the .Net sphere. "Day to day programming" meant: "When you program without a framework". It still had me dumbfounded because in .Net, you never program without a "framework" -- the library itself is called the .Net framework. The expected answer was (probably) that dependencies can also be injected manually by code that calls your code. Dependencies can be supplied to a class that needs them via public properties, or via the constructor, or via interfaces that the class that receives the dependency defines, e.g. via a factory method. Less
↳
The interview demands lot of time. I had to spend about 12 hours.
↳
I was able to more accurately show the breadth of my technical knowledge and skill set with this format. I was able to give real life information and answer questions about the project, challenges, and approach to drive the solution. This was the first time I was asked to use this approach in an interview and found it to be superior over the usual form of skills assessment used by other consulting firms or organizations - which typically entails being given a foreign case study with minimal information to build and present a solution which almost always feels rushed, incomplete without information, and limited due to time restraints and partial requirements. Salesforce seems to have figured out a great way to assess skill level. Less