Keeping 400+ Repositories up-to-date with Renovate
At Coveo, we have a lot of repositories. They each have their own dependencies that span across multiple programming languages and package managers. Keeping all of those dependencies up-to-date can be...
View ArticleDealing with Lambda Cold Starts in the Real-time Data Pipeline
In our previous post, we introduced the new architecture of the streaming data pipeline at Coveo, showing how it helps us achieve higher data quality, extensibility, scalability, and resilience. We...
View ArticleBuilding a resilient and high performance real-time data pipeline using AWS...
At Coveo, we track how end-users interact with search interfaces by capturing client-side and server-side signals from our customers’ implementations. Initially, we only collected client-side events...
View ArticleThe Curious Case of a Service-level Objective
The contextThe site reliability engineering (SRE) team at Coveo is currently hard at work implementing tools and processes with a lofty goal in mind: moving our existing monitoring culture in R&D...
View ArticleKeeping our data pipelines under watch and on good behavior
IntroductionCoveo’s data platform team is responsible for ingesting analytics data and making it available to internal teams as well as to customers. Over the last few years, we’ve matured in our...
View ArticleCoveo Blitz, où il faut développer à la vitesse de l'éclair
En janvier dernier avait lieu la 14ᵉ édition de Coveo Blitz, notre compétition annuelle de programmation pour étudiants. Ceux qui sont familiers avec l’évènement reconnaîtront la formule des dernières...
View ArticlePatterns for project failure
IntroductionMy name is Nicolas Juneau and I am Coveo’s CFO (Chief Failure Officer). As the blog review team has yet to unpack a huge backlog of articles to review, I took this opportunity to write on...
View ArticleCreating Dungeons & Dragons GPT With Coveo GenAI
As you mayhaveheard, Coveo recently released its Generative Answering solution (also called “GenAI”). It’s been all the hype internally at Coveo, as well as externally with multiple customers and...
View ArticleHow we got to an Active-Active production environment in the US
In the past few years, our cloud service provider, AWS, has been overall pretty reliable. But like everything in life, nothing is perfect and as Werner Vogels (CTO of Amazon) repeated many times -...
View ArticleError Handling Tradeoffs and Crashing in Production
There are only two hard things in Computer Science: memory problems, error handling, and of course off-by-1 errors.For years, I’ve felt uncertain about what to do when something unexpected happens in a...
View ArticleTemporary privileges as a service, a nice engineering challenge
I spend most of my days inside a code editor, Jira, Outlook, or in meetings. Now that one of our projects won the Identity Management Project of the Year – SMB award, it’s a great opportunity to take a...
View ArticleAccelerate your Maven CI builds with distributed named locks using Redis
Everybody loves a fast, responsive continuous integration (CI) setup. While it’s fun to battle each others on rolling chairs, having quick feedback on pull requests builds and fast deployments is an...
View ArticleImproving download speed of a S3 proxy in Go
There is an old adage that says, “Hardware eventually fails. Software eventually works.” As the Coveo Blitz competition is approaching, we are ramping up the platform to receive more than 135...
View ArticleCreating a custom Sentry block using Prefect 2
In my last blog post, I described a practical way of integrating Sentry with Prefect 1 flows. Since then, Prefect 2 was released, and with it, many interesting capabilities were introduced. I won’t...
View ArticleCoveo auto-reply integration with Slack
Use caseFollowing the newly launched Coveo Slack Application, it is now possible to search your whole Coveo index directly from Slack with a single click or slash command. This is definitely a great...
View ArticleIntegrating Sentry in Prefect Flows
At Coveo, we deal with an enormous amount of data on a daily basis. With data growth, our data platform has also grown from a single team a few years back, to more than 3 teams and 20 employees. With...
View ArticleSoftware Engineering: It’s All About Abstraction
Next summer, I’m going to drink a beer under a tree.Right now you probably have an image of me, under a tree, with a beer: you understood my intent. What’s interesting is that the details of this image...
View ArticleUsing Amazon Aurora Global Databases With Spring
A few years ago, Coveo wanted to offer the possibility to store customer data outside the United States. Early in the project, it was decided that we would only have one user directory. If our users...
View ArticleLeveling in code review
Through the years, I’ve heard many different opinions about code review, ranging from “publishing code to the main branch with extra annoying steps” to “I learn so much from it” stepping through “it’s...
View ArticlePrometheus at scale
Coveo has experienced great growth over the last few years, by bringing in new clients, deploying in new regions, integrating new technologies, etc. But the infrastructure on which our offering sits...
View Article