Behind the Scenes

If you’ve ever scripted in Ruby before, you’ve more than likely encountered deeply nested arrays and hashes. These nested structures often come from Ruby’s JSON parser, but Ruby itself doesn’t have effective methods for dealing with them. Specifically, sorting these structures: the standard routine only shallow sorts the top layer…

Lucid Software validates every pull request for its internal code base. Running over 1000 builds a day across 80 projects strains the robustness of our code, tests, and tools. For example, several times a week, builds complained about the default Java version. It didn’t make much sense. Our servers are…

An Implementer's Overview of Managing Cloud Identity with SCIM thumbnail

System for Cross-domain Identity Management (SCIM) allows an enterprise to manage users across multiple cloud applications using a single interface. It might be helpful to think of it in terms of its original and more memorable acronym, Simple Cloud Identity Management. You ended up with this poor configuration accidentally. Where…

Who the Heck Wrote This? 3 Ways to Deal With Bad Code thumbnail

We’ve all been there. After hours or even days of tirelessly trying to narrow in on the cause of some small bug, you finally close in on a particular section. You know the problem is in there somewhere, but the code is spaghetti—an impossible-to-read, jumbled mess of logic that does…

Simplify your AWS config with Cumulus thumbnail

We’ve all been there: your production system is running great and uptime has never been better. One Wednesday morning you wake up, enjoy a nice breakfast, and head off to work—when a few dreaded notes from your phone tell you that production has just gone down. You buckle the racing…

Uglier than a Windows backslash, odder than ===, more common than PHP, more unfortunate than CORS, more disappointing than Java generics, more inconsistent than XMLHttpRequest, more confusing than a C preprocessor, flakier than MongoDB, and more regrettable than UTF-16, the worst mistake in computer science was introduced in 1965. I…

Image source: xkcd Selenium can be one of the most powerful tools in the QA Engineers’ arsenal. Unfortunately, it can be time consuming to write, a nightmare to maintain, and it can produce way too many false negatives. At Lucid Software, that is where our suite was in the middle…

Performant canvas rendering for modern browsers Lucidchart is one of the most complex graphical apps on the web, which means good performance is an absolute must. Getting that performance out of each of our supported browsers has always been a challenge, and we’ve found the best ways to meet that…

In August 2014, Lucid Software brought on a dedicated engineering team — including yours truly — to improve our users’ mobile app experience. After deciding to re-write the existing Lucidchart app natively (previously a Titanium app), my team members and I decided to use Swift instead of Objective-C. A complete…