Tech Blog Menu

Tech Blog

The UI Testing Booster Pack

Written By
Gaël Dostie

You feel like you do a decent job at creating new user intefaces or modifying existing ones, but writing tests to cover your changes takes you more time than to write the actual source code. You have experience writing tests for clear cut units of code like functions or classes, but it seems that testing UI is just too different. Having lost all intuition about what needs to be tested, what needs to be mocked, how to split your test cases, or even how to write a simple assertion, you feel lost and unproductive.

If you can relate to any of the above, this article is for you. This post aims to provide a UI testing “booster pack”, all batteries included, that will get you rolling in no time. Having the right mindset and using the right tools will make you almost look forward to writing tests for UIs. Not only because your tests will grant you confidence and improve the quality of the code you produce, but also quite frankly because it will become an enjoyable thing to do.

Read more...

Moving Past LRU: The Design of Cachemere

Written By
William Dussault

Making search engines consistently fast is extremely hard. They have tons of interconnected components, and a minor degradation in one part of the system can easily spiral out of control and become a critical performance issue. Caches in particular are especially crucial to get right, because they can cause a great variety of problems: sub-optimal memory usage, query performance degradations, excessive contention in hot paths, etc. In this post, we’ll cover the current state of caches in the Coveo index, as well as the design and implementation of a new caching library able to solve our issues.

Read more...

Prometheus - Investigation on high memory consumption

Written By
Thomas De Giacinto

At Coveo, we use Prometheus 2 for collecting all of our monitoring metrics. Prometheus is known for being able to handle millions of time series with only a few resources. So when our pod was hitting its 30Gi memory limit, we decided to dive into it to understand how memory is allocated, and get to the root of the issue.

Read more...

Checkov as a Terragrunt hook, Sec in your DevSecOps!

Written By
Jean-Philippe Lachance

Trying to find a good introduction for this blog post, I did what I do when I need to write a complex piece of code: a Google search! I searched for DevSecOps. One of the first results was this article on the RedHat website.

Basically, Coveo adopted the DevOps principle, meaning that all developers are now taking part in the design, development, deployment and operations of our cloud infrastructure. This allows us to iterate fast, but this also means that the security teams must move fast as well.

To build secure environments while adopting DevOps, we must shift security left, putting it as much as possible in the hands of our developers. Shifting security left is a hot topic in the software industry right now. This post will give you a few ideas. Spoiler: tooling is the key!

Read more...

A Quick Introduction to Coveo Headless Library and Svelte

Written By
François Lachance-Guillemette

I have been recently trying some new technologies, such as our own Coveo Headless Library, which aims to replace Coveo JavaScript Search Framework with a smaller headless state management library, and Svelte, which aims at writing less and clearer code to achieve the same results as a React or VueJS app.

Those two technologies are so great and fun to work with that I could not wait to use them together. So this blog post will do exactly that: Let’s build a minimal search page using Svelte and the Headless library.

Read more...

How to leverage Hosted search pages API to ease UI integration

Written By
Anthony Chouan

The Coveo JavaScript Search Framework, also known as the JSUI, lets you build visually rich, full-featured search interfaces. Thanks to the Hosted Search Pages and the WYSIWYG Interface Editor Coveo platform users (even the ones with no programming skills) can discover their content easily. All the resources used to set up a Hosted search page are now available through the Search Pages API. How can we benefit from this API and ease our JSUI integrations?

Read more...

Where to leverage product recommendations - 4 Product Recommendation Examples in Commerce

Written By
Alexandra Rioux

Personalization is one of the biggest marketing trends and is becoming the norm in the industry. Customers are becoming more and more impatient when dealing with online experiences. Not only do they want to be treated as individuals, but they’re also expecting brands to show them content that is relevant to them quickly.

Adding product recommendations to your online experience can help you remain relevant across every interaction while determining your customers’ intent to increase conversion and ensure they have the experience they expect. With the help of AI, product recommendations are experiencing a renaissance. While recommended products are now expected, a lot of them are still using static rules, taxonomy or simple page view tracking mechanism. New advancement in data capture and attribution, product embeddings, and multi-device tracking, allows recommenders to be more precise, personalize and efficient. With these new tools in hand, applying the right strategy becomes paramount.

Read more...

Accessibility within the search experience

Written By
Jamie Lawson

Working for a web-based company, you’ve most likely heard the question: “Is your product WCAG compliant.” Having previously worked in sales, the answer for me was always something along the lines of “Yeah, sure, we are WCAG 2.0 compliant.” But, do you know what that actually means? Do you know what WCAG stands for? *hint Web Content Accessibility Guidelines

Read more...

Beyond ranking expressions

Written By
Alexandra Rioux

Being able to return relevant results is one of the key qualities of a successful site search. But it’s not something you can just turn a switch on. Relevance is a result of multiple factors: strong data to feed machine learning models, an intuitive UI, and multiple custom rules depending on your audience.

This blog article will showcase how you can improve your usage of ranking expressions to the next level.

Read more...

How to develop and structure a Salesforce Package in 2020

Written By
Louis Bompart

In October 2017, Salesforce released Salesforce DX. It brought source-driven development and scratch orgs to the Salesforce developer community, a considerable boon for every Salesforce developer. However, when creating a package, the source of truth was still the code that lived in the packaging organization, and not the code that was in your repository.

2 years later, October 2019, Second-Generation Managed Package became GA, bringing the source-driven development to the packaging. This unified the code in a single place: your repository.

Such shifts in the development process might seem daunting at first, but let me show you how you could organize your code with those tools, and what it will bring to you and your users.

Read more...

< Older Newer >