Notes from Jeremy Morony

Establishing Culture? Get Outta Town!

By on in Culture, Everything Else

As Carbon Five grows, we experiment with different ways to define, elaborate, and communicate our company culture. One thing we do is organize semi-annual retreats, we call them summits, that rotate between our two main offices in San Francisco and Santa Monica.

These events are, first and foremost, about people. They are a way for our employees to establish a more personal connection with each other even though our offices are geographically separated.

The summits aim to be fun, light hearted, and not take themselves too seriously. We aren’t looking to hand down a set of values, guidelines, and rules that Carbon Five employees must follow. Instead we encourage people to discover and define our shared values by talking with each other: What is going on in the different offices? What is emerging across our design, development, and product management practices? What are the things that make coming into work every day enjoyable and inspiring?

We’ve been organizing company retreats for three years now. We thought it was time to share what what’s worked and what we’ve learned.

Continue reading …


There will be SQL

By on in Database, golang

I recently worked on my first Go project. As a web developer, the applications I work with are often database driven. If you are like me, you might be curious about what working with a database is like in Go. And if you're used to working with a web framework like Rails, you might be wondering about an ORM. As the title of this article implies, there aren't a lot of options. In this article we'll learn to relax and go back to working without an ORM.

Continue reading …


Open Source Ruby & JavaScript Pairing 7/14/2015

By on in Everything Else

img_1013 copy

Come for an evening of open source Ruby & JavaScript pairing at Carbon Five on July 14, 2015!

This workshop is an opportunity to improve your coding skills by pair programming on an open source project. Every student will be paired with a volunteer who has prior experience with the language and contributing to an open source project.

We’ll be working on a federal government open source project, the Open Data Maker from 18F — the perfect opportunity to become a better programmer and code for your country!


Sign up

Event Details

@Carbon Five SF
585 Howard Street, Floor 2
San Francisco, CA 94107
Tue 7/14/2015 6PM – 10PM


Communication between collaborating directives in Angular

By on in Development

Directives man! While the they’re literally the entry point into Angular development (every application contains a call to ng-app), many people starting out with Angular are hesitant to write their own because of the complexity associated with them. And directives are complex. Even a simple directive requires understanding complicated concepts like restrict, scope and link. But when you figure it out, the value of a directive as a reusable component becomes indispensable.

But what about when a directive isn’t self contained? What if a complicated component comes along that is naturally modeled by multiple directives? This group of directives, as a whole, form a single self contained component. None of directives in the group can stand alone because they only make sense when used together; they collaborate; they are aware of each other and need to communicate with each other.

This post will discuss best practices for managing communication among collaborating directives and illustrate these practices with an example.

Continue reading …


Product Management For Agile Teams: Why Oh Why

By on in Process, Product Management

At Carbon Five, we build software. We build it using Agile methods. This has worked out well for us and our clients for a long time. We recently added product management as a discipline to our team. There are some common challenges we see at C5 and we’ve been deliberately experimenting with different activities and practices around product development, some of which we will be sharing in this series of blog posts.

Picture this:

Our team is working in a startup environment. Our product owner–let’s call him Alex–while business savvy, has no product management experience. He has a very clear and detailed vision of the product in its finished state. Complete with comps. Those designs, while beautiful, were not created in response to specific user problems; they’re a product of Alex’s brain alone. When our team begins work, questions arise. User stories are written against the comps, instead of against problem statements generated by research with real users. The comps are referenced, but a picture doesn’t necessarily speak the same 1000 words to everybody.

Continue reading …


A Strategy for Loading Page Specific JavaScript

By on in Development

Since the introduction of the asset pipeline, managing javascript assets in a typical rails application is pretty straight forward. You figure out some structure for organizing the files under app/assets/javascripts/, concatenate them together with some directives in application.js, and that file is most likely included in a layout and you’re on your way. But what about those pesky page specific initializer scripts?

A popular approach is to use a strategy like this. The gist of this approach is to organize your page initializers in an object literal by controller name and action, something like

initializers:
  foos:
    index: ->
    show: ->

Continue reading …