Articles on Development

Classroom
Andrew Hao

Andrew Hao

Comparing Dynamic Supervision Strategies in Elixir 1.5 and 1.6

Let’s say you’re managing complex process state in your Elixir application and you need a way to spin up and down new processes as your app runs. This requirement is known as dynamic supervision, the ability for a supervisor to add processes to its supervision tree at runtime. This post will explain how to implement

Lenny Turetsky

Lenny Turetsky

An AJAX Auto-Save Implementation

For a recent client engagement, we were tasked with implementing auto-save on a multi-field form: any time any of the field values changed, we’d save the form to the server. This is a common scenario where users are composing longer inputs, such as emails, word processing, and spreadsheets.

Andrew Hao

Andrew Hao

Functional Mocks with Mox in Elixir

  If you’re like me, you came over to Elixir from Ruby and quickly found that certain development assumptions so common to Ruby (and object-oriented programming) require some adjustment in this new functional language.

Erin Swenson-Healey

Erin Swenson-Healey

An Introduction to ADTs and Structural Pattern Matching in TypeScript

Preface To quote Rúnar Bjarnason: One of the great features of modern programming languages is structural pattern matching on algebraic data types. Once you’ve used this feature, you don’t ever want to program without it. You will find this in languages like Haskell and Scala. I couldn’t agree more myself. That said, I spend most

Will Ockelmann-Wagner

Will Ockelmann-Wagner

Easy pipeline debugging with curried console.log

These days I’ve been writing a lot more functional javascript, using tools like RxJS and Ramda. They allow for beautiful, declarative pipelines of functions, like:

Andrew Hao

Andrew Hao

Taking Elm for a Test Drive

Elm emerged on the scene in early 2012 as a strongly-typed, functional language that compiles down to Javascript. With its architecture and type system, it claims to provide bulletproof guardrails to help developers build systems that are highly reliable, with “no runtime exceptions in practice”. Elm prides itself on having a low barrier of entry

Anna Neyzberg

Anna Neyzberg

Pattern Matching in Elixir: Five Things to Remember

Elixir has been getting a lot of attention these days for being such a powerful language. It is highly-concurrent, fault-tolerant, and scalable. When beginning to learn Elixir, you quickly come upon the term Pattern Matching. What is Pattern Matching and more importantly what do you need to know?

Will Ockelmann-Wagner

Will Ockelmann-Wagner

Using Host Instead of “replace: true” in Angular 4

Let’s say that you’re working on an Angular 4 app that displays some images. You want to add a directive you can apply to any image tag to make it look fancy when you mouse over it. You also want a component that will take up 100% of its parent container’s width and display an

Anna Sherman

Anna Sherman

Always Squash and Rebase your Git Commits

Using git for version control allows for powerful collaboration in tech teams. Like any tool, if misused, it can also cause some serious headaches. After working with a wide variety of team sizes and dynamics, I’ve found that the squash and rebase workflow helps make the collaboration process more efficient and a hell of a lot

Will Ockelmann-Wagner

Will Ockelmann-Wagner

Copying and Pasting with tmux 2.4+

At Carbon Five it’s pretty common to do our editing in vim embedded in a tmux session. Tmux, if you haven’t used it, is a “terminal multiplexer” that lets you create multiple tabs and panes in a terminal, persist terminal sessions, and (with plugins) send commands from vim to another pane. It’s also great for

What can we help you with?

Tell us a bit about your project, or just shoot us an email.

Interested in a Career at Carbon Five? Check out our job openings.