The following is a guest post by Lara Schenck. I heard her tell this story at a CodePen Meetup in New York. I saw an awful lot of nodding heads. It's a fact that there is some trouble in this industry with job titles, descriptions, interviewing, and that whole rigmarole. Check out this story from Lara, then follow her, as I'm sure this isn't the end of this discussion.
I've been self-employed for the past three years. Though I did spend my first year out of college working for a three person, now-defunct startup, I've never had a typical 9-5 (or more like 10-8 nowadays) and to be honest, never really wanted one. Lara Schenck, LLC is a profitable business, and every day I do work that is enjoyable and challenging. I make my own hours, take vacations when I want to, and run everything on my terms.
While that's all awesome, what you don't get from working independently is the team experience. I base my work on teaching technical literacy to non-technical designers and content producers so that they can better communicate with developers. The theory is that if a designer understands why it's a bad idea to request 18 fonts, and if content producers know why it's not trivial to edit the titles of a set of related posts, life will be easier for everyone. At least that's my theory, and the assumption on which I've developed my business.
Lately though, in a bout of the good 'ol impostor syndrome, I've been feeling like, wait, how can I be telling people how to work on teams if I've never really worked on one? I've always been the 'Lead UI/UX/Visual/Web/Front-end Designer-person-thing', and have never worked for a larger company with separate teams for product, UX, marketing, content, frontend, backend, etc.
So I felt the urge to look for a job, and a seemingly perfect one fell into my lap. It was for an awesome company, and it sounded right up my alley skill-wise. The title was 'UX Engineer/Interaction Designer'. I usually balk at the the term "engineer" (perhaps for good reason) but considering the presence of "designer" and the nature of the job post, I wasn't too bothered.
Interviewer: Are you familiar with FizzBuzz?
Me: Um, to be honest, no.
Interviewer: Ok, well, you have to write a program where multiples of three print 'Fizz' instead of the number and for the multiples of five print 'Buzz'. For numbers which are multiples of both three and five print 'FizzBuzz'. So it would look like '1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz'
Me: (OMG MATH. I tried to talk through it a bit, but then said:)
Me: Ok, again to be honest, my JS knowledge is more regarding UI/UX based tasks. And I don't really understand the point of the question. Like, what's the use case? When would this come up in the role?
(Only after recounting this interaction to a friend did I realize you should not ask "why are you asking me this?" in a job interview.)
Interviewer: Well, it's an exercise in programmatic thinking. No worries, let's move on to the next question. Write a function that takes a timecode string and turns it into seconds.
Again I started talking through it, but it was impossible for me to figure it out with someone watching. I needed to do some serious Googling. He said I could email back my solutions. I toyed with the idea of calling up and saying, "forget it, this isn't for me" but I decided to stick it out. After spending a few hours coming up with something that semi-worked, I found the solution on StackOverflow and, in my honesty, linked to it in the code.
Unsurprisingly, a few days after I sent my solutions I got a "you don't have enough experience for the position, but we'd like to keep your resume on file". In my impostor-prone state, I felt called out as a just-good-at-Googling-and-maybe-jQuery developer. I was embarrassed.
After letting this self-doubt dissipate, a new emotion settled in: anger. FizzBuzz is a way to filter out fake programmers. I am fully aware that I am not a programmer, at least "programmer" in the sense of algorithms, data modeling, etc.
Let's go through the job description I saw (only slightly altered for anonymity). To me, this job description was definitely not for a programmer according to that definition.
UX Engineer/Interaction Designer
(...blah blah blah, we're a great company and looking for a great person...)
- Create low and high-fidelity mockups to effectively convey interaction and design ideas (e.g. wireframes, sketches, 'pixel-perfect' mockups, etc).
Awesome. Except for the 'pixel-perfect' part. But maybe this could be an opportunity to help them update their processes.
- Deliver engaging, innovative prototypes, and contribute to front-end development of our products.
- Collaborate with and synthesize feedback from other members of the team.
You got it.
- Evaluate the usability of new and existing products, apply user research findings, and make constructive suggestions for improvements.
- B.S. degree in Design, Computer Science or related technical field or comparable practical experience.
Little problem. Feel free to contradict me, but can we agree that there isn't such a thing as a B.S. in Design? And that Design and Computer Science degrees are wildly different? But I decided to let this slide.
- 2 or more years of designing clean, valid, and compatible websites and applications.
- Knowledge of Adobe Photoshop and Illustrator.
- Clean and elegant visual design aesthetic.
I'm a master at the first two, but since there was no mention of programming stuff and the responsibilities section was so design-centric, I figured my jQuery proficiency and capacity to self-teach would suffice.
- Passionate about creating responsive and delightful interfaces and experiences.
I've played around with these and understand the concepts. I wouldn't say I'm proficient, but I definitely have 'experience with'. Sure, this could be a lack in my qualifications for the position but again, the verbiage in the sections above is way more oriented around design and prototyping skills.
- (blah blah stuff about self-motivation and communication skills)
So, where does FizzBuzz play into this? Sure, "engineer" is in the job title, but so is "designer", "UX", and "Interaction". To me, that definitely doesn't indicate a programming job. I wouldn't have applied if I knew that.
It's a problem.
I imagine I'm not the only one who's had an experience like this. The job title conundrum is a known issue. But job descriptions are just as bad or worse.
Let's take a look at a few more examples I've seen.
UI/UX is far more non-descript than I'd like.
- Occasionally write front-end code in PHP (WordPress) or Ruby (on Rails)
Umm, PHP and Ruby are not front-end languages. Maybe they are talking about templating, but... no. Also, listing SCSS and CSS as required skills is suspicious. I smell someone listing buzzwords.
What You Will Be Doing
In this role, you will collaborate in designing, building, and testing world-class web applications. You will work across product, marketing, legal, business development, and operations teams to build and improve our core products. Test and deliver solid, reliable code that meets all requirements. Discover and experiment with new technologies and share with the team.
You will be the entire company. Not helpful.
What You Need for this Position
- CMS (WordPress a plus)
- Adobe Create Suite
- Eye for Design
Now for my favorite...
- Problem Solving
- Dealing with Ambiguity
- Customer Focus
- Functional/Technical Skills
Hopefully you get my point.
Who is writing these descriptions? I'm sure these companies find a perfect match now and again. But I have a feeling that's not the norm. It's more likely that many of these companies just don't know what they need so they look for everything. A recruiter or HR person whips something up and puts it out there to see who bites. Maybe they'll catch a unicorn!
What's more, based on my (albeit minimal) job application experience, who knows what will happen in the interview? I imagine you'd talk to a real designer or developer with a much better idea of the situation, and who knows how well that matches the job description, let alone the interviewee's skillset?
I feel like it's pointless to rant without proposing a solution, so here are some suggestions for whomever is in charge of this hiring stuff:
- Audit your process and identify the gaps. Either hire a consultant or do it internally, but please look at the big picture, talk to a range of employees (junior and senior), and figure out where the pain points are. Don't just interpret the opinions of dev/design leads and managers and lump their needs together.
- Implement image sliders and smooth scrolling
- Migrating our CSS pipeline to Sass
- Make quick design decisions about interactive elements, such as button hover states and form styles.
- Create a registration form using AngularJS.
- Use regular expressions to detect any date within text content.
- Recommend improvements to our Rails deployment workflow.
I think other people have dealt with this. Yes? No? Am I just being bitter and snarky?