Why You Shouldn’t Integrate with a RETS Server thumbnail

Real estate is a large industry, and the agents who are a part of it are busy people. At Lucid we built out a solution that helps real estate agents save time when trying to sell properties. We did this by connecting the MLS data stored in sources like RETS…

Cryptography Techniques: A Simple Overview thumbnail

I’ve always loved learning about different ways messages are encoded. As a little kid I used simple substitution ciphers and created my own alphabets to encode messages to myself. From different books and my computer science classes in college, I learned more about cryptography. I found that, no matter how…

How to Plan a Successful Hackathon thumbnail

Lucid’s core values include innovation, passion, excellence, and initiative. And we consciously find ways to ensure that teams live those values: when you come into our office, you can even see these words among other values painted on a wall as a reminder.  One of the ways we promote Lucid…

ZoneTracker: Tracking JavaScript Performance with Zone.js thumbnail

Lucidchart is a highly performant web application. When editing a Lucidchart document, users expect a high frame rate and a responsive UI. To ensure a great experience, we track frame rate and UI stalls. This article describes how we leverage an existing library, Zone.js, to accomplish this. Prereq: The JavaScript…

How QA Transitioned from Biweekly to Weekly Releases thumbnail

I imagine it went down something like this: the VP of Engineering, director of QA, and some key engineers at Lucid were hanging out in a Star Wars-themed conference room one day when someone said: “Hey, we keep developing really cool features for our users. We should release every week…

An Ironic History of Agile thumbnail

In this week’s post, we’d like to take a step back from our usual topics and provide a brief history lesson from one of our resident engineers-slash-aspiring-anthropologists. Original source. “Agile” development was a peculiar sport played by “software engineers,” a type of indentured servant who made their living by tapping…

Streams and Temp File Cleanup: Fixing a Real Production Issue thumbnail

Mismanaging resources is one of the easiest ways to bring down a production system. In a development environment, it’s easy to ignore open streams and temporary files, but at production scale, they can have a hugely negative impact. Unfortunately, it’s far too easy to overlook these issues while developing, even…

Lucidchart is Turing Complete thumbnail

I’ve been watching the Turing completeness of Lucidchart for over a year now. As far as I have been able to prove, Lucidchart has been dipping in and out of being Turing complete for most of that time. In the past, however, I have been able to simulate Turing machines…

Keeping Up With Change: On-the-Job Learning thumbnail

After I had been at Lucid for a few months and was at least somewhat familiar with our code base, all the JavaScript was converted to TypeScript in the space of a few days. Angular 1 also changed drastically and became Angular 2. The languages, libraries, security regulations (like the…

Why Puppeteer is Better than Selenium thumbnail

At the start of this year, we could only write end-to-end tests using Selenium in Scala here at Lucid. This was just fine for the developers here who mostly write in Scala. The problem was that learning Scala and Selenium was a high bar of entry for developers to just…