Wednesday, March 14, 2012

Typical Senior Frontend Developer position

This is a typical example of the UI engineering requirements. They are great. Typical for 2012 in its manifestation. It's a classic.

About You

Your proven track record of building amazing things speaks for itself.  You are passionate about creating extraordinary web experiences by writing beautiful code. You have extensive experience with JavaScript, DOM Scripting, CSS and semantic HTML and have strong debugging abilities across all major browsers.  You've worked efficiently in large JavaScript codebases and know how to keep the code modular and loosely coupled.  You are comfortable thinking full stack and moving around the codebase as necessary to get the job done, including interfacing with RESTful APIs and implementing supporting mid-tier code in Java.

The Role

The clean, intuitive, and beautiful user interface you will build will play a critical role our user experience -- allowing users to navigate through data and visually manipulate massive data sets to gain new insights and also to share and tell stories around their data.  You will be building core frontend components of a fast, scalable, complex web application (HTML5, CSS, JavaScript) using libraries and frameworks (e.g. jQuery, MooTools, Closure, Dojo, YUI).  You are not just someone that mindlessly converts Photoshop files to HTML pages, you are an an integral part of our product/engineering group helping to define, design, and develop new features.
Tags: HTML5, CSS, Javascript, Closure, jQuery, Dojo, Prototype, YUI, DOM Scripting 

Saturday, March 3, 2012

What is the real purpose of the programming assignments? Do they serve a mere purpose?

I found it! The code written in February 2010 for the company called kaChing, later - WealthFront. So-called kaChing hired a recruiter - Dane Santos, who contacted me through linkedin on Saturday morning, and insisted I cancelled my plans for the weekend. Instead, he said, I should not miss this great opportunity and waste spend a weekend prototyping a Widget for kaChing. I agreed. And I wrote the code. And I spent a beautiful weekend day not on the beach playing with children, but in front of the computer. And I sent my code back to Dane Santos. And this is a feedback I have received "from kaChing" through Dave:
Regretfully, kaChing will not be moving forward with you. 
Here are a few technical comments they shared with me on your code exercise:
- update is triggered by button click instead of form submit, so Enter doesn't work
- document.forms isn't as robust or as simple as using an id on the text input
- arrow uses an img element instead of background-image
- arrow is stretched by browser because dimensions are wrong (8x7 instead of 7x8)
- not using a table to display tabular data (his div/span layout fails for some data values; try GOOG)
- quote box has a fixed height, so description can get truncated and even partially spill out beneath
I was shocked. One part of the feedback was simply false, and other - just not part of the requirements.
Yes, it featured table less design, background-image styles to render the arrow on the meter properly, and javascript to the extend to meet the assignment requirements.
Basically, what I've got back is: code is not "robust" enough! Hey, dude, thank you for your code, it sucks!

I really-really would like to know the people who I work for. Before coding for them for free. It's just another lesson.

And here is the widget (I don't have an access to kaChing API, so YHOO ticker is hardcoded now):

Friday, March 2, 2012

StumbleUpon frontpage prototype assignment

It's time to update this blog again. It's been a while. I completed a range of small assignments, which don't worth to be even mentioned. A lot of HTML, CSS, ExtJS, Prototyping and Photoshoping. But here is the one interesting, which proved to me the importance of HTM5, and showed how much development can rely on frontend, how much processor work now is performed on client's browser, and which direction UI technologies are moving.

StumbleUpon contacted me for frontend position, and gave me an assignment. I did not express too much enthusiasm professionalism motivation aptitude to work in this cool fast paced San Francisco shop, I guess. I completed the assignment, and never heard from them again.
Here is the result of the assignment:
Demo prototype of StumbleUpon frontpage.
HTML is very simple. Utilizing semantics of HTML5, tags such as <header>, <nav>, <aside>, <section>, <footer>. All the formatting is done by css files. Special condition for lower than 10 versions of Internet Explorer which do not support new set of HTML5 specs tags:

I used jQuery as a basic JS library.
What is really cool about this demo page is that nothing is hard coded. I mean all the content is taken from JSON-like structure located somewhere else. For the demonstration purposes, it's sucked from this javascript file:
Styles, text truncates, icons - everything was carefully detailed and polished.
Primary Content Block, Secondary Content Block, Followers section - they all are just empty placeholders in HTML!
<!-- Main stumbles go here -->
<!-- Favorite topics go here --> 
<!-- Followers avatars go here -->

Another cool thing is sorting by Views, Title, Category of the data taken from the data.js above file. Pure javascript implementation. Quite a work was done here:

These were StumbleUpon requirements.

It's a history now.