Ten short months ago we published a blog post showcasing how Lucid shares code between iOS, Android, and the web. In that post, we highlighted a new feature that executed a subset of our shared JavaScript using JavaScriptCore, a WebKit framework for helping JavaScript inter-op with native code. Today we’re…

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…

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…

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…

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…

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…

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…

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…

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…

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…