Acing the Engineering Interview: Proper Preparation thumbnail

At Lucid Software, we collect thousands of applications and interview about 100 candidates each year for a variety of engineering roles. We have an interview team of roughly 12 engineers specializing in the six different parts of our interview process. With university recruiting season upon us, we sat down and…

Developers and Testers: Nemeses or Soulmates thumbnail

My husband and I have been married for a little over two years now. In that time, we have heard all kinds of marriage advice; some of it is good and some not so good. Most of that advice could be applied to just about any relationship, for instance, that…

Improving Angular 2 Load Times and a 29KB Hello World App thumbnail

At the beginning of this year, Lucidchart rebuilt its editor in Angular 2. The new editor delivered a better experience with far fewer lines of code. Both engineers and product managers enjoyed it because it made writing features easier. The old (left) and new (right) Lucidchart editor But, there was…

Selenium IDE: The Good, the Bad, and the Ugly thumbnail

Here at Lucid Software, we are always trying to release high quality code to users as quickly as possible. For every release, we spend three to five days doing a full regression to make sure the code is user ready. Three to five days is not as fast as possible….

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…

Speeding up RESTful Services in Play Framework thumbnail

Here at Lucid Software we use a hypermedia-driven application architecture. This means that a client that uses our micro-services simply has to hard-code a “bootstrap” resource URI, and we can re-jigger our endpoints whenever we choose. This approach gives us flexibility on the back-end while maintaining perfect compatibility with our…

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…