Behind the Scenes

Code Kerfuffle 2019 Results thumbnail

This year at Lucid, we ran our first-ever Code Kerfuffle: an open coding competition consisting of two stages. The first stage was a traditional algorithmic competition administered over the Internet. Of the hundreds of people who entered the first round, 32 finalists were invited to an in-person final round where…

How to Plan a Programming Competition thumbnail

Lucid has hosted multiple programming competitions and is about to host our biggest one yet in March—Code Kerfuffle—with $50,000 in prizes. Here are some things I’ve learned from helping plan and run Lucid’s programming competitions. 1. Define your purpose The first thing to keep in mind when planning competitions is…

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…

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…

Why JSON isn't a Good Configuration Language thumbnail

Why JSON isn’t a Good Configuration Language Many projects use JSON for configuration files. Perhaps the most obvious example is the package.json file used by npm and yarn, but there are many others, including CloudFormation (originally JSON only, but now supports YAML as well) and composer (PHP). However, JSON is…

How to Actually Improve Type Safety with the TypeScript Strict Flags thumbnail

Last summer a team of engineers converted our front-end code from Closure-annotated JavaScript to TypeScript, you can read about it here. It has been a long journey to take that converted code that was smattered with anys and turn it into idiomatic and type-safe TypeScript. The strict compiler flags have…

Agile Documentation: Keeping Your Team in Sync in an Agile World thumbnail

Remember writing a detailed lab report or paper in school? We’ve all been there, and I doubt many of us really enjoyed it. Process and product development documentation can leave that same sour taste in your mouth if it’s just documentation for the sake of documentation. Documentation can take hours…

JavaScriptCore - The Holy Grail of Cross Platform thumbnail

The perfect cross-platform solution. The Holy Grail. The El Dorado of app development. The dream that multiple languages have promised, but none have delivered. As we speak, there are likely a dozen cross-platform projects in the R&D phase—all with a couple years worth of funding and all being built with…

How to Debug Disk Full Errors in Redshift thumbnail

When working with Amazon’s Redshift for the first time, it doesn’t take long to realize it’s different from other relational databases. You have new options like COPY and UNLOAD, and you lose familiar helpers like key constraints. You can work faster with larger sets of data than you ever could…

I recently finished a project which required me to modify an annotation macro for Scala using the Scala Macros Paradise project. Because I was extensively modifying a macro that we were already using, I wanted to write tests to prevent breaking our current workflow and to check that the new…