Grant Ammons

How to efficiently manage your dotfiles

Dotfiles and dotfile management are a foundational keystone to an organized, repeatable workflow. They are a must if you’re a developer, and also become critically important to properly manage if you’re planning on running Linux as your primary desktop »

async/await: The asynchronous code de-tangler

In my previous post, we went through some examples of using promises to light up some balls. It was fun. And I showed how promises can really clean up asynchronous function calls. But… Did you know that there is an even easier way of writing asynchronous »

Short methods, full hearts, can't lose

If there’s one rule that really makes all the difference in terms of code readability, it’s keeping your method sizes small. Your present and future teammates will thank you for it. What do I mean by small? Well, according to Sandi Metz and Uncle »

The Case of the Missing React Framework

Learning React is easy, but learning how to properly architect an app using React is an exercise in frustration. React is just the view layer and Flux is a pattern for updating views. But there is a large gap - how to organize your data in a React app »

How to deliver high quality software

When it comes to software, the term “QA” itself is highly loaded. Because what is it, really? Is it just a thing at the end of the software delivery line, where quality gets lovingly sprayed on at the end, achieving a nice glossy sheen? Is it a separate »

Keep an Engineering Manifesto

At PipelineDeals we have an engineering manifesto. Our manifesto is the backbone of what we stand for as a team. They are high level, core underpinnings of our team’s culture. They read like team-level objectives, but they trancend any time-based measurement. They are here for the life of the company. »

Making 20% time work for your engineering team

At PipelineDeals, believe in 20% time. We call it Investment Time. Each Friday, engineers are free from the shackles of our backlog to work on creative projects. It feeds an enormous amount of creativity and happiness with our teams. Also, it helps other departments run better, and pushes our goals as a team forward. »

How dependency lines work in object-oriented design

When you look at an object dependency graph, it’s not 100% clear how to read it. When one object points to another, what does that mean exactly? An object is said to depend on another object in the following scenarios: When an object knows the name of another object When an object knows the name of a method of another object, and knows the arguments that method takes The first is quite easy to recognize and if you have that first dependency level, you implicitly have the second. If at all possible, you want to strive towards the second point. »

Resources to help guide architectural decisions in Rails apps

My previous post outlined a trivial example where I refactored some basic, boring business logic into a service object, or transaction script (depending on who you ask). It set off a lot of debate on Twitter and Hacker news about the topic. I was quite surprised. At the very least it means that many others have felt the pain of having rails dictate your applications core architecture. »

Where the logic hides in Rails apps

DHH recently authored a SVN blog post that advocated breaking up fat models into separate mixins that would live in a new directory in the rails structure, app/concerns. He made it clear that breaking up domain logic into concerns will make code easier »