Reinforced Learning

Practical Recursion with React Components

When does recursion in a frontend framework make sense, can it be a practical solution to your problem, and how do we do it?

A Survival Guide for Your Team's Newest Developer

Joining a new team can be daunting. This article serves as a guiding light for developers joining new software teams or companies and is meant to improve your onboarding experience. It goes through an entire walkthrough of what to expect between different milestones at your new company, not to mention a comprehensive checklist of what you should be focusing on during your onboarding process. Have a look!

7 Great Ways to Save Time and Money Building a Mobile App

In this article, I discuss seven principles for minimizing the time and money spent building a mobile app. If you're looking to build an app, are pressed for time, and don't have an unlimited budget, keep reading!

Providing a Rewarding Software Internship

Providing an internship to junior developers comes with a wealth of challenges and rewards. I share tips on creating a well-rounded internship for juniors while reflecting on our most recent experience hosting interns at a software consultancy.

Development on Hard Mode: How to Deal With Crunch

What really makes crunch time different from what we deem normal and how did we successfully end up with a functional prototype that met all of our client’s requirements?

Implementing REST Hooks

Does your API need a REST from all that polling? You can improve real-time communication between web services using your REST API and the REST Hooks pattern.

Daily Stand-Up: Productivity Asset or Monstrous Waste of Time?

Dispelling complaints about daily stand-up and tips for making the most out of your scrum.

A Practical Guide to Hacking the Recharts Library

A tutorial on how to hack in a tooltip, a static Y-Axis, and truncated bars into a Recharts graph.

Going Remote: Entering New Territory as a Company and a Developer

Over the past year, Olio Apps has made a commitment to changing our company culture around working remotely. We’d seen other teams enjoy success by going fully or partially remote, but for us, working outside the office felt like an inconvenience. We wanted to change that, and we knew that we had the technology to make it a reality.

Prototyping vs. Production Development: How to Avoid Creating a Monster

In a typical software life cycle, most projects begin as a bouncing baby prototype and later develop into a strong, trusted production application. At these two distinct stages of software development, the priorities, pace, and coding practices can differ greatly. Understanding these nuances and properly planning your prototype to transition into a product can save you a lot of time and money. And by protecting your bottom line, it can increase your chances of project success.

Practicing Tech Design with React, Storybook, and Nivo

I spent the weekend making a technical design and implementing it to challenge myself and evaluate a few different unfamiliar libraries.

Developer Wellness

Wellness or well-being is the state of being comfortable, healthy, or happy. This state of well-being can exist in one's life as a whole, as well as in each arena of a person's life, eg. they have a state of well-being in their social life, their home life, their emotional life, and their work life as say, a software developer.

Legacies Never Die: How to Handle Legacy Code

A technical and philosophical approach.

Gracefully Handling Newness: Tips for Software Developers

As a software engineer, I find my self torn between two seemingly opposite goals: becoming a master of the skills that I already have and also constantly trying to learn new things. And I'm definitely not alone.

Quarterly Hackathon 2: Harder, Better, Faster, Stronger

Another quarter, another chance for the staff at Olio Apps to try their hand at hacking together a project over an 8 hour work day in a friendly competition. If you haven't seen our first attempt at a Hackathon, check out our previous blog post on it here. We enjoyed the experience so much, we decided to make it a quarterly tradition as a way to bond, break out of our normal developer mindset, and come up with new ideas or learn new tools.

Rapid Prototyping Native Mobile iOS and Android Apps in 5 minutes with React Native and Expo

When you have a new idea for an app, you want to get feedback from users as quickly as possible to see if the idea has legs, and start refining it. The best feedback comes once people try it.

Reduce Redux Boilerplate with Sitka

Sitka is a small but powerful framework for state management. It organizes your application into modules, each managing a logical area of state. It builds on top of Redux and Redux Saga, giving you all the benefits of those tools without the boilerplate.

The Olio Apps Inaugural Hackathon

Recently, Olio Apps took a little break from our regularly scheduled programming (😜) to do some hacking. We broke off into teams two, designed and built projects over the course of a pizza-fueled "work" day.

A-Frame TypeScript Toolkit: Creating WebVR with TypeScript

We love TypeScript. I’ll get into the reasons why later. And we love virtual reality. Being able to create WebVR experiences has been a focus at Olio Apps this year. This lead us to create a set of tools to help developers to make A-Frame experiences using TypeScript. A-Frame TypeScript Toolkit makes it easy to build standalone components and systems that can be used in other A-Frame projects.

Magic Leap — First Impressions

Here at Olio Apps, we have taken the next step into the world of augmented/mixed reality and added a Magic Leap to our catalog. This decision was driven by our interest in the mixed reality space and the possibilities of the domain.

A-Frame + Redux: Writing VR Experiences connected to Redux

At Olio Apps, we are eager to present our first tool for creating scalable WebVR applications. Our experience engineering web and native apps along with our motivation to develop in the virtual reality (VR) and mixed reality (MR) space has brought us to create aframe-typescript-redux. This tool combines the crowd-favorite WebVR framework, A-Frame, with the powerful state management tool known by many 2D developers, Redux.

The Olio Apps Internship Experience

When Cory and I decided the make the transition from our previous career fields to development, one of largest deciding factors in picking a code school was career services and job preparation. We both chose Epicodus because it offered an internship as part of the schooling process, which is how we were both placed at Olio Apps.

Automatic Code Formatting for Partially-Staged Files

I wrote git-format-staged to apply an automatic code formatter or linter to staged files. It ignores unstaged changes, and leaves those changes unstaged. When run in a Git pre-commit hook git-format-staged guarantees that committed files are formatted properly, and does not clobber unstaged changes if formatting cannot be applied to working tree files cleanly.

Pyramid of Doom - or - My Problem Solving Algorithm

We recently had a new intern at Olio Apps and during the first couple days they were given a mini coding exercise to work through. By way of Friday afternoon banter, this was extended as a challenge to the rest of us devs to come up with our own solution. I wanted to write down my approach to solving this problem because it may be useful for some student, intern or Jr. dev preparing for an interview.

Keep Calm And Carry On Coding: What to Do When Requirements Change

Envision the following scenario: you are working away at the final 5% of a project, glad to be near the end, when you catch the first hints of unexpected changes coming in the near future.

Love Thy Selenium Tests: Functional Tests that Fail Only When They're Supposed To

Automated browser testing with Selenium can be a developer's best friend, and at the same time, their worst enemy. Tests that once seemed to work well can mysteriously start to break, fail only sometimes, or slow to a crawl. But, your relationship with Selenium doesn't have to be so complicated.

Checking Types Against the Real World in TypeScript

The shape of data defines a program. There are important benefits to writing out types for your data. Let's consider a Hacker News client...

Why we're excited about Immersive Reality

...I pinched my fingers together and placed a ballerina on the desk in front of me. With a swipe of my hand, the little ballerina disappeared and the office transformed into Rome.

The Lost Art of the Makefile

I work on a lot of Javascript projects. The fashion in Javascript is to use build tools like Gulp or Webpack that are written and configured in Javascript. I want to talk about the merits of Make.

Type-Driven Development with TypeScript

I am always interested in making my coding process faster and more robust. I want to be confident that my code will work as expected. And I want to spend as little time as possible debugging, testing, and hunting down pieces of code that I forgot to update when I make changes to a project.

The Value of Code Documentation

Code documentation is the collection of easy to understand images and written descriptions that explain what a codebase does and how it can be used.

Pull Request Checklist

Pull requests are an essential collaborative tool for modern software development. I wanted to capture the kinds of questions a developer should ask themselves before asking another developer for a peer review.

Benchmarking and Optimizing Slow JavaScript

While writing about optimizing data for performance, I rewrote my transformation function a few different ways and benchmarked the performance of each. Wow! The results were surprising.

Optimizing API Data for Faster Frontend Performance

Sometimes APIs return data in a form that's not ideal for the client. We can deal with this by applying data transformation functions to the incoming data, to reshape it into exactly what we need.

Faster Iteration with Mock APIs

We frequently work on front-ends along side other teams building APIs. Sometimes those APIs are not yet available. But deadlines and sprint demos are approaching. Are we to sit around twiddling our thumbs? Nope!

2017 Year in Review

2017 was a big year of growth and change for Olio Apps!

JavaScript ES6 Map and Reduce Patterns

Over the past couple of months I've started to become a little bit more serious in applying functional programming techniques to my favorite client side language, JavaScript. In particular I've discovered the joy of using Map and Reduce.

Technical Design

At Olio Apps, we use the technical design process to understand a problem, and to formally articulate a solution that is possible to validate with oneself and with one's collaborators.

FormData Fetch Gotchas

A few gotchas with the interaction between the FormData and fetch APIs, for those used to $.ajax and xhr.