This is the story of the culture, methods and tools, allowing the development of features in high-traffic super-sensitive components in a SaaS e-commerce product.
As a very popular website, stackoverflow.com gets a lot of attention. Some of it is good, like the time we were nominated for a Webby Award. Other times, that attention is distinctly less good, as when we get targeted for distributed denial of service (DDoS) attacks.
Acing a CI/CD interview is all about preparation. Preparation starts with collecting as much information as you can about the prospective company, and their history, product, and interviewing process.
The React state management library is a constant topic in React community, but seems we are pretty settled recently with some obvious winners. This blog will focus all the popular choices and compare them so one can have a quick understanding of the libraries, and when to use them.
Great question. How you ship your code to production in a way that is fast and reliable, is a question more engineers and engineering leaders should educate themselves on.
It is no secret that containers make up a growing proportion of production workloads. The ability to package up applications into discrete components is certainly nothing new. Package management tools like RPM have been doing this for a while.
Software Development Is Misunderstood by non technical people, Quality is fastest way to get code into production. The common approach on software projects is fast, low-quality development, creating complex code, problems and stressful failing project. People question the cost of good developers.
In the last article, I had described Oneshop architecture and its components. In this article, I will walk you through the sales inventory solution of OneShop (our e-commerce product). Sales inventory solution is also a multitenant solution unified for all channels (OneShop, OneApp, etc) and natcos.
Jenkins Pipeline is an automation solution that lets you create simple or complex (template) pipelines via the DSL used in each pipeline. Jenkins provides two ways of developing a pipeline- Scripted and Declarative. Traditionally, Jenkins jobs were created using Jenkins UI called FreeStyle jobs.
In computer programming, there are two main types of programming: declarative and imperative. Today we will take a closer look at them. After reading this article you will know the difference between them and familiarize yourself with some declarative and imperative code examples.
Have you ever felt the need to load a JavaScript module dynamically? Maybe you’re trying to load something from a folder but you don’t know the name of the folder, you generate it dynamically.
The supply chain in the food and retail industry is complex, error-prone, and slow. This blog post explores real-world deployments across the end-to-end supply chain powered by data streaming with Apache Kafka to improve business processes with real-time services.
Recently, I needed to create a web app for a company outside of the technology field. The company had never built custom software before. As always, it was important for me to make a wise technology decision. That allows me to empower my team and client to have an efficient and productive project.
We dedicated this week to React 18, but over time we have had many great articles related to React, which you may have missed, so let’s have a recap here! OpenReplay is an open-source alternative to FullStory and LogRocket.
Eloquent performance is typically the main reason for slow Laravel projects. A big part of that is a so-called "N+1 Query Problem". In this article, I will show a few different examples of what to watch out for, including the cases when the problem is "hidden" in unexpected places in the code.
In the world of HTTP Headers, there is one header that I believe deserves more air-time and that is the Server-Timing header. To me, it’s a must-use in any project where real user monitoring (RUM) is being instrumented. To my surprise, web performance monitoring conversations rarely surface Server-Timing or cover a very shallow understanding of its application — despite it being out for many years.
In today’s entry in my series on Agile Practices for Normal Life, we’re going to take a deeper dive into our backlog. We’ll define our stories and estimate the effort to complete them. At this point, I’ve already dumped a chunk of “stories,” or to-dos, into my Pivotal Tracker backlog.
Achieving balance is an endless beginning. An equilibrium even harder to maintain when the business depends on software quality and speed to survive. Companies have the challenge of continuously delivering Quality at Speed software , constraining the software lifecycle with Quality Engineering.
For the first time since the start of the pandemic, Google’s annual I/O developer conference returned to the historic Shoreline Amphitheatre. In an in-person event that saw the company share details on its latest breakthroughs in AI, machine translation and more, Google also found time to outline some of the hardware it plans to release later this year.
Software Testing is the critical phase of the SDLC process where early testing saves a lot of cost and effort. A low-quality software can lower customer retention by impacting user engagement negatively.
We frequently see “documentation” as a top problem customers want to improve. It’s a familiar problem for many teams: documentation can easily become outdated or disorganized.
Documenting an API is an important step, especially if it will be used by people outside your team. But static documentation tends to fall out of date as other work takes priority during development and release cycles.
If you are a JavaScript developer, there’s a good chance you’ve come across concepts like “functional programming”, “functors”, “closures”, or “immutability”. You might be wondering what the heck all these things mean. Maybe you’ve already done some more reading.
“First, let’s fire all the managers” said Gary Hamel almost seven years ago in Harvard Business Review. “Think of the countless hours that team leaders, department heads, and vice presidents devote to supervising the work of others.
We need more good feedback in our world, and I don’t just mean the type of feedback that celebrates your good work. I’m talking about feedback that is actionable, specific, and kind; feedback that does not set us on edge or make us fall into an anxious spiral; feedback that helps us collaborate more effectively. The kind of feedback that is actually really hard to do when working remotely.
Over the course of a few weeks, we gradually migrated 125k users with social auth and email+password logins from Auth0 to Supabase, including a webapp, native iOS app and a single-sign-on service. Let me give you a little backstory first for you to understand why and how we even came to this point.
According to one of the 7 testing principles of the ISTQB Syllabus, “Exhaustive testing is impossible”, so it is not possible to test everything inside an application. Testing can be difficult in some situations and testers are always trying to identify what to test, and which technique to use.
At Atomic, when we transitioned to remote work, we came up with a themed standup for every day of the week. Once a week, it’d be Segue Wednesday. There are always lots of questions to ask, but picking the right one for the week is the hard part.
Cypress is the fastest, most reliable, and easiest-to-use automation tool for QA Testing. Cypress is a Node.js-based tool that can be integrated with any CI/CD pipeline. Cypress - The Test Automation Tool Cypress is the fastest, most reliable, and easiest-to-use automation tool for QA Testing.
In my career as a developer advocate, conference organizer, and technical writer, I’ve spent a lot of time helping developers communicate. I’ve seen what works and what doesn’t.
If, like me, you’re from the Marty Cagan school of product development, you’re familiar with the construct of the triad as the core team responsible for defining and delivering products. Triad is shorthand for three roles, which balance out each other and are each responsible for a different kind of advocacy.
I recently created a tiny proxy server to edit responses of a public API on the fly, and I was impressed by how easy it is to build and deploy such things on Vercel.
Jest’s packages make up an entire ecosystem of packages useful for building any kind of JavaScript tooling. “The whole is greater than the sum of its parts” doesn’t apply to Jest! In this article we are going to leverage some of Jest’s packages to learn how a JavaScript bundler works.
The most common path to engineering management is through a technical leadership position with people responsibilities, also referred to as tech lead manager (TLM). In such roles, besides holding people responsibilities, the engineering manager also is a technical expert within the team.
Today is my birthday. I turn 70. I’ve learned a few things so far that might be helpful to others. For the past few years, I’ve jotted down bits of unsolicited advice each year and much to my surprise I have more to add this year.
While there were many skeptics of remote workspaces a few years back, most of the companies in the last year had to try out remote work in one way or the other. To their surprise, the effectiveness of the people did not drop when they worked from home.
Our job as developers often involves releasing new features regularly. However, how can we ensure that these features work properly in production before safely releasing them to all users? It's easy, by feature flagging!
If you're starting a new TypeScript (or JavaScript) project, you might be using a newer version of Yarn to manage your dependencies. If so, you'll probably run into a new feature known as Yarn PNP(Plug'n'Play). This is particularly true because it's enabled by default.
Engineers are natural readers. They take enormous pleasure in learning about new things, and books are the perfect medium to cover complex ideas in depth. At Semaphore, we’ve picked our favorite books — books that have profoundly influenced our company’s engineering culture.
A fair comparison over three top-rated Forms Library for React: Formik, React-Hook-Form, and React-Final-Form - With code samples and validation. Hello! Forms are a crucial part of every application, from signing up, logging in, or collecting a survey from our users.
REST (Representational State Transfer) is an architecture that consumes HTTP calls for inter-system communication where a client can access the server resource with a unique URI and a response of the resource is returned.
You may already be familiar with the remote procedure call framework gRPC. Given the similarity in naming, you might be inclined to believe that tRPC is somehow related to it, or does the same or a similar thing. However, this is not the case.
In 2014 the DevOps Research and Assessment (DORA) team published their first State of DevOps report, identifying four metrics that can be used to measure engineering team performance. Six months ago the Data Science Team at LinearB decided to continue where DORA left off, digging deeper into the data than ever before.
Batching in React describes the internal implementation detail of React which treats multiple state updates as one state update. The benefit: multiple state updates are batched as one state update and therefore trigger only one re-rendering of the component which improves the rendering performance especially for larger React applications.