User Interface Design

I attended a user interface training event today from DevExpress, after which I highly recommend UI design training for every developer. Whether you create business applications, web sites, web applications, tablet or phone apps, or whatever, if you have a screen that your users interact with, you should care how well your information is presented on that screen.

Within my company, I can already identify some areas of improvement. I was initially blown away by the speed, capability, and flexibility of our product, as well as the design and elegance of the code it runs on. I am still extremely impressed with it, but I have occasionally found the usability of our UI lacking. Little things like the placement of buttons, the emphasis given to controls on the screen, and the use (or lack of use) of whitespace all make a difference in the usability of an application.

For years I have been intimidated when it came to user interface design. I have thought to myself, and have said out loud that “I am not artistic, so I shouldn’t be a designer.” One problem with that thinking is, as a developer in today’s environment, visual design of an application is inescapable. Chances are that you cannot get away with strictly creating web services, OS services, or simple console applications that perform work in the background. If there are such programming jobs available, they’ve probably been filled already, and the people filling them probably have no intention of giving their seats up. The alternative, then, is to realize that you are creating user interfaces already, whether you like it or not, and to create them the best that you can.

As I learn more about UI design throughout my career, I realize that it is actually less of an art and more of a science. In fact, the more artistic the UI, the greater its chances are of reduced usability. Over the past few years I have become increasingly intrigued by the biology and science of User Interface design. I also seem to have a knack for identifying usable and poor designs. This new perspective helps me to realize that just because I am not artistic doesn’t mean I can’t create well designed user interfaces.


The Job Interview

I recently accepted a position with a new company, Mentis Technology Solutions. Although I was already in a good company, it wasn’t the best fit for me, so when I saw this opportunity with Mentis, I was open to seeing if it would be a better match. I am excited to be starting with them a week from now, and I am hopeful – given that they are a great company that values many of the same things I value – that this will be the last time I will ever be interviewing for a new job.

During my professional career I’ve gone through the job search process several times, so I’ve acquired a few tips that I can share. Also, just the other day I came across some of my job search notes from 2002. Twelve years later many of these notes are still relevant, and although I forgot that I had written them down, I still sub-consciously used them to help me get to where I am now. I’ll be sharing some of those notes as well. Jason Elkins, if you’re out there, many of these tips – in addition to several others – I initially learned from you. Thank you, Jason, for the tremendous help!

The Resume’s Only Purpose: TO DISQUALIFY

Earlier this month I posted about the Developer’s Resume. One thing that I didn’t specifically state is that the resume’s only purpose is to disqualify a candidate. This is why it is so important that the skills, experience, and education you list on the resume are as relevant as possible to the position you apply for. One less skill listed on your resume can be the deciding factor between you and the next candidate. Be careful what you include on your resume though. You will be asked about it in an interview. If you claim to have several years of experience in Java, you’ll be expected to write a program in Java during the interview.

Strengths and Weaknesses

I believe that the sign of a good interviewer, and a good company to work for, is one that does not directly ask you what your greatest strength or weakness is, however they will indirectly try to gain this information from you. If they don’t, they may not be the right company to work for. That being said, be ready to answer the direct, cliché questions, “What is your greatest strength?” and “What is your greatest weakness?” There are several other resources that can help you develop strong answers to these questions. Again, these questions may never be directly asked during the interview, especially from savvy interviewers, so be sure that you can work the answers in to the interview in one way or another.

My greatest strengths that I had listed in 2002, which have been surprisingly consistent to today, were “Attention to Detail”, “Willingness to Help Others”, and “Strong Work Ethics”. For over a decade this has been the message I strive to get across during the interview. My greatest weakness was a tendency to get overloaded with deadline pressures. To combat this weakness, I put in extra hours and take extra time to get organized before things get heavy. I can now confidently say that this is no longer much of a weakness for me, but it was because I worked on it. This is important to state in the interview – I put in the extra effort required to improve and reduce or eliminate whatever weakness I identify in myself.

Asking for the Job

Another sign of a good company to work for is that they will interview you more than once before offering you a job. You will likely interview with an HR person, the manager you will work for, the owner or executive who manages the department or company, and possibly one or more peers. Each of these people is looking for something different from you. You may not know what their personal expectations are, but the professional expectations are pretty consistent. During each interview it is your task to “ask for the job” by showing them what you have to offer that will benefit them.

The HR person, who is often the initial candidate screener, wants to know:
• Are you a freak?
• Will you be comfortable (in the position and the company)?
• Will your co-workers be comfortable with you?
• Show them you would like the environment.

The hiring manager wants to know:
• Are you skilled?
• Will you cause problems on the team?
• Are you easy to manage?
• Show them you are eager to learn what you don’t already know, that you follow-through, and that you are self-disciplined.

The peer wants to know:
• Will you do your job?
• Will you like working with them?
• Show them that you’ll be a good co-worker.

The owner or executive wants to know:
• How will you impact the bottom-line?
• Show them you have saved your previous employers money, and that you’ll do the same for them.

If you can successfully show each of these people what you have to offer, and what you have to offer is better than the next candidate, then you’ll be the one getting the job offer. Honesty, of course, is paramount here though. If you can’t deliver on what you promise, you’ll be better off not promising it in the first place. The goal is not just to get a job, but to get a job that you will like, one where you will be appreciated and respected, and one that you will thrive in.

Thank You

These simple words are crucial to sealing the deal. Always thank the interviewer for their time. During one of my final interviews with Mentis, I was told that they had received over 300 applications and that they had selected only a few to interview. Put yourself in the shoes of the person who has to read through 300 resumes and cover letters. Imagine their pain. When the candidate shows appreciation for you in the cover letter by thanking you for your time, how likely are you to promote theirs to the top of the list? Now put yourself in the interviewer’s shoes. They are already swamped with work – otherwise they wouldn’t be looking to hire someone new. After they take an hour out of their day to invest in you, isn’t thanking them the least you can do to repay them? If you’re the only one of the candidates who sounds sincere when you thank them, perhaps that will be the difference that gets you hired.

The Developer’s Resume

About a month ago I took a long, hard look at where I am and where I want to be. The company I currently work for is a great company, and I work with great people. I also get paid quite well. However, the environment that I have been working in clashes with my personal work style. I take application development very seriously, and I strive not to allow any deficiencies into the software that I create. Others within the company, despite their ability to tackle tough problems and create innovative solutions, do not share my love of perfection. I do not claim that I am right, only that I find it difficult to work in an environment that forces me to go against my natural work style. After trying to fit in for over a year and a half, I saw an opportunity to join a company that more closely matched my skill set, interests, and values. I applied a couple weeks ago, interviewed with them a few times, and this week accepted an offer with them.

When I applied to my new job, I evaluated my resume from the perspective of the hiring manager. When I had applied to jobs in the past, I used all of the commonly accepted best-practices for creating a resume. I highlighted my education. I used action words. I included percentages and figures that were meant to impress the reader. I made the visual format appealing. I did everything that was recommended. Unfortunately, I have learned that in my field these best-practices don’t even matter; hiring managers and recruiters look for a couple specific things when they evaluate candidates applying for a software or web development position. First of all, does the candidate have the required skills? Secondly, is the candidate competent enough to present a case that their existing skills match the requirements of the position. They might be interested in other particulars of the resume, but if you don’t satisfy those first two things, I’ve learned that the employer usually is not interested at all. Fancy looking resumes with action words, numbers and impressive educations won’t do the trick.

My advice to developers working on their resume:

1) Create a section of the resume to list your technical skills. Your technical skills are most likely how you will initially be selected in or out of the candidate pool.
2) When you send your resume out, rearrange these skills to match the priority that the job posting lists them in.
3) In your descriptions of your past job experience, highlight the skills required by the job posting if they applied to the position.
4) Always write a cover letter. This lets the employer know that you are competent and serious about performing to the best of your ability.
5) If you are weak in a particular skill, or if there are any other areas of the job posting that might not match perfectly, let it be known, but do it in the cover letter. Explain where there may be an issue and make a case for how you can provide value regardless of the issue.

That’s my two cents on developer resumes. If any developers out there have had different experiences, or have had good results with other tips, I would love to hear from you.

Lastly, the following article contains some other great tips on resumes in general: