Elastic Certified Engineer Exam - what to expect and how to rock it

In this blog post, I want to share some first-hand experience on how to go through the Elastic certification process saving time, money, and headache.

At kreuzwerker, we are passionate about emerging technologies. If a technique or a platform is mature enough to offer our clients the optimal solution, we don’t hold back just because it’s new. That explains our experience with Elasticsearch since before its version one came out back in 2013. Fast-forward half a decade (and six major version releases) later, and Elasticsearch has become the de facto open-source standard for central logging and full-text search features. It was a winning choice.

In the last few years we have helped many companies in getting the most out of the Elastic ecosystem: migrating clusters on the cloud, optimising index templates for logging, integrating data from AWS Redshift or MongoDB, dealing with human language in queries… You name it! When we heard of the Elastic Certification Program last year, we thought it was time to back up our expertise by the ultimate authority for the matter: Elastic itself.

Today kreuzwerker can count on two Elastic Certified Engineers, including yours truly. In this blog post, I want to share some first-hand experience on how to go through the Elastic certification process saving time, money, and headache.

Why should I get an Elastic certification?

As I’m writing this post, the only certification offered by Elastic is the one of Elastic Certified Engineer, i.e., a professional with a solid understanding and practical knowledge to build a complete Elasticsearch solution.

An Elastic Certified Engineer possesses the skills and is able to perform the tasks necessary to build a complete Elasticsearch solution, including the ability to install, configure, and manage Elasticsearch clusters, index data into those clusters, and query and analyse the indexed data.

From: https://training.elastic.co/exam/elastic-certified-engineer

Given the lack of certification options, the only decision is whether you want to get certified in the first place. It certainly depends on your position and goals, but I’d like to back up your decision with some general considerations. First, Elasticsearch is not a fad but is here to stay. Their customers’ portfolio and popularity speak for themselves (see Google Trend diagram below). What I mean is that investing today in Elasticsearch is still a winning choice.

google-trends-elasticsearch-with-halo

Second, an industry-recognised certification is still the most attractive and quickest way to communicate your expertise to potential customers and employers. Third and lastly, becoming an Elastic Certified Engineer is feasible and within reach: you won’t need to study overnight for the next six month, nor pay for a super expensive training if you don’t want to. I’ll tell you how in the next sections.

What should I know to become Elastic Certified Engineer?

An Elastic Certified Engineer must know how to install and configure an Elasticsearch cluster, how to index data, how to write queries and aggregations, how to define mappings and how to configure text analysers. Ok, this wasn’t too helpful. Let me elaborate a bit more.

The complete answer to the question in the title can be found in the “Exam Objectives” section of the certification webpage. You may consider this section as the syllabus for your training. There are six Exam Objectives, each representing a category of tasks that you can perform on an Elasticsearch cluster, such as indexing data or configuring a node. A task can be as general as “define an index that satisfies a given set of requirements” and as specific as “use the scroll API to retrieve large numbers of results”. As a certification candidate, you must be confident with each task.

The good news is that you won’t need to memorise all the nitty-gritty details of how to solve all ‘Exam Objectives’ tasks, because you can browse the Elastic documentation during the exam. The bad news is that it is still an awful lot of knowledge to absorb and practice. We need a training plan.

How to prepare for the certification?

You have two options: intensive training held by Elastic or self-study. Based on my experience, here are the pros and cons of each option.

Elastic training

Elastic offers two training courses that can fully prepare you for the certification: “Elasticsearch Engineer I” for beginners and “Elasticsearch Engineer II” for experienced professionals. The training covers all the Exam Objectives in four days - eight if you attend the virtual class. We attended “Elasticsearch Engineer II” last year in a beautiful venue here in Berlin. The course was well structured, with high-quality training material and engaging lab sessions, both very relevant for the exam. On the downside, we were hoping for a more pragmatic knowledge transfer that focused on solving real project situations. Also, the training is a bit pricey. My personal opinion is that it pays off only when you are starting from scratch or if time is your primary concern.

The alternative to the Elastic courses is the long and winding road of self-learning. But hey, it can be fun too!

Self-study

Elastic does an excellent job of documenting their products. Not only is the documentation well-written, comprehensive, and continuously up-to-date, but also their blog posts and webinars are above average. However, such a rich menu of content might also overwhelm new learners, and the result might be more confusing than helpful. So here are some tips to speed up your learning through the Elastic docs Eldorado:

  • Begin your journey with the “Getting Started” section of the Elastic documentation.
  • Make sure you are studying the same Elasticsearch version of the exam (currently, v 6.5).
  • Have a running instance of Elasticsearch where to test your learnings right away. For my - and now your - convenience, I created a set of docker-compose files to spin up different flavours of Elastic clusters in a breeze. For example, you can run the docker-compose file below to create a one-node cluster and a Kibana instance.
version: '3'
services:
  esnode:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
    container_name: esnode
    environment:
      - node.name=esnode
      - cluster.name=elastic-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esnode-data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic-net
  kibana:
    image: docker.elastic.co/kibana/kibana:6.5.4
    container_name: kibana
    environment:
      - elasticsearch.url=http://elasticsearch:9200
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 5601:5601
    networks:
      - elastic-net
    links:
      - esnode:elasticsearch

volumes:
  esnode-data:
    driver: local

networks:
  elastic-net:
  • Stay loyal to the Exam Objectives and resist the urge to follow the hyperlinks rabbit hole. The Elastic documentation is so complete and connected that it is too easy to get lost in it. Go through each Objective at least once, and then feel free to wonder.
  • Stop googling anything related to Elasticsearch right now: you won’t have access to Google during the exam. Instead, learn how to use the Elastic documentation quickly and effectively. Practice especially with the search bar, and on how to formulate your problem in a way that will get you relevant results. Also, get confident with the structure of the topics in the sidebar navigation menu, as it might be faster to get to a page from there rather than using the search bar.
  • Read blog posts and watch some Elastic webinars, as it helps you understand the best use cases for its features, as well as the rationale behind some architecture and implementation choices. Two examples are the blog post on schema-on-write vs schema-on-read and the webinar on architecture best practices.

If you are entirely new to the Elastic stack, you may consider purchasing an online course from one of the many learning marketplaces. I evaluated three courses on Udemy, for example, and I found them not only a great start for beginners, but also a good exercise for more experienced users to internalise all the material. Most online courses include small problems to solve and offer an overview of the other products of the Elastic stack. As icing on the cake, course pricing is reasonable, and there are often discounts. The downside is that no course covers all the topics in the Exam Objectives, but only the most common ones. Moreover, at the fast release pace set by Elastic, online courses get obsolete pretty quickly. Enjoy them with care.

One last consideration about self-study. When I was preparing for the certification exam, I realised that exercises to practice the Exam Objectives were largely absent on the web. Sure, you can find short exercises here and there, but they are rather easy and mostly in online courses (to purchase). I plan to fill this gap in a series of follow-up posts. Stay tuned if you want to check your preparation before the certification exam.

How do I get certified?

At this point in the reading, it should be clear that you become an Elastic Certified Engineer once you have passed a certification exam. The exam is advertised as “hands-on and performance-based”, which I find an accurate statement. It means that you won’t find any multiple-choice questions to answer, but real problems to solve directly on Elasticsearch clusters in a sandbox environment. As said already, you won’t need to know all the commands or default configurations by heart (AWS Certifications, anyone?), because you are allowed to use the Elastic documentation during the exam, just like you would do in the real world. At the same time, Elastic can check that you are able to effectively use the documentation. It’s win-win.

I won’t go into the details of what to expect from the exam, but I strongly recommend you to go through the Elastic certification FAQs and watch the webinar “Preparing for the Elastic Certified Engineer Exam” made by the same people who created the certification program. What makes the webinar a must-to-see is that you get a preview of the exam environment’s look and feel. Trust me: you want to watch it.

Once you have registered to Elastic and purchased the Elastic Certified Engineer exam, you use the same email address to create an account with PSI, the examination provider. In the case you already registered to PSI for an AWS Certification exam, you might need to create a different account for Elastic due to integration issues. I had this problem last February, and it delayed me for one week. Just in case PSI has not resolved the issue yet, I’d recommend you to save some time and register to Elastic using a different email than the one you used for the AWS Certification exam.

My experience with the exam environment and the proctor was very good… except for a moment of panic in the beginning. Even though Chrome on my Mac indicated that my camera was correctly enabled, the proctor couldn’t see me. Troubleshooting the problem with the proctor led nowhere. At some point, out of desperation, I asked to switch to Firefox or to start a video chat on Google Hangout or Skype, but both requests were declined. Then, the epiphany: don’t trust what your browser is saying, but make sure that Chrome has access to your camera in the Security and Privacy > Camera configuration (see screenshot).

privacy-camera-configuration

After such a tense start, everything went as smooth as silk. The proctor asked me to show my ID card and a panoramic view of the room (a tiny studio). It is important that no people, notebooks or electronic devices are within your reach. But, even more important, you are allowed to have coffee and drinks on the table. The communication with the proctor was professional and friendly, and always via chat. Besides the initial camera issue, our only interactions were about getting updates on the remaining time and asking me to take my hands off my mouth (to make sure I’m not whispering questions to someone, or Siri, I suppose). Also, I could take a 10-minute break and leave the room without any problem - a screensaver replaced the exam environment in the meanwhile.

As for the exam exercises, they were challenging but representative of the Exam Objectives, and I had enough time to review my solutions twice. Solving the problems directly on a cluster always allows you to feel good about the correctness of your solution, and the expected outcomes were simple (not easy!) enough to be checked manually.

Long story short, I started the exam on Friday at 13:00, submitted my answers at 15:40, and celebrated the certification on the next Monday. Yay!

Conclusions

In this blog post, I shared my experience and some tips to help you through the Elastic certification process. I hope you found this information useful, and I wish you good luck with your Elastic Certified Engineer exam!

Oh, and stay posted: practice exercises and more learning resources are coming soon.