Debouncing API Calls with Promise Chaining

Typeahead (or autocomplete) suggestions are a useful UX enhancement - helping users find what they’re looking for in a much more efficient way than executing a number of searches in a row. As the user types in the search input, the application queries the API for matches and displays the results.

But there’s a potential downside to this - on every change of the input value the API is queried - potentially leading to a lot of unecessary API requests, and race conditions when dealing with the asynchronous responses.

This week Software Engineer Jordan Papaleo details a solution for improving the performance of typeahead inputs using Promise chaining with Lodash’s debounce method to reduce the number of API requests and simplify response handling.

Read the article on Jordan’s blog ≫

Working at Theorem: A Typical Non-Typical Day

Theorem is a remote-first workplace, it always has been. Nearly all of us work from home and we’re extremely well-versed in distributed teamwork. Because of this, we didn’t think lockdowns would affect us too drastically.

But almost nothing is normal these days, and that includes life for remote workers. This week Theorem Software Engineer Leandro López gives us an inside look at how lockdown has impacted his daily schedule in Buenos Aires, Argentina.

The biggest takeaway, for me, is that in order to survive this crazy new world we are living in, you need to work with great people, who understand not all experiences are equal, who trust you will work with professionalism and responsibility, and who you trust back in the same way.

Read the article on Leandro’s blog ≫

Distributed Systems Fundamentals Part 2: You Can Say That Again!

At Theorem, we approach problems by reasoning about them from first principles. To truly understand a problem and be confident about your solution, you must have a working understanding of the fundamental constructs and motivating logic behind what you’re doing. In this spirit, we’re releasing a blog series about the fundamentals of distributed systems. This post is the second of that series.

Continue reading...

SwiftUI Implications

SwiftUI was warmly welcomed by the development community when it was announced at this year’s Apple Worldwide Developers Conference (WWDC). Given the wide variety of platforms and screen sizes, it makes sense for Apple to provide a standard UI abstraction layer which works across all of their devices. Creating, managing, and positioning each UI view, and their countless properties, to form the expected layout is a time consuming and error-prone task. It adds little value, but a lot of development effort, to the resulting apps – even more so if multiple device types are to be supported. SwiftUI addresses these challenges, improving application quality and decreasing development effort.

Continue reading...

Distributed Systems Fundamentals Part 1 or: How I Learned To Start Worrying and Confront the Possibility of Message Loss

At Theorem, we approach problems by reasoning about them from first principles. To truly understand a problem and be confident about your solution, you must have a working understanding of the fundamental constructs and motivating logic behind what you’re doing. In this spirit, we’re releasing a blog series about the fundamentals of distributed systems. This post is the first of that series.

Continue reading...