Concurrency on Android with Kotlin Coroutines

by

Concurrency is not something that most people think about on a daily basis; however, it benefits most of us throughout our day. Whenever we ask our technological devices to perform multiple tasks, either within one application or across multiple applications, our device is using concurrency to make it happen. Thanks to concurrent programming, our devices are able to multitask at the same rate that we do.  

The History of Modern Text Editors

by

Text editors are computer applications that edit plain text. Text editors are fundamental to our work and developers tend to have very strong opinions about which one is the best.  In this blog post I’ll discuss some of the history of computing with respect to text editors, and the pros and cons of two of the text editors that developers have a love/hate relationship with – eMacs and Vim. 

The Convergence Continues: 2020 Android and iOS Updates

by

It is officially mobile OS season – Android and iOS have both recently announced the new mobile updates that will be available between now and September 2020. In this post, I’d like to talk about the operating system changes that I believe are the most important, the general themes of the announced updates, and how the two operating systems are slowly converging with each new release. 

Redesigning Grio’s Resource Allocation System

by

As a company that provides an array of different services for clients, one of the things that we’ve always had to do is manage which employees are assigned to which projects.  This includes making sure that their skill sets line up with the project requirements, knowing when team members will be available to move to a new project, and making sure that no one is either over or under utilized.  This process is called “resource allocation.” 

Using Amazon Kinesis Data Streams for Real-Time Data Management

by

One of the major points that companies must consider these days is how to store, sort, and manage the user data they receive. Especially since the implementation of online information regulatory policies such as the General Data Protection Regulation (GDPR) and the California Consumer Protection Act (CCPA), companies must take care to ensure they are managing, storing, and deleting user data in accordance with the applicable regulatory standards. 

UX/UI Design Across Cultures- USA & Japan

by

As I discussed in my post Designing Cross-Cultural User Experiences, designers must consider a myriad of points when creating a product that is both accessible and enjoyable for people of multiple countries and cultures around the world. Because different people experience the world through different cultural lenses, it is important to consider how the design of an application is interpreted in different places.

Migrating from AngularJS to React- Part II

by

angular-react

Recently, I have been working on a migration project for a client that has presented a number of interesting challenges. In this blog post, I will identify some of the challenges we have faced on this project and discuss the solutions we developed to combat them. 

Conversion Optimization with A/B Testing

by

At Grio, we offer  a wide range of services focused on helping our clients optimize their web presence. One such service is A/B testing. A/B testing, also known as split testing, is a marketing experiment that compares two versions of your content by “splitting” your audience and analyzing which variation performs best. In other words, you create a variant of your content, then show version A to one half of your audience and version B to the other half and analyze the results. 

An Introduction to Elixir

by

Elixir is a dynamic, functional language designed for building scalable and maintainable applications. It leverages the Erlang Virtual Machine, which is known for running low-latency, distributed, and fault-tolerant systems. In this post, I’ll talk a bit about Elixir’s history and current uses, and demonstrate some of its basic types and functions.