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.
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.
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.
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.
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.
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.
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.
I’ve recently started working on a new project which uses Sequel, and it reminded me how much I love it. For those who don’t know, Sequel is a superb alternative to Active Record. I wrote a gentle introduction to Sequel a while back.