Thursday, December 4, 2014

The Case for AeroPress

AeroPress makes AeroPress coffee. Not French Press (although most similar), and certainly not Espresso. The AeroPress just can't give you the minimum 9 bars of pressure to be labeled espresso by definition (9 bars being about 130 psi and consider that many consumer espresso machines are rated at 15 bars or ~217 psi).

With an AeroPress you can make French Press-like coffee, very strong coffee, weak coffee, and everything in between.

You get tons of variable control of the brew process and that's where AeroPress shines. The case for an AeroPress is two fold. Convenience and Control

Convenience - very portable and durable, easy to clean. What's not to like there?
Control - Temperature/Grind/Steep time/Bloom/Filter/Pressure/Press time/etc - Veritably Control Freak Friendly!

Typical cup of coffee:
AeroPress recommends 175F for dark roasts, and 185F for lighter roasts and a 10s stir followed by a 20s press. From experimentation, I have a varied approach I detail below.

Cold brew coffee:
That's right! You can easily make a concentrated brew of cold brewed coffee in your AeroPress. Although I wouldn't recommend it, because it requires you to keep your plunger inside the AeroPress chamber. I've found that storing it that way for long periods of time will actually permanently compress the rubber and you will lose that tight seal. But if you don't care, or have an extra plunger rubber just for cold brewing (which I do) here's how:

Put 4 scoops of fine grind coffee into your inverted AeroPress, pour fresh cold filtered water until full, stir slowly and carefully as it will be very full. Once all the ground are wet, seal some aluminum foil over the top and carefully store the AeroPress out of sunlight in a cool, dry place for 8 hours or more. The fine grind allows a quicker cold brew time than the Toddy (which requires very coarse grind). After time is up, press the coffee into a cup and either dilute to taste and drink or seal in a container and store in the fridge as a ready concentrate.

Do not leave your rubber seal compressed in the chamber, this will permanently shrink the seal and diminish pressure holding abilities. That is all.


When I'm experimenting with brewing coffee, I'm tasting for a certain set of things. Much like when I'm roasting coffee, I taste for things affected by the roast; in that same vein I taste for things that are affected by brewing. Changing the control variables on brewing randomly to see what happens is a fun start, but it's even better and more effective to set a goal for tasting notes and see if you can brew for it.

To allow for proper experimentation it's smart to use the inverted brewing method to allow you the time and control over your variables. To brew inverted, place the plunger just inside the chamber just enough to allow for stability while upside down. Then you add your just-ground coffee and brew from there. Once brewed, place filter and filter cap on and tighten fast. Compress the AeroPress while it's upside down to where crema just pushes through the top. Carefully catch the crema in your mug while bringing the AeroPress right side up on top of your mug. Press from there. Experiment with the control variables I detail below and dial in your favorite brewing technique. Also, check out nifty this coffee compass by Barista Hustle, to help get your extraction dialed in.

When I first got the AeroPress I wanted to try and recreate espresso, and so I tried using a lot of pressure. I would use two filters and a very fine grind to allow the pressure to build under my weight. However, it wasn't espresso. Traditionally you'd need at least 9 bars (130 psi as mentioned earlier) of pressure to get what is defined as espresso. It would make very strong coffee, but would also leave grit in the mug because the excess pressure would cause the coffee and grounds to escape out of the sides of the filter. I realized that the AeroPress was just not made for that kind of pressure, and so I was relegated to either making it with tons of pressure with grit or steep it longer and press gently. So I succumbed to the latter, because grit and/or anything in between was just meh. I also noticed that darker roasts will sometimes taste better with a little more than gentle pressure. For me the slight extra pressure helps balance the dark roast with just a bit of bitterness/sourness. For most single origin light to medium roasts and a normal drip coffee/water ratio I recommend the most gentle press possible. This is due the the volatile and subtle flavors you can get with lighter roasts. For me too much pressure seems to cover up the lighter roasted coffee's delicate nature with those bitter tannins / bright acids. Lighter roasts already give a much higher perceived brightness or acidic tang.

Able Brewing - a coffee company, makes stainless steel AeroPress filters (DISK, and DISK FINE) and Chemex filters (Kone). These filters are great because the steel doesn't rob your cup of the coffee bean oils that gives your coffee that buttery full body. Paper filters absorb quite a bit of the oils. Use the DISK FINE for fine grinds, and the regular DISK for coarser grinds. Paper filters work great too. I haven't been able to taste any papery flavor from pre-rinsing it or not. Also, there's nothing wrong with preferring your cup with less/no coffee oils.

Even though AeroPress themselves recommends no hotter than 175F for dark and 185F for lighter roasts, I use 200F as a benchmark. Taste the coffee with 175F versus 200F for yourself. You may like it better. However, during my comparisons, with the same amount of brew time: I've found that the coffee is more rich and bright with the higher 200F. With 175F I'd have to brew longer (about 1 min more) to get similar results, and even then it's just not as bright. Further, I have brewed bitter coffee with 175F water using longer brew times and more pressure.

This one is an underrated importance. Less gas in solution means more contact with the water trying to extract the flavor from the coffee. Stirring helps dissipate the gas as well. I have actually gotten more bitterness from not blooming. Blooming should be done to where the coffee is just wet enough to expand and "bloom." If you use too much water you could bypass the bloom and go straight into extraction. Bloom first, stir if desired, and wait at least 30 seconds. Again experiment for yourself. I've found that lighter roasts give off more carbon dioxide, necessitating the bloom further.

As important as ever, but also incredibly flexible using an AeroPress. This is where the AeroPress really shines. I use a medium-fine grind for most coffees, which is between a drip grind and espresso grind. The grind size is inter-dependent with the other control variables and also of course your preference. As I see it, grind size affects speed of extraction. It also will affect the potential pressure that can build up under weight. As you decrease grind size, your extraction speed will hasten, given the same temperature and pressure.

If you increase pressure or temperature, extraction will hasten. Given this, you can control how fast your brew time becomes, by controlling pressure and temperature. There are of course pros and cons of shortening your extraction times. High temperature and pressure, coupled with a fine grind size will not just give you a short brew time, it will also extract more tannins and acids from your coffee. Tannins provide bitterness, and acids provide tang. Espresso is a much brighter and more bitter and overall more intense coffee, not just because of the ratio of water, but because of the pressure, grind size, and extraction time. Use this knowledge to satisfy your taste buds.

Coffee/Water Ratio:
Most recommendations say to use 2 tablespoons of coffee per 6 oz of water. These are of course, just recommendations. 1 scoop of un-ground coffee using the included AeroPress scoop weighs about 17g. This is more than that standard recommendation, but less than AeroPress's recommendation. I find that 17g is actually a great baseline for 8 oz. 17g of coffee or more also allows for just enough pressure to build up in the AeroPress for appropriate extraction. Extraction is also dependent on water saturation, so if you use more water, more extraction can be made. If you want to use less water (strong coffee), you may want to increase pressure or temperature to properly extract and make use of all the coffee you are using. I would recommend against using less coffee than 17g for a single serving, purely for efficiency reasons. Even though you could extract more from the coffee by increasing pressure/temperature etc, you might be extracting out undesirable flavors (tannins, acids, etc).

Ground filter layer:
So I didn't really know what to call this, but I'm speaking to the coffee grounds layer sitting on the filter right before pressing. This layer of coffee is what all the water rushes past when you're pressing down. When that happens, there is even more extraction occurring over the extraction from immersion alone. I mentioned this concept in the Ratio section, and how this can allow proper pressure build up. Also mentioned before is the importance of having enough grounds in the chamber to allow pressure build up. Now I want to speak to the formation. When you brew non-inverted, the coffee naturally settles to the bottom due to gravity and with the help agitation (since some of the coffee will cling to bubbles and float). However, when brewing inverted a lot of the coffee grounds can get stuck on the rubber and not form that filter layer. After flipping the AeroPress right side up onto a mug, I recommend simply swirling the AeroPress around enough to allow the water to collect any stuck grounds from the rubber. Then wait for the grounds to settle on the bottom before beginning the press. This allows for consistency of extraction over all of the coffee instead of just a portion, and this consistency allows for yet another control for any experimentation you are conducting. =)

Lastly if you want to test your chops, you can compete in the World AeroPress Championship.

Wednesday, March 19, 2014

Pitfall of Agile Development

First, let me say I'm am an Agile Development believer and evangelist. Not all projects and teams are created equal, and agile seems to make the most of any team. However, Agile methodology is an incremental and results driven approach, and focusing too much on the results can have its pitfalls.

The average developer designs code specifically for their problem. Even with broad software pattern usage, software is generally developed for a specific need. In a common agile development team, once the iteration's worth of issues are resolved, the next iteration obtains a new set and they move on. The software is only programmed to meet the needs of that iteration. Which is great because you get incremental value and functionality as you go. The problem comes when you take a look back at your code and you need to change something because you ran into an issue you didn't foresee, which you now have to accommodate in software written in a previous iteration. Now since that iteration already provided value, and you need to modify what that previous iteration gave you, you may even need your program manager's approval.

This change could happen in various ways. A lot of developers prefer addition over modification (open/closed principle), which is great when you design it that way from the start. Commonly however, the task was handled with naive forethought (to nobody's fault) and needs to be re-factored to account for these new issues. The code may have even been written by somebody else with a different vision in mind. The issue is then solved in a less than ideal way.

This sort of development occurs over and over because the leads and architects are busy, have different technical vision, and peer reviews are usually after thoughts. Here's what makes it worse. Peer reviewed code is considered "done". For some programs code is essentially untouchable after peer reviewed. So even though the term "iteration" implies you can go back and improve, it doesn't really happen, and it's more of just a series of small cascading waterfalls. It creates Frankenstein code.

So sure, the software works and is demonstrable but you're left with a hodge-podge of brittle software with little enforced technical vision. What needs to change is having the freedom to re-factor and improve upon already written code. Most programs stray away from doing this because it doesn't add function/value to the program tangibly. They are too focused on results and not the product. To the developers though this freedom is a godsend; a breathe of fresh air; a re-paved road to drive on again.  Here's what I mean:

  • Technical vision becomes more clear because we revisit WHY we do certain things.
  • Future iterations are easier because the infrastructure is more flexible.
  • Integration becomes more seamless.
  • Communication becomes more succinct since everybody's on the same page again.
  • Team works closer together because they're not arguing over which way to do things.

No one can see the future, so even though the above practices help, you still need to consider actually re-iterating over software. Here's a few ideas on how to improve your Agile Development for proactive software development, you can keep re-iteration to a minimum:

  • Have small iterations.
  • Everybody can do anything. (Don't force roles (quality testers, database admins, and
  • Rotate a two person team and have them take an entire iteration to enforce technical vision.
  • Have a team design meeting before every iteration.
  • Include software design in your retrospectives.
  • If you have multiple small teams, mix up the team members every few iterations.
  • Have the leads have separate design meetings as needed and look as far forward in software requirements as possible (and don't come out without a commitment in your design).
  • Have developers not write any code until a buddy developer approves their approach.
  • Have a dedicated engineer (product owner) keep track of requirements and update documentation as needed per scrum team.
  • Peer review rules:
    • Early as possible peer reviews.
    • Small peer reviews (200 lines of code max).
    • Critical peer review comments are non-deferrable - deal with and escalate that bigger issue in that iteration even if it means the task overflows into the next iteration.
    • Peer review must be signed off with an end to end test.

I'd like to hear your stories and any feedback, please comment below!

Monday, March 3, 2014

The trivial will change you. Or at least it should... let me explain.

Programming is magic.

Whether it be fun, stressful, and/or challenging, there's something magical about software development where our minds meld with a machine in a language we both understand and can communicate. When your non-programming friends first learn you're a programmer their eyes glaze over the magic (as they understand it) of programming. Even to us programmers, even though we know exactly how the machine works we can admit to being a little bit of a programming wizard.

That said, when your development turns into a monotony of trivial typing instead of casting magnificent spells of programming sorcery, your mind can go numb from complacency.

Don't let this happen to you!

Let that be an opportunity to bring your spells to maximum potency where you close in on the gap between perfect code and your code. Make it be an excuse to participate in #extracareercular activities, such as code retreats, reading up on the latest coding blogs, getting up to speed on the latest API releases, and et cetera. I did to escape from the dull plateau of development I was in.

Challenge yourself. Promote yourself. Apply yourself. Go get your magic back.