Here is a list of AEM developer interview topics you should prepare for your next interview. All the topics are explained properly so that you can focus on the most important concepts.
Java Content Repository (JCR)
The Java Content Repository (JCR) is a standard API for accessing and managing content in a repository. It is used by Adobe Experience Manager (AEM) to store and manage content. JCR provides a number of features that make it ideal for use in AEM, including:
- Hierarchical content model: JCR content is organized in a hierarchical structure, which makes it easy to manage and navigate.
- Versioning: JCR supports versioning, which allows you to track changes to content over time.
- Access control: JCR supports access control, which allows you to control who has access to content.
- Search: JCR supports search, which allows you to find content quickly and easily.
JCR is a powerful and flexible API that provides a solid foundation for AEM. It is used by a wide range of applications, including content management systems, web content management systems, and document management systems.
Here are some additional details about the JCR in AEM:
- The Adobe CRX repository implements the JCR in AEM.
- The CRX repository is an open-source repository that is based on the Apache Jackrabbit JCR implementation.
- The CRX repository is used to store all of the content in AEM, including pages, assets, and components.
- The CRX repository is accessible via the JCR API, which allows developers to programmatically interact with the content in AEM.
The JCR in AEM is a critical component of the AEM platform. It provides a solid foundation for storing and managing content and allows developers to interact with the content programmatically.
OSGi (Open Service Gateway Initiative)
- Check out our detailed post about AEM OSGi: All you need to know!
Apache Sling
Apache Sling is an open-source web framework that is used to build content-centric applications. It is based on the REST architectural style and it uses a Java Content Repository (JCR) to store content.
AEM is built on top of Apache Sling and it provides a number of features that make it easy to build and manage content-centric applications. These features include:
- A rich API for interacting with the JCR
- A powerful event system for managing content changes
- A flexible security model
- A wide range of tools and extensions
Sling Request Processing in AEM
Sling Request Processing in AEM happens in the following steps:
- The Sling Request Processor receives an HTTP request.
- The Sling Request Processor maps the request to a JCR resource.
- The Sling Request Processor retrieves the content from the JCR resource.
- The Sling Request Processor renders the content.
- The Sling Request Processor sends the response back to the client.
The Sling Request Processor is a powerful tool that allows developers to build highly dynamic and interactive content-centric applications.
Here are some additional details about the Sling Request Processor in AEM:
- The Sling Request Processor is implemented by the SlingServlet.
- The SlingServlet is a servlet that is responsible for processing HTTP requests in AEM.
- The SlingServlet uses the Sling Request Mapper to map HTTP requests to JCR resources.
- The SlingServlet uses the Sling Content Renderer to render JCR resources.
- The SlingServlet sends the response back to the client.
The Sling Request Processor is a critical component of the AEM platform. It is responsible for processing all HTTP requests in AEM and it is used to render all content in AEM.
Development best practices
AEM Core Questions
- How do you develop components? Give an example of one simple and one complex dialog you have developed recently.
- Hint: Go through this – AEM Components: A Deep Dive into the Most Important Interview Questions
- Have you worked on Dialog listener, how do you write the dialog listener?
- What are editable templates? The process to create and maintaining editable templates.
- Have you worked on Sling servlet filters?
- How do you develop a new service in AEM?
- Have you worked on consuming a third-party web service from an AEM service or servlet?
- Do you know about the AEM assets API? How it can be utilized?
- What is the difference between experience fragments and content fragments?
- How do you allow or restrict components at the template level?
- Hint: Talk about the template policies
- Multi-Site Management (MSM) and live copy features of AEM? How is the live copy detached?
- How do you set up language copy and blueprints?
- What is the difference between live copy and blueprint?
- Have you worked on Sling Dynamic Include (SDI)? Explain with a real example.
- Hint: Go through AEM Sling Dynamic Include (SDI): How to Implement?
- How is internationalization or i18n configured and used in AEM? How is localization achieved?
- What is workflow used for? Give two simple examples of the usage of workflow. (Hint – Rendition workflow, content approval workflow)
- Have you worked on writing a custom workflow class? How is it written?
- Hint: Try to explain, how to extend the WorkflowProcess class and use the execute() method Detailed explanation here.
- What is personalization? How it is achieved?
- What are tags/taxonomy? How are they helpful to AEM Authors and developers?
- What do you understand by ACL? Cite some different levels of permissions and groups in AEM.
- What is a service user? Why it is created and how it is useful?
- What are AEM forms? How are they implemented?
- What are some major differences between AEM 6.1 & AEM 6.5 versions?
- Difference between SCR and R6 annotation?
AEM Infrastructure-related Questions
- What is a dispatcher? what is its use?
- Explain load balancing in the dispatcher.
- How does caching work in dispatchers?
- What are replication and reverse replication?
- What is UGC? and how it is achieved?
- What is the basic infrastructure setup of AEM?
- Hint: Talk more about Author/publisher/Dispatcher/CDN etc.
- What is the difference between TarMk and Mongo repositories?
- Do you understand AEM as Cloud Service? Have you done hands-on on AEMaaCS?
- What do you understand by Adobe Experience Platform (AEP)?
AEM Development-related Questions
- How does sling resolution work in AEM?
- How do you set up an AEM project from scratch?
- Hint: Talk about spinning up the AEM server, using the Maven archetype to generate the boilerplate codebase, and building the functionalities on top of it.
- What are the steps you will follow to troubleshoot when a bundle is not starting?
- Troubleshooting steps if the AEM server is not starting? or how to start the AEM server in debug mode?
- Steps to troubleshoot the AEM in debugging mode?
- What are the development processes involved in the AEM project? How do you handle merge conflicts in Github? What do you understand by CI/CD?
- How do you do unit testing? what do you understand by code coverage? Have you heard of or followed TDD approach?
- Have you worked on Regex? How will you handle a scenario where let’s say you have to restrict a certain level of inputs in a text field?
- Have you worked on Email service? Have you sent some notifications to a group of users based on some events?
- Have you worked on Search implementation?
- Hint: Discuss several ways of search implementation e.g. JCR Search, Solr Search, Elastic Search
- Have you worked on the event-handling features of AEM?
- Hint: Talk about implementing the EventListener interface with an example.
- Do you have any idea about the Scheduler feature of AEM?
- Hint: Discuss the usage of the scheduler and how to reference it in any class etc.
Third-party Integration Related Questions
- Have you done any third-party integration? How and what technology is used? Are any REST / SOAP-based web services used for the integration?
- Do you know about any translation service and have you implemented it?
- Have you worked on securing a website? Hint: Google reCaptcha, different versions, accessibility plugins, etc
- How do you display cookie consent? How do you handle the GDPR requirement?
The above list is just some pointers/indicators to touch upon the basic questions you should expect in the interview. We try to keep this page up to date with the latest answers. Please let us know in the comments section below should you find some discrepancies.
Also, it is a good idea to explain things with a working example from your own experience. In case you still find it difficult to find some answers and want to discuss it, feel free to drop in a comment and we will try to address it.
Further Readings
- Our other blogs on AEM Concepts
- http://aeminterviewquestions.com
- https://www.adaface.com/blog/aem-interview-questions/
- https://hashimkhan.in/aem-adobecq5-interview-questions/
- https://mindmajix.com/adobe-cq5-interview-questions
If you are looking for a content author or content strategist role in AEM, have a look at our other blog on the same – AEM Content Author & Content Strategist Interview Questions.
Did you take an interview recently? How did it go? Feel free to share any particular questions you have in mind or came across during your interview, in the comments section below. 🙂 It will help others as well.
2 thoughts on “AEM Developer Interview Questions: What You Need to Know!”
This is a great consolidation. Helped me a lot. Thank you webfuse!! 🙂
Glad to hear it was helpful. Thanks, happy surfing! (y)