- Jan 6, 2023
Integers in Crystal
Another blog post on the journey of discovering the differences between Ruby and Crystal. This time, we’re taking a look at some of the differences with integers.
- Dec 8, 2022
Dipping into Crystal
For this year’s Advent of Code, I decided to have a shot at completing excercises I attempt only using Crystal – a compiled, statically-typed language. Yet, inspired by Ruby.
- Oct 3, 2022
An adventure in serialization
A cautionary tale debugging the strange behaviour of a Rails upgrade during a blue-green deployment.
- Jun 21, 2022
Engineers Need Rubber Ducks
Rubber ducks are foundational to a well-functioning development ecosystem. Without them, software developers wouldn’t know how to explain what they were doing.
But “rubber ducks” aren’t always plastic waterfowl. Let’s chat about them, where they show up, and why they’re awesome.
- Sep 1, 2021
Getting to Know the Litmus Slack Interview
For the past few years, a Slack meet and greet has kicked off the interview process for the Litmus Applications Engineering Team. With a fully remote and largely asynchronous team, Slack is our primary mode of day to day communication. We designed our interview process with the intent of giving applicants as much insight as possible into what the role will entail and that’s why we included a Slack chat.
- Mar 25, 2021
Meet the Team: Emily Skitek
This post is part of our “Meet the Team” series where we chat with members of the engineering team and take a brief look into their lives inside and outside of Litmus.
- Feb 24, 2021
Planning a virtual retreat (that is almost as good as an in-person one)
For the past few years, our engineering department has gotten together in-person for a week-long departmental retreat. These retreats are extra special for our mostly remote group—a rare opportunity to connect in a different way with teammates we don’t regularly work with. As 2020 progressed, we realized in-person was just not a possibility. Plan B was to create a remote retreat that could somehow capture a little bit of the camaraderie and respite we had been looking forward to.
What we learned was: take the time to listen to your team and get them involved early and often. In the end, what makes it special is all of us coming together with our collective talents and feeling like we’re able to both contribute and gain something, which you don’t necessarily have to be in-person to accomplish.
If you’re looking to plan your own virtual retreat, here’s our top tips for every step of the way:
- Dec 15, 2020
Meet the Team: Teresa Tarn
This post is part of our “Meet the Team” series where we chat with members of the engineering team and take a brief look into their lives inside and outside of Litmus.
- Dec 2, 2020
The Desks of Litmus Engineering
Our engineering team has been fully remote for quite some time now, even before the pandemic hit. This is a glimpse into what some of our team’s home desk setups look like!
- Nov 13, 2020
The Anatomy of a Customer Response
In 2019, we made the decision to align Customer Support and Engineering. This alignment works to strengthen the feedback loop in several ways. Firstly, it ensures that the team building and maintaining our platform is as close to the customer as possible. Additionally, our support team benefits from working adjacent to engineers. We now have a clear pipeline for escalation, as well as a deeper understanding of the product that we can then translate back to our customers. There’s a lot to unpack from this alignment in terms of benefits, as well as areas we can improve upon, but in today’s post we’re focusing on the very start of the feedback loop—the customer touchpoint.
Read on to learn more about what a typical customer touchpoint looks like in support. We’ll dive deeper into what we pay attention to, how we take care of the customer, and finally, what feedback we extract and bring back to Product and Engineering for improvement.
- Nov 13, 2020
Testing Private Methods
In any codebase there are places that are that bit harder to test. If you are testing after the fact, and trying to cover as much code as possible, testing private methods can be a very appealing tool.
TL;DR
✅ Always test through the public interface of an object.
❌ Never test private methods directly.
- Nov 12, 2020
Meet the Team: Allie Sperry
This post is part of our “Meet the Team” series where we chat with members of the engineering team and take a brief look into their lives inside and outside of Litmus.
- Nov 12, 2020
Extract Scope: where should the code live?
In Rails, accessing specific records from the database can at times become unnecessarily complex.
The complexity is compounded when this code is jammed in the middle of an already bloated controller action. Naturally this has a knock on effect on the complexity of testing the new functionality.
- Nov 12, 2020
Pruning Deadwood
Software developers generally lean on principles and techniques when creating or modifying software. Some of these are design principles, like the SOLID principles. Others might be process or techniques like test-driven development, or pair programming. Ultimately, why we follow these principles and methods is to create better, more maintainable software with as few defects as possible. Helping us make our code more reliable, and easier to grok and change in the future.
- Nov 10, 2020
Boundary Testing
Motivation: Avoid issues in boolean methods due to wide ranging test data or not enough test cases.
Let’s take an example of a boolean / question method,
goal_achieved?