Disciplined Engineering – Part 3: Refining Your Engineering Process

Disciplined Engineering – Part 3: Refining Your Engineering Process

This is part 3 of the Disciplined Engineering series.  It is for teams that have an established engineering process with confidence around the quality of their application. This article will help improve your engineering game by identifying the common patterns that will further improve your team’s focus on quality. If you don’t  have an established culture of engineering at your company, we recommend reading Part 1: Building an Engineering Process. If you would like to be more confident in your code,

Read More »
Disciplined Engineering – Part 2: Creating Code Confidence

Disciplined Engineering – Part 2: Creating Code Confidence

This is part 2 of the Disciplined Engineering series. It focuses on improving the confidence of the code produced by your team. If you haven’t already, we recommend reading Part 1: Building an Engineering Process as a prerequisite for these practices. You can also check out Part 3: Refining Your Engineering Process. Creating Code Confidence Ensuring the quality and sustainability of large applications can be challenging. One of the best ways to address this challenge is by adopting tools and practices that improve

Read More »
Disciplined Engineering – Part 1: Building an Engineering Process

Disciplined Engineering – Part 1: Building an Engineering Process

This is part 1 of the Disciplined Engineering series.  It is for teams that want to establish a culture of engineering excellence for their organization. For teams that already have an established process, we recommend reading Part 2: Creating Code Confidence. If you’re looking to further improve upon your process, please check out Part 3: Refining Your Engineering Process. Building an Engineering Process A well-defined process for taking a feature from inception to production is critical for any healthy engineering organization. Teams

Read More »
Snapshot Testing

Snapshot Testing: Benefits and Drawbacks

Snapshot testing has become very popular for front end-development over the last few years. The term has almost become synonymous with Jest and React, but it can be used to test more than just components. This article provides a brief overview of what snapshot testing is, what it isn’t, and how it might be helpful for your project. What is Snapshot Testing? Snapshot testing is a type of “output comparison” or “golden master” testing. These tests prevent regressions by comparing

Read More »
What's new in Typescript 3.9

Sensible Improvements in TypeScript 3.9

The recent TypeScript 3.9 release primarily focuses on performance and stability, but it does include some language updates that are worth a closer look. Expansion of uncalled function checks Continuing its quest to save you from yourself, TypeScript 3.9 expands on the uncalled function checks that were introduced in version 3.7. These checks report when a function is used within an if condition without being called, like: The latest version brings this functionality to ternary operators as well: This type

Read More »
Performance testing with k6

Performance Testing with k6

There’s an old adage in the software industry – premature optimization is the root of all evil. A corollary to this should be – no optimization is just as bad as premature optimization. It is often true that effort spent optimizing a system before features are properly implemented, correct and stable is effort wasted, but even a fully-implemented system can offer a terrible user experience if performance is never considered. Unfortunately when delivery timelines get squeezed, performance will more often

Read More »

Accessibility Inspectors: A Basic Guide

As accessibility-minded developers working on accessibility-minded teams, we strive to design and build inclusive applications that yield a pleasant experience for all users. However, despite our best efforts we may make mistakes and implement features in a sub-optimal way, or worse, discover that some users cannot use those features at all. Fortunately, in recent years browsers have introduced tools that help debug some of these issues. Here we will focus on the built-in accessibility inspectors that allow developers to navigate

Read More »

Virtual Reality in 2020

Virtual reality (VR) is one of the most interesting emerging technologies for the web in 2020. Recently at HalfStack Phoenix I shared insights on VR, WebVR, the web, and what makes VR a lasting technology that will change the way we interact with information over the coming decade. To better understand the adoption trajectory of virtual reality, consider a variation on Domestication Theory that describes three stages of progression for successful technologies: 1. elation – the promise of the technology

Read More »
Adopting TypeScript in an Application

Progressively Adopting TypeScript in an Application

SitePen is a huge advocate for TypeScript and the benefits of having well typed code. TypeScript is especially powerful when used by medium and large teams that want to find ways to increase their overall confidence in their code. One of the questions we get asked often is how can we migrate a codebase that is currently written in JavaScript to TypeScript. Many of our customers are happy to find out that type checking can be gradually added without a

Read More »
The Definitive TypeScript Guide

The Definitive TypeScript Guide

Originally published Oct 29, 2018. Updated April 10, 2020. This article describes the features and functionality of TypeScript 3.8.  One of the most interesting languages for large-scale application development is Microsoft’s TypeScript. TypeScript is unique in that it is a superset of JavaScript, but with optional types, interfaces, generics, and more. Unlike other compile-to-JavaScript languages, TypeScript does not try to change JavaScript into a new language. Instead, the TypeScript team is careful to align the language’s extra features as closely as

Read More »
React Native

Getting Started with React Native

What is React Native React Native is a JavaScript framework for writing hybrid native mobile applications for both iOS and Android platforms. React Native uses the same JSX and React development approach you would take for developing for the browser, but applications get built as native applications in Objective-C (for iOS) or Java (for Android) by the React Native tooling. The key difference between React Native and other JS mobile frameworks such as Ionic or Cordova is that the result

Read More »