How to be Agile when Production gets in the way

Everyone knows the rituals. From sprint planning to grooming, we try to make sure a sprint is run as effectively and efficiently as possible. This allows project stakeholders to plan for feature releases and ensures that the engineering team is being utilized to their full potential. The sprint has started and everything is going to plan. And then a bug ticket comes in. And then another. An engineer is pulled away from a sprint task to help evaluate the problem. The engineer discovers a bug that is top priority to fix and they switch focus to ensuring the bug is addressed as quickly as possible. Suddenly, the sprint plan is invalid and the PM is left with the, often difficult, task of figuring out which tasks will get pushed out of the sprint to accommodate these unplanned events. This may involve dates being pushed, and sometimes difficult conversations with project stakeholders.

Continue reading...

Monitor Hack: A $30 KVM Switch

Salt and pepper. Hammer and nail. Socks. All things that are better as a pair. And monitors, according to most devs at least.

Nearly all of us prefer dual monitor setups. With a single computer the dual monitor setup is relatively straightforward - connect the monitors to your computer and you’re ready to go. But what do you do if you frequently switch between computers and want to switch the source for the monitors?

One solution is a Keyboard, Video and Mouse Switch, aka KVM Switch. A KVM switch is a hardware device that allows multiple computers to share peripherals, like monitors. The downside is a quality KVM Switch with support for mulitple 4k, 60hz, USB-C monitors can cost upwards of several hundred dollars.

Enter Software Engineer Haim. Haim created a $30 alternative using a hardware/software solution with an inexpensive USB Switch and two programs he wrote (in Swift and Rust, for Mac and PC) to detect and automatically switch the monitor inputs.

Read about Haim’s Monitor Switch on his blog ≫

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 TheoremOne: A Typical Non-Typical Day

TheoremOne 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 TheoremOne 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 TheoremOne, 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 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 TheoremOne, 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 a blog series about the fundamentals of distributed systems. This post is the first of that series.

Continue reading...
Are you okay with optional cookies?
By clicking "Accept", you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.