At Loadsmart, many of our services are organized within an event-driven architecture and face some usual challenges that come with such an architecture. One of them is dual writes, which happens when an application has to write data in two different places. A common example of dual writes is an application that needs to store data on a database and notify that change by emitting an event that may be consumed by different services. The inherent issue with this scenario is that if one of these…
read moreHave you ever noticed some Django admin page taking a long time to load? Maybe even ending in a timeout (http 504)? This kind of issue should be uncommon in small, earlier projects. However, if it starts to happen and gets worse over time, one possible cause is that some of that entity’s relationships are editable on the page, which causes Django to fetch all instances in the database to populate the dropdown list. Use In this situation, the easiest solution would be to just set those fields…
read moreAt Loadsmart, the hiring process consists of four steps: A screening interview, with one of our recruiters, a coding exercise, done through HackerRank, a system’s design interview, and, finally, a soft-skills interview. But what to expect from a system’s design interview, and how to succeed at it? First of all, the system’s design, also known as the “architectural” interview has slightly different formats depending on the position you are applying for. It will, however, always require you as a…
read moreAt Loadsmart, we use CircleCI as a pipeline tool to assert the new code’s correctness and ensure high-quality code before integration. Some time ago, we realized that the pipeline for one of our largest codebases was taking 45min on average to be finished. Of those, 22min running the backend tests only. It means that, for each PR, developers would wait around 45min to get feedback on their changes, delaying the time to deliver code to production. We have decided to create a Working Group to…
read moreWe are happy to announce that today we are making our engineering culture public. There you’ll find several articles describing how we operate as an Engineering organization. Content varies from hiring and onboarding to architecture guidelines and tech stack. This is information that we are already sharing with new members through onboarding sessions and with candidates we reach out to, but it is generally scattered. When we decided to make this move, there were mainly two goals in mind: Create…
read moreHiring is something taken very seriously at Loadsmart. One of our principles states that Our biggest asset is our People, we invest a lot of time in our hiring process. Our process for engineering includes what we call a Take-Home Exercise, and today I would like to give some tips for doing well on these. Our exercises are tailored for different positions, so we have different exercises for Backends, Frontends, SREs, and Data Scientists. Most of the tips can be applied to all of them. Before…
read moreIf you’ve ever had to read or write emails using the Official Gmail Python SDK, then you know it is a pain for multiple reasons: It is verbose, using dozens of chained objects like It is not intuitive (How do I authenticate? How do I read my messages? How do I send a message? I don’t know...) It uses plain dictionaries as the default response, regardless of the number of classes used (What are the fields? I’ll have to look the docs again) We use Gmail for several automated tasks at Loadsmart…
read moreTogether with launching our blog, we have recently created (or better: reactivated) our Engineering team’s Twitter account. We are planning to use it as the default broadcaster for the work we do at Loadsmart. And although we may have different channels (as this blog itself is one of them) and possibly different forms of content, Twitter is great at notifying what’s new, regardless of form or platform. One of the biggest concerns I had when we settled on the idea of sharing our work was to not…
read moreIn 2014, Loadsmart was born. At that time, we had a lot of ideas around what we wanted to achieve and the products we could build to solve the many challenges facing logistics companies. We knew our impact could disrupt the industry. To this day, many logistics processes are still completed by repetitive tasks, phone calls, and an extensive list of fragmented touch points, but, thanks to the decisions we made in 2014, we are helping the industry embrace technology and understand that it is the…
read more