I noticed something odd–no current-limiting resistors for the LEDs?
Checking the source, I see the LEDs are lit in 5 microsecond pulses in about a 1/30 duty cycle at max brightness. On time could be longer if servicing a comm interrupt. Seems a little dangerous.
I’d feel a little better if the display logic was pushed to an interrupt; in my projects, I’ve used Timer0 for this purpose, with two ISRs: overflow cycles digits and turns the display on; compare-match A turns the display off again; OCRA controls the effective brightness. Seems you’d be less likely to accidentally leave an LED on too long this way and melt your display or MCU. It also, of course, frees up your main loop to do other things.

My first thought: an ATMega168 is serious overkill for this application. I made a camera control box (intervalometer) with an ATMega48 that drives a similar LED display. The display logic consumes something like 300 bytes of flash. The entire project consumes about 2500 bytes. 16KB for a display controller seems rather excessive.
My second thought: if that ATMega168 is programmable, I could have saved a fair bit of effort and made a more compact device too! Okay, this looks like a pretty neat device after all. Maybe if the xtal and a few other pins were brought out–and the LEDs were red–I’d build my next one on one of these instead.

SparkFun is an online retail store that sells the bits and pieces to
make your electronics projects possible. Whether it's a robot that can
cook your breakfast or a GPS cat tracking device, our products and
resources are designed to make the world of electronics more accessible.

In addition to products, SparkFun also offers
classes and online tutorials to help educate
individuals in the wonderful world of embedded electronics.