expect()ing the Unexpected

Our tests were crashing. They ran fine individually, but when run as a group, certain tests sometimes failed with a spectacular memory access error.

After experimenting with skipping some of the tests, I was able to narrow it down to tests that ran immediately after some database calls. (This was a mobile project for iOS, and we were using Realm.)

Read more on expect()ing the Unexpected…

Setting Up a Raspberry Pi without a Monitor or Keyboard

There are a lot of how-to’s online describing ways to set up a Raspberry Pi without a monitor or keyboard, but none of them are simple or straightforward. This will be.

I’m going to walk through how to do this on a Mac, but something like this should also work on Windows using internet connection sharing and the Event Viewer. Read more on Setting Up a Raspberry Pi without a Monitor or Keyboard…

Measuring Work – Email Sent and Received

I’m often curious about where my time goes during the work day. When I’m not working on a project or doing some specific tasks, a lot of my time seems to be spent reading or responding to email. The most hectic days for me often seem to be early in the week—Mondays or Tuesdays. I decided to measure how much email that I send and receive each day of the week to see if it correlated to my perceived levels of busyness. I wasn’t really sure if there would be anything actionable from measuring work in this way, but figured it would be an interested thing to have perspective on. Read more on Measuring Work – Email Sent and Received…

8 Characteristics of a Software Developer at Atomic

For most of our history, Atomic has been hesitant to be too specific about the kind of developers we look to hire. Because our work and client base are diverse, we’ve stuck to words like “smart,” “generalist,” and “culture fit”—hoping to cast a wide net and bring in a lot of candidates.

We’re embarking on a big hiring push (well, big for us: 10-12 developers over the next 1.5 years), so I decided to shake things up a little. I’d also read that job descriptions with specific requirements and expectations tend to bring in a more diverse and qualified group of candidates. Read more on 8 Characteristics of a Software Developer at Atomic…

Focus-Handling Methods for Qt Quick StackViews

On my current project, we’re building the GUI in Qt 5. It’s (mostly) open-source, has some really intriguing platform support, and Qt Quick 2 has a fairly advanced model for both keyboard focus and transitioning focus between widgets just with the keyboard.

When I started work on a spike to prove out some ideas I had about using a Qt Quick StackView to structure the navigation of our app, I still managed to run into some problems with transitioning focus between widgets. Read on for my solution. Read more on Focus-Handling Methods for Qt Quick StackViews…

Fighting Project Decision Fatigue with Policy

When it comes to matters of policy, our goal at Atomic has always been to provide “just enough” to avoid unexpected conflicts or confusion. We rely strongly on personal responsibility, transparency, and our self-organizing nature to bring order and direction to our projects and internal company workings.

Atoms enjoy the freedom this brings—we share the burden of learning and making things work the way they should without being bound by miles of policy red tape. We have to live out our “Own It” value mantra.

However, there is a potential cost for this freedom: decision fatigue. Read more on Fighting Project Decision Fatigue with Policy…

Six Keys to a Successful Project Kickoff

A successful project kickoff is far more than the sum of its parts. There are so many ways a kickoff workshop can fail, regardless of the set of activities you put together. If a workshop doesn’t connect with a client or isn’t successful in stimulating trust in your ability to deliver, you’ve failed. If you strengthen the client relationship but fail to gather requirements or deliver value through the workshop process, you’ve failed.

Read more on Six Keys to a Successful Project Kickoff…

Speeding Up Your JavaScript Test Suite

Having fast tests is important. Slow running tests slow down development, especially if you’re practicing TDD. If tests are too slow to run, some developers may avoid running them altogether. Slow tests will also slow down CI builds, increasing the length of your feedback loop.

While it takes more development time, doing maintenance on your test suite to ensure it continues to run quickly is an important task that any significant project should prioritize. Read more on Speeding Up Your JavaScript Test Suite…

Spy on Your Garden with Garden KnowEms

After successfully automating the reporting and watering of my garden last summer via my GardenPi, I wanted to rev on the idea this summer. Since this is as much a learning project as it is an automation project, I decided to improve on both fronts. Introducing: Garden KnowEms™. Read more on Spy on Your Garden with Garden KnowEms…

loading…