Category

Engineering

Engineering has always been of enormous importance to Sixt, and we strive to excel in it every day. Articles in this category describe advanced engineering principles, fascinating research and learnings made at Sixt, and general best practices for software development. This includes the software development lifecycle, architecture, coding, and more.

32 posts

06

Jetpack Compose: A New Era of Android UI Design

Jetpack Compose is a modern Android UI toolkit introduced by Google to revolutionize the way developers design and build user interfaces for Android applications.

Engineering8 min

07

Mobile App Security Testing: Planning and Initiating Testing

In today's digital age, for various purposes like travel, banking, shopping, socializing, entertainment, learning and many more, we rely on mobile apps. However, with the increased dependency on mobile apps, there is an equally growing concern about the security of these applications. A single breach to the application can lead to compromise of user data, financial loss, and this can damage the brand's reputation. To mitigate these risks, it is essential to plan and execute thorough security testing for mobile applications. Based on my experience, outlined below are the best practices to be followed while planning and strategizing security testing of mobile applications.

Engineering6 min

10

Bug Bashing: A Fun and Effective Way to Improve Software Quality

What is Bug Bash?: A bug bash is a collaborative effort aimed at uncovering a large number of bugs within a short time interval. During a bug bash, various participants beyond testers, such as developers, product managers, engineering managers, designers, marketers, solution engineers, writers, customer support representatives, and even executives like the CTO and CEO, can also join in.

Engineering6 min

11

Key Metrics to Assess the Effectiveness of Automation Testing

Introduction: Automation testing plays a crucial role in ensuring the delivery of a high-quality product. While the significance of automation tests is widely acknowledged, it is important to determine how to quantify their impact, assess their value in terms of effort and resources, and measure the success of test automation. Outlined below are metrics that can be employed to evaluate the effect of automation on the overall application quality, along with some best practices to generate data for these metrics.

Engineering5 min

12

Implementing dynamic filtering on joined queries using JPA specification and criteria API

Introduction: In most web applications, we would have come across a requirement to filter, sort, and paginate the data by joining multiple tables. If you are using Spring JPA then there are multiple ways to retrieve and paginate the data on joined table. 1. Writing native queries. 2. Using JPQL query. 3. Using inbuilt repository methods. These options are good for the use case where we will have to construct the query based on a fixed set of conditions/where clauses. We can't add where clause at runtime using these options. Spring JPA also provides the capability to generate dynamic SQL queries with help of Criteria API and Specification. In this article, we will see how we can leverage JPA Criteria query support to build generic specifications which can retrieve rows from joins on multiple tables with sorting and pagination.

Engineering4 min

13

Performance testing with Gatling

This article describes how to write a performance test using Gatling which is an open source tool with support for http protocol making it suitable to test any http server.

Engineering4 min

14

Unraveling Patterns: Exploring the Fascinating World of Clustering Algorithms

Clustering is a popular technique in machine learning used for grouping data points based on their similarities. It is a type of unsupervised learning method where there is no predefined output variable or label. Instead, the algorithm attempts to discover patterns and structure within the data by grouping similar data points.

Engineering4 min

16

Efficient Data Management in React with React Query

React Query is a lightweight library for fetching, caching, and updating asynchronous data in React applications. It is designed to work with a variety of data sources, including REST APIs and GraphQL endpoints. It is used for managing, caching, and synchronizing asynchronous data in React applications. It makes it easy to work with asynchronous data and API requests in React.

Engineering5 min

17

What is Swagger, and how does it work?

In this article, we discuss the Swagger: why it’s needed (the benefits), what it is, and how it works.

Engineering6 min

18

Must Know Concepts of System Design

System design is the process of defining the architecture, interfaces, and data for a system that satisfies specific requirements

Engineering6 min

20

DnD with React DnD for better UX

Drag and Drop (DnD) is a user interface concept using which one can select an object/element in the viewport and can move it (ie drag) to a desired location on the view port (ie drop). Drag and Drop (DnD) makes it easy to copy, move, reorder and delete items with the help of mouse clicks. It is much more intuitive from the point of user experience than other user actions which may require clicking, typing etc. Often, the UI gets simpler and cleaner on account of using drag & drop. Some of the different use-cases include uploading files, rearranging data in a table/section like in a Trello board, matching values in one section to an other value in another section.

Engineering4 min

24

React 18 - useTransition vs useDeferredValue

New hooks introduced as part of React 18 which are based on the most important concept which is Concurrency. These hooks help in improving the user experience and performance.

Engineering6 min

25

Getting Started Hibernate Envers

A hibernate project that helps you audit persistent entities in an application

Engineering5 min

26

CSS Combinators — A type of complex CSS selectors

CSS combinator is a type of CSS selector, which combines two CSS selectors by including a relationship/combinator between them, to uniquely select element(s) in an HTML document.

Engineering3 min

32

Golang's Atomic

Golang is a highly concurrent language and the atomic package is one of its most valuable and unknown synchronization mechanisms.

Engineering6 min