• Implementing Gherkin, Cucumber and Protractor: A beginner's guide

    This is a follow up to my previous post Automated Testing and ATDD with Gherkin, Cucumber and Protractor: Getting Started where I discussed the path taken on my first project using BDD and how manual testing time and the # of bugs generated were both significantly reduced. With this post... more

  • How to Host a CodeFest/Hackathon, Part 2: Convincing Everybody Involved

    Previous Posts in this Series How to Host a CodeFest/Hackathon, Part 1: Why Have a Hackathon? Answering Questions in Advance So last time I hopefully convinced you that you should at least consider having an internal company hackathon, or as we call it here at Aviture, a Codefest. But before... more

  • Invariant Driven Development (IDD)

    What’s true of every bug found in the field? … It passed the type checker [and it] passed all of the tests. - Rich Hickey All bugs pass the type checker and all of the tests. More importantly all bugs represent a guarantee that was intended to be present, but for some... more

  • Software 101: The Girls Inc. Experience

    From left: Kathy Andersen, Taylor Byrd, Asia Tyler, Jeremy Glasser Empower. Engage. Grow. Three things we aspire to do every day at Aviture. So, when I was introduced to Girls Inc. and their mission to inspire and engage young women to create a vision for a bright, healthy future, I... more

  • KCDC 2017

    How do already great developers become even better developers? They spend time learning with other talented developers, of course! And there’s no better place to soak up the latest industry tools, trends, and techniques than at the Kansas City Developer Conference (KCDC). The 9th annual KCDC conference, held August 2-4,... more

  • Dynamically Loaded Angular 1.x Modules

    Introduction Angular 2 was developed with more awareness of the changing world of web development. It was developed to allow for easy integration of modules that can be loaded on demand with the idea of bundle splitting in mind. But what about those of us stuck in Angular 1.x land?... more

  • ASPIRE: Learn from the best, inspire the rest

    What was your favorite subject in school? If you answered “recess,” we’re right there with you. It’s true that playing games with friends is the highlight of most kids’ days, but the fun doesn’t have to be contained to recess. There’s a lot to learn as technology continues to change... more

  • Exporting a reveal.js Presentation to PDF

    Introduction reveal.js is a handy JavaScript framework used to create PowerPoint-like presentations in HTML. Many users use it to build their presentations and share/present them all via the web. For a project I am working on, the customer wanted users to have the ability to create, store, edit, and show... more

  • How to Host a CodeFest/Hackathon, Part 1: Why Have a Hackathon?

    Agitating for Innovation A little over a year ago, I sat down with Mark Griffis and Jerry Koske (Aviture’s President and CTO, respectively) to make my case that Aviture should have an internal hackathon. I had a Powerpoint presentation all ready to go, a head full of ideas about how... more

  • Performance Improvements and Fixing Memory Leaks within an AngularJS Application

    Introduction It can be easy to fall into bad practices, introduce memory leaks, and create unresponsive web applications for individuals that are new or inexperienced with using AngularJS. The purpose of this post is to help others decrease and be aware of common issues while utilizing AngularJS. This post has... more

  • Style Guide Driven Development: Lessons learned

    From the trenches, Our experiences with Style Guide Driven Development Style Guide Driven Development (SGDD) is a technique of developing your UI components in a living “Style Guide.” There is no one set definition but the basic idea is that you develop a separate page or pages outside your application... more

  • Top 10 Reasons to Work at Aviture

    40 hours. 2,400 minutes. 144,000 seconds. That’s a lot of time to spend every week working somewhere you aren’t truly happy. That’s why, at Aviture, we make work a great place to be! The Aviture culture is encouraging, engaging, and inspiring. We have fun and work hard to develop innovative... more

  • Seamless-Immutable: An Alternative to ImmutableJS

    We’re using Redux on a project at work and a couple of months ago we decided it was time to ditch Object.assign and the spread operator in favor of an actual immutability solution for Redux. We used the following criteria to inform our decision: The library should leave a small... more

  • Leveraging Lodash to Lock in Lucid Language

    Introduction Around the beginning of (programming) time, the for loop was created. It was a really good invention. It provided a way to iterate over a range of elements in an array and perform an action on those elements. For example, a rudimentary approach to finding the max value in... more

  • Angular UI Routing and Components

    Angular UI Router has slowly been integrating support for routing to Angular components. This post will discuss why that’s useful, and how to do it using both Angular UI Router 0.x.x and 1.0.0-beta.x versions. Background With the introduction of Angular components in version 1.5, the concept of a stand-alone, reusable... more

  • HTML Point Labels in Cesium

    A primer on foregoing Cesium’s native labels in favor of using custom HTML labels to enhance user experience, and our developer experience getting to the current implementation. Background As the amount of user-defined data grew in our application, the ability to discern contextual relevance became increasingly important. In a map-centric... more

  • Automated Testing and ATDD with Gherkin, Cucumber and Protractor: Getting Started

    Introduction This post is about my project’s experience implementing Acceptance Test Driven Development of our web applications, the process around automating our Given, When, Then (GWT) specifications, the path we took, problems that surfaced, and how we dealt with those problems. The motivation for automated testing was a corporate mandate.... more

  • A New Approach to Designer-Developer Collaboration

    Static Images I’ve been on the prowl for several years now for the perfect solution to bridge that communication gap between designers and developers. I’m a “graphic” (read: print) designer turned web designer turned UX designer. Like many print-turned-web designers, I started with Photoshop as my primary communication tool. My... more

  • Using Webpack to Hot-Reload Your Backbone-Marionette-Ampersand Project

    Introduction First off, why an article on Backbone / Marionette / Ampersand? These libraries no longer capture the imagination of developers nowadays. However, a significant number of applications were developed with these libraries and many are still around! Our company has at least three projects still using this stack. During... more