anchor.diff:  2.    Q: When you delete master object – will it hit child trigger/workflow?
   Most of the developers experienced with triggers and remembering the situations when you think it will work – but it does not work the way most of us expect.
   3.    Q: Given the real organization (e.g. school) with defined entities customer what to store (e.g. for school: class, pupil, teacher, pupils mark, etc). Ask the interviewee to build a data model with (using both standard and custom objects).
  -By the provided answer, you can tell if the person you interviewing are:
  +By the provided answer, you can tell if the person you interviewed is:
       a) Understanding when to use standard objects and when not
   b) Experienced to build flexible to enchantment but locked from changes data model structure
   4.    Q: Tell the difference between Custom Metadata and List Custom Settings.
   Maybe this questions is not 100% in data model – but sometimes list custom settings are used to store some configuration details, and this question is asked only to check if the person you are interviewing is really into salesforce and new approaches
  -5.    Q: How Product relate to Opportunity Product? What is Pricebook and what problems you might have there? What examples of many-to-many relations can you name in standard object model? 
  +5.    Q: How Product relates to Opportunity Product? What is Pricebook and what problems you might have there? What examples of many-to-many relations can you name in standard object model? 
   This type of questions (you can ask anything about data model, e.g. person accounts and how they stored, maybe something from service cloud) but I’m pretty sure that every developer with 1-1.5+ years of experience can tell that things, because some of the weird thing (e.g. Product object having Product2 API name) are easy to remember. Most of the developers can think, that all of this is easy to google and you don’t need to store this – and they’ll be right, but for me – that type of knowledge is a quality mark for the developer.
   
   == General Apex Coding
  +image::https://openclipart.org/image/800px/svg_to_png/286094/Gears.png[Apex, 400, 400]
   
   This type of questions are for developers only and even when developer interviewing another developer – sometimes some significant questions about development missed, but some typical questions asked instead.
   
  
positive.code: 
  :hardbreaks:
  
  _In this article_, I want to tell my thoughts about what is wrong in typical salesforce developer interview and how to make it better. Every single piece of text below is only showing my opinion on what is good and bad in interviews questions (common ones) and answers.
  
  At first, I will start with my thoughts about developer community state. Two words: Just poor. For instance, lots of senior salesforce developer cannot apply the middle/junior level of overall development stuff, lots of really senior salesforce developers not digging deeper into salesforce platform – and, as the result, senior salesforce developer interview is something about pretty Common is salesforce, and some Common Uncommon situations, which developer facing during the development process. That differs salesforce community from other development communities – e.g. java, c#, javascript... Just imagine largest java event with only 5% of developers attending along with only 5% of speeches is about development.
  
  That is why finding a good developer (not a salesforce certified advanced certification master or senior shitcode developer) is a big issue. I’ll summarize bad questions - with some of the original replacement to them below. I hope that by improving the interviews we can somehow improve the quality of the Salesforce community and maybe cold down the market of salesforce developers.
  
  
  == Data Model
  image::http://s3.amazonaws.com/libapps/sites/1094/icons/3348/Misc-Web-Database-icon.png[Data Model, 400, 400]
  
  
  Most of this questions are universal for developer of any level and admins/consultant, and most of them are good itself, but interviewer sometimes do not want to dig deeper into interviewee’s mind, while most of the interviewees are not curious enough to even think about some deep salesforce concepts and trying to figure how everything Is build deep down inside.  I am going to call that kind of developers the as “I’m got paid enough to think about something”-syndrome developers.
  
negative.code: 1.     Q. What's the difference between synchronous and asynchronous apex in terms of limits, execution and use cases? What the types of asynchronous apex in Salesforce?
  Well, I can say that this type of question is pretty common and is also covered by certifications - but the purpose of this question is not about the standard things - where you can invoke future and where not - but about the use cases for future methods, batch jobs, scheduled jobs and queueable.
  2.      Q. Dynamical things available for apex: Queries, Dynamical Method Invocation, etc.
  This question is very important and can be asked in case the interviewee claims he or she did some packages development. With the answer on this question, we can also determine, how complex and agile were the solutions that were built by this person - because I've met peoples with 3+ years of Salesforce development - and they didn't know that you can invoke class methods by only knowing the name of this class.
  3.      Q. Abstract keyword, Virtual keyword, Interface keyword. Define, use cases.
  Yet again - this type of question is asked to get the answer about use cases - it's pretty common to met the Salesforce Developer (with Senior level and experience) who don't use classes separation, and most of OOP staff available for Apex. I know, and I mostly agree, that Apex one of the most dreaded languages and it's kinda limited with all the OOP stuff - but I didn't agree to write shitcode without the ability to reuse it, and making the code too hard to understand and extend. 
  4.      Q. Collections in Apex. How they are actually working. What's required for a class to implement to be able to use the class instance as a Key in Key-Value pair collection?
  I remember the day when I was a junior java developer - and I remember the questions asked to a junior java developer - and collections in java much more complicated than in Salesforce - but lots of developers are not thinking how it's implemented in a background (e.g. Map and Set are using HashSet and some HashMap implementation instead of TreeSet and TreeMap). By asking this I'm trying to understand, is the person I did interviewing actually knows algorithms and data structures at some pretty basic level - or the person is a Point-and-Click developer.
  5.       Q. SOQL: Ask the developer to write a very uncommon query with aggregations, grouping. Usually, Salesforce-Only developers struggle with this - and this is expected, as most of the developers not utilizing the full power of SOQL.
  
  
  == General Development & Development Process
  image::https://images-na.ssl-images-amazon.com/images/I/51Q3QRRRERL._SX258_BO1,204,203,200_.jpg[Apex, 334, 260]
  
  *Typical questions:* Only thing, I've been asked during my interviews is about development process and tools in use. But that's *wrong* (IMHO) as salesforce developer is developer at first, and he should know basics that most of the developers (almost 90% if we're talking about backend developers).
  
  === My Pick
  0.         Q. (That's the question I'm asking during EVERY interview). What development principles you're using in your everyday development experience?. I'm expecting the person to say at least something about OOP principles, general programming principles (exclude goto, self-repeat, modules, pipes, layers), Design Patterns, Enterprise patters - everything, which helps the conversation to get started
  1.       Q. What is SOLID? DRY/YAGNI? Basic OOP Principles: Encapsulation, Polymorphism, Inheritance.
  So I personally think that those questions are the best for determining if the person you're interviewing is actually a Developer. There are only a few interviews which I had where the following topics were fully covered - in general, it's hard to guess by hearing the questions at the interview - for what position they are standing for.
  2.       Q. Do you use VC and CI systems like Git and Jenkins? Why (Both for positive and negative answer)? Basic Git questions (in case person have some experience with it): Merge vs Rebase, Interactive Rebase, Cherry Pick, HEAD and moving through the branches.
  Those questions being asked to understand if the interviewee understands the concepts of modern development, because if he does not understand, or do not use VC or CI with some arguments (e.g. "I'm working on small projects only", "Why we need CI when we have a Changesets").
  3.        Q.  What Design Patterns to you know?
  And yes, it's not enough to answer this question by simply naming the patterns - better to have the name, concept and use case.
  4.       Q. Algorithms and Data Structures. Name the Data Structures (collection name and corresponding data structure) in Apex.
  I think you might wonder why I do include this in a developer interview for a Salesforce developer. Well, just because I think there should be no difference between regular backend/full stack developer and salesforce developer. 
  5.       Q. Coding assignment on some common programming task: Rotate Array, Merge Two Sorted Lists, Binary Tree Traversal...
  
  == Frontend
  image::https://image.freepik.com/free-photo/web-design-concept-with-drawings_1134-77.jpg[Apex, 626, 417]
  
  
  *Typical questions:* Visualforce related: What is view state, how to use static resources, questions about tags and forms (actionSupport, actionRegion, etc). 
  *Typical answers:* Ctrl+C + Ctrl+V from standard documentation. Everybody expects the question about 135k view state on the interview and knows the answer - so, what's the point of keeping those questions in the interview?
  
  === My Pick
  1.        Q. Define HTML5 features, which you're using in your code? Is there any standard for Visualforce markup? A difference between div/span, block versus inline?
  2.          Q. Are you using any standard for you lightning code? What's ES6, promises? How javascript uses inheritance?
  3.          Q. Aura framework questions: How to extend component? Events vs aura:method? Initialization order of the component structure?
  4.          Q. Define possible problems when migrating existing VF page to Lightning Components? When it's better to utilize <apex:slds/> - and when - to rewrite from scratch? Any concerns about 3rd party JS frameworks/libraries?
  5.          Q. Given a website (e.g. google.com). Define, what will be the component structure if the requirements will be to copy this page with every element wrapped with a custom lightning component. Communication between components? // Can be the same question for visualforce/visualforce components.
  
  
  == Final words
  image::https://www.universallearningacademy.com/wp-content/uploads/2016/02/interview-success.jpg[Apex, 300, 600]
  
  What will make your next interview better? 
  
  If you're an interviewer - then find some time to prepare to the interview - read through your interviewee's CV, find both weak and strong spots in there - try to personalize the interview experience as much as possible. Don't use textbook questions - that's not the way how you'll define if the person if matching the position. Try to understand - at the moment of the interview - you're representing the whole company, so try to be friendly, try to be public with your thought as much as possible. And, of course, try to use those questions I've mentioned in this article :)
  
  If you're an interviewee - one very simple rule: If you don't know the answer - don't waste your (and interviewer's) time. Be a learner, not an "I know everything I just need some time to remember"-guy.
  
  P.S. There's two articles, which were published during this blog post were created: https://corevalue.net/what-features-did-we-miss-in-salesforce-spring-17-release/ and https://corevalue.net/great-features-developers-might-have-missed-in-the-summer-17-release/