A Two-Step Approach to Managing Email

One of the challenges of being a good consultant is providing thoughtful and well-constructed responses to email. In an ideal world, we could read and formulate answers for every email we receive while staying productive and happy at the other parts of our jobs. Obviously, the “ideal world” isn’t a reality, so we have to balance a finite amount of time and mental power while handling email correspondence intelligently.

Read more on A Two-Step Approach to Managing Email…

How Atomic Evaluates New Project Opportunities

At Atomic Object, we are in the fortunate position of having many individuals and companies reach out to us for our software development and design services. However, this high demand sometimes puts our company in a position of choosing which projects to take on out of a field of many great opportunities. Read more on How Atomic Evaluates New Project Opportunities…

Objection Turns 4, Gets 1,000th Follower

Objection is a dependency injection framework for Objective-C that I wrote in one day 2011 while working on an iOS project. It’s funny how a combination of frustration with existing tools and inspiration can create something of value for your company and the wider development community.

Objection turned 4 years old this year and has just recently exceed 1,000 watchers on GitHub. I never thought that Objection would to continue to grow in popularity and be updated regularly through its 4 year tenure, but I am glad it did. Read more on Objection Turns 4, Gets 1,000th Follower…

Learn the Stages of Sales & Become a Better Sales Person

When done right, sales is about creating relationships and trust with people (complex and nuanced by default) with the goal of delivering business value to your customer and establishing a long-term and mutually beneficial partnership.

Over the last year or so, I’ve been involved in (and led) a number of sales opportunities at Atomic Object. It became painfully obvious early on that many different things happen during a sales relationship, and that I didn’t really have the vocabulary to understand them, much less get better. Read more on Learn the Stages of Sales & Become a Better Sales Person…

Google Sheets’ Query Language

Many of us at Atomic Object leverage spreadsheets for various purposes (estimates, hours tracking, finances, etc.), and since we have strong technical backgrounds, we tend to leverage a lot the functions that spreadsheets provide (avg, max, min, ceiling, sum, etc.). We also tend to push the boundaries of spreadsheets by leveraging multiple functions in one cell and doing some complex filtering. Read more on Google Sheets’ Query Language…

Know Thyself: Identify & Understand your Personality Quirks

In the almost 10 years that I have been at Atomic Object, I’ve had the opportunity to work on a number of different projects with a number of different people. During that time, I’ve been relatively successful at interacting with people, gaining their trust and establishing relationships that have enabled me to work through tough situations on projects.

However, despite my relative success of connecting with people, I have also encountered situations wherein a combination of stress and my own personality quirks have resulted in good work being negated because I didn’t recognize those quirks bubbling to the surface in a high-stakes situation.

Read more on Know Thyself: Identify & Understand your Personality Quirks…

Debugging Memory-Related Errors on a Jetty Web Server

There may be instances where the Jetty web server and the applications it hosts run out of memory, but the underlying cause of the failure is not immediately obvious. In such instances there are tools available and services on Jetty that enable more in-depth and detail analysis. Read more on Debugging Memory-Related Errors on a Jetty Web Server…

Read more on Debugging Memory-Related Errors on a Jetty Web Server…

Simple Flow Control Made Easy

We are currently working on a product that utilizes a long-range and low-bandwidth network. Moreover, the devices that are being communicated with are severely limited with regard to memory availability and CPU cycles. Given these constraints, it’s important that the network and devices are not overwhelmed with traffic.

Recently, we encountered an acute problem where the network and devices could easily be overwhelmed if they are powered on and join the network at approximately the same time.

Problem

When the devices join they communicate with a server, informing it that it has just joined and that it needs to be configured (name, time, etc.). It will continue to send these configuration requests at a steady rate until it receives all of the necessary configuration information. The problem is that the server would gladly respond to every request, even if the information it is sending is duplicated.

We had to make sure that duplicate messages were dropped within a certain time period. Read more on Simple Flow Control Made Easy…