May Contain Blueberries

the sometimes journal of Jeremy Beker


![](/images/5472510390_ce57ac2f5d.jpg)

Just a quick post of a picture I took this past weekend with Tiffany up at Lewis Ginter again. They had changed out all of the plants in the greenhouse between our last trip and this past weekend. Gorgeous daffodils and tulips. A wonderful way to spend the day for Tiffany and I’s third anniversary.

Full set here.


Facts are everything for engineers, whether they be computer science, mechanical, electrical, or civil. In a utopia of engineers, there would be no disagreements. All decisions would be made by coolly laying out the comparison criteria, assessing the different options, comparing the facts, and picking the obviously logical choice. Sadly, this world does not exist (no matter how hard you wish for it).

Opinions, Perceptions, Personalities, Politics, Emotions. These are the qualities which drive decisions whenever more than a single person is involved. And anyone who has a grasp of these items and can use them skillfully will easily outmaneuver someone who only has the facts on their side but is ignorant of these items.

To be successful, you need to understand when it is appropriate to discuss facts and when the facts are irrelevant and the issue at hand is perception. This came up recently in a meeting I had with a client where they were evaluating our performance. There was a criticism of our company which, if one only looks at the facts of the situation, we were in the right. However, our attitude and reaction to the situation resulted in a negative opinion of us as an organization. In such a situation, continuing to argue the facts of the matter results in a reinforcement of the negative opinion (sadly, one of our people fell into this trap). The proper reaction was to accept the criticism and address the perception problem while simultaneously organizing other forums that are fact based to address the inaccuracies there.

Being a good engineer requires you understand and can apply the facts of your trade. Becoming a great engineer requires that you must understand that people are not neat and pretty and definable through equations and logic.


Enough……..you’re going to run out of colors!

Now, I am an introvert by nature and I am a huge fan of email for communication. It allows one to think about what you want to say, find the best prose to convey your message, and for those of us not always eloquent, we can seem better than we are. But, email is an abused medium; a tool which is used to bash in every nail in sight.

Email evolved from the letter. And a letter is a wonderful point to point communications technology, whether in paper or electrons. It is the best way to convey a complicated set of ideas from one person to another. But once people had email they got the freedom to turn that point to point communications mechanism into a one to many tool. Or, even worse, into a collaborative, many to many communications tool. And email stinks at that.

The quote at the head came from an email chain between 7 people trying to collaboratively discuss a coding strategy while maintaining original author identity through the use of colors. It looked like a color blind person trying to make a rainbow. Email was the wrong tool for the job. They should have considered a wiki page, a Google document, or anything with version control. The person who made the observation in jest was a very brave person (it wasn’t me, I had already tuned out because of the riot of colors).

When to use email:

  • When you are communicating a message to one other person

When not to use email:

  • When you are having a conversation with a group of people. Have a meeting (online or offline)
  • When you are working on a collaborative object. Use version control, or a wiki, or a Google doc
  • When you are making an announcement to many people. Use a website (preferably with an RSS feed so people know when it is updated.)
  • When you are just sending a document. Use online storage

I am hardly a saint on following these rules, but I think if we all try a little harder, we can help make email a little bit more useful for everyone again.


![](/images/5401996406_2a3f26ea9d.jpg)

I am officially done with Winter. Thanks for the pretty snow, but see that door over there? Please use it. Thanks!

I hadn’t realized just how much I needed that smell of fresh air, the colors, the sight of growing things until this past weekend. Tiffany and I went up to the Lewis Ginter Botanical Gardens in Richmond to take some pictures. Walking the grounds was nice, but entering the greenhouse was amazing! There was one wing of the greenhouse that was filled with spring flowers and the smell was just divine. I contemplated securing a cot and camping out there for the next few weeks. If they had wifi, I would be totally set.

Hopefully it will be just a few weeks and the flowers will start showing their faces outside. Until then, we may need to make a few trips up to the gardens to bolster my spirits.

All Pictures - Lewis Ginter Winter 2011

As a side note, we became members this year and it is a really great deal! It was $60 for an Out of Town Dual membership that gets you unlimited entry into not only the Lewis Ginter gardens but hundreds of others around the country including the Norfolk Botanical Gardens. You should do it!


In the same theme as yesterday’s post, I thought I would expand by adding my suggestions for those people who are in the job market looking for work based on the hundreds of people I have interviewed over the years. I won’t go over the standard type of stuff like researching the company you are interviewing with, being on time, bathing, etc. which you can find many other places.

Know how to shake hands

I always feel a little shallow talking about this topic, but it really is something that makes an impression. The first impression I get from a candidate that has what my father referred to as the “dead fish handshake” is really hard to overcome during an interview. It immediately puts me in the mind of a person who is not self-confident. And when I interview I am looking for personality far more than I am specific “resume” skills.

Look comfortable in your clothes

This is an area where I will amend the traditional wisdom on what to wear to an interview. The overly simplistic rule is “dress up for an interview, preferably a suit (or equivalent).” This is silly as it is based upon a standard 60’s office culture. Modern wisdom has shifted that you should wear one notch higher on the formality for the office you are going into. This is a good general rule, but I will add a corollary to that. If you aren’t comfortable in your clothes, wear something else. Even if the “rules” would state that you should wear a suit to an interview, if you never wear suits, you have a badly fitting one you got for a wedding 5 years ago, and you will spend the entire interview fidgeting with it, don’t wear the damn suit. Find something close that you will look comfortable in.

As an interviewer, I will happily overlook a slightly less formal dressing style if you seem comfortable and relaxed. While if you look like you would like to claw your tie off and are uncomfortable, I will notice and it will make me wonder if you always act like that.

Keep Talking

Don’t give one word answers. If you are asked a question, obviously you need to answer the question. But look for the openings that will allow you to tell a good (appropriate) story that exemplifies why you are the right candidate. Make me want to hear you keep talking. Remember that beyond the work that a company needs you to do, they also have to spend 8 hours a day with you. If you appear boring and uninteresting, you are at a disadvantage.

Know what you want to do

Have an idea what you would like to do in a perfect world. And be willing to talk about it even if the current job you are interviewing for isn’t exactly that thing. Displaying a sense of vision and imagination is what shows you can think for yourself. If, when asked that question, you say that you have always wanted to do is exactly what my job description says, I will not be impressed. I will assume you are either very boring or trying to suck up.

In the end, the interview is the potential start to a long term relationship. You are trying to impress the interviewers with you as a person. Keep that in mind and you should do fine.


My good friend and former super amazing boss at The College of William and Mary, Susan Evans, has been writing a series of blog posts lately that I have really been enjoying. I’ve enjoyed them so much, they have spurred me to write today. Her entry from today, Hiring? Listen and spend an hour, is particularly relevant lately as I have been working to add 7-8 people to my teams in the last few months and I spent yesterday talking with candidates at the William and Mary Career Fair. Susan makes many wonderful points in her article and I highly recommend you read hers first; I’ll wait.

I can’t emphasis the importance of quality hiring enough; while hard when you feel the pressure to get a new employee RIGHT NOW to try to avoid whatever pain you may be feeling in your organization, hiring the wrong person is always far worse. You must remember that the interview process provides your only protection against getting a bad candidate in to an organization; even in the best of situations you only have a few hours to determine if this person is one you will count on for thousands and thousands of hours in the future. The cost of hiring the wrong fit is too high and no matter your company, getting rid of someone you have hired who is the wrong fit is far harder (emotionally and practically) than just not hiring them in the first place.

Trust your team

Never be the only person who contributes to the hiring decision. For any job I have, no matter how junior it is, I always have many people inside and outside my team do their own interviews with the candidate. This can range from 3 people beyond me to 5 or 6. My interview process is long and I get comments from candidates when I wrap up with them that it is more thorough than they have seen at other companies.

The hardest part is that everyone must agree that the candidate should be hired. If anyone has any doubts, the answer is no. It does not matter how much everyone else loves the candidate, everyone has veto power. This is critical to ensuring you only get a new employee that will succeed in your team. (And don’t overlook the ancillary benefit that it shows your current staff that you trust them with the responsibility to shape the team.)

Meet face to face

As hiring managers, everyone makes mistakes from time to time. What I have learned from my mistakes with hiring is that the people with whom I have been later unhappy with are the ones I hired based on the recommendations of others without meeting personally or that I only did a phone interview with. This was the trap of being “too busy” and not seeing hiring as the most critical part of my job. Even in situations where someone was being hired by one of my managers and won’t report to me directly, I now insist that I get time face to face with them. It is the only way to be sure.

The person is what matters

Here I just want to reiterate a point Susan makes in her closing: “the best hiring decisions are based on the type of person you hire and not the skills they have.” I can’t stress this enough. While a resume is important, the courses they have taken in college are important, in the end, none of that matters. I am hiring a person not a list of skills and that is what you must focus upon.


I think it comes as no surprise that I would love some day to start up a small high tech company. When people talk about the required items to start a technology company, there seem to be three main components that are required; money, people, and an idea.

For many years I worried about the first two of these; people and money. But, as I have gotten older (and perhaps wiser) I have been able to meet the right people who in tern have connections to money. But, the tricky part is the elusive idea. The Internet and the advance of rapid implementation has made it so easy to implement an idea and share it with the world that it seems whenever I and my coconspirators have an idea, someone has already done it.



A good architecture is consistent in the sense that, given partial knowledge of the system, one can predict the remainder. - Fred Brooks, Design of Design, pg. 143

I’ve been voraciously reading Design of Design, a new book of essays from Fred Brooks, author of the software engineering classic, The Mythical Man Month. I’ve been enjoying it immensely and would recommend it to all who deal in software. Combine it with a glass of wine, a comfy rocking chair, and relaxing music and life is good.

But, the quote above got me thinking about fractals; a topic I was quite enthralled with in high school. Yes, fractals, bear with me.

When I read that sentence it felt like something I knew was being put into words so simple I could never have achieved. But, if you work in software you know that when looking at a well designed application or API, there are similarities that can be recognized immediately. You become familiar with one portion of the code and it gives you insight into how the whole application works. This is the essence of what becomes described as a beautiful or even elegant design.

It is something I have strived for as I design systems. But this brings me to the fractal topic. One of the key characteristics of fractals is the concept of self-similarity and independence of scale. Basically that as you zoom in or out of a fractal object, it looks the same. The way this is measured is by defining the dimensionality of an object. I won’t go into lots if detail, but the basic idea is that you can have fractional dimensions. A straight line is 1 dimensional and a square is 2 dimensional. But what about the line representing the coastline of a country? It isn’t a straight line, but it isn’t a solid either. And ad you look closer and closer, from orbit all the way down to grains of sand, it basically has the same shape. This is the essence of self similarity Depending on the twists an turns and nooks and crannies, and, yes, the self similarity, it will have a fractional dimension somewhere between 1 and 2.

So how do I get from software to fractals? well it seems to me that if one could represent software, most likely APIs and functions and measure their dimensionality, one could use that as a measure of quality if design. The higher the self similarity of the API, the better a design it might be.

I haven’t looked if this has been thought of before. But who knows, maybe there is a PhD in this idea.

Update: Turns out I was right, it is a PhD level topic: A Fractal Software Complexity Metric Analyser


Toby,

![](/images/830876604_99bb32a04b_m.jpg)

How did you know every time I drove up that I was coming to visit and make it down to the window to greet me? Was it the simple sound of my car or maybe some magical kitty sense I will never understand? But you always made me smile, postponing my entry to play with you at the window; to see but not hear your little meows.

As I started spending more time with Tiffany, your protective side came out, always finding a way to sit between us on the couch, like a 17th century chaperone; but coming to trust and accept me into the family. You knew when I was having a bad day and would forgo your feisty side and just sit in my lap for hours (only occasionally stabbing my leg as you tried to help). I don’t think you ever forgave us for removing the pictures above the bed that were just at tail height so you could rattle them in the morning to make sure that we got up not so much to feed you, but since you were up, shouldn’t we be?

There are so many good memories I have; I just wish we had had more time to make more. Wherever you are, take care, you will always be remembered in my heart.

Farewell, I miss you.

-Jeremy, your friend