What Makes a Great Employee

I was recently asked to share some thoughts on characteristics that make a great employee. It made sense to me to start by noting behaviors seen in those that set themselves apart and excel.

The Journey
I decided to liken the journey of a developer or tester (I am a tester) to that of an outdoor activity that I relate to. I love hiking and taking part in remote outdoor adventures, including backpacking and canyoneering. Some very beautiful sights can be had, and they usually come at several costs. Besides the physical toil required, there is – in many cases – a preparation phase of readying tools, devices, and all manner of provisions to make the journey safer, more comfortable, and in some cases, doable at all. There is the mental preparation of understanding the terrain and physical barriers you will be up against, as well as a grasp of what conditions to prepare for weather wise. Bottom line is, you pay the price up front; you examine charts and maps, you have a plan, and you take with you what you will need. These all lead to a safe and enjoyable journey and minimize the scenarios you are not prepared for. I would liken our finished product in software to the beauty that nature has to offer.

Just as proper foresight and careful planning in hiking can lead to a rewarding outing in nature, similar preparation in development can lead to more robust, quality, and beautiful software products.

“If I had 6 hours to cut down a tree…I would spend 4 hours sharpening the axe.”
- Abraham Lincoln

Creating Value
What are you doing to create value for yourself and your employer, now and in the future? How do you stay current? How hungry are you?

Here are some tips for keeping yourself sharp and valuable:

  • Make yourself accessible to your coworkers
  • Get yourself in the loop
  • Communicate and be responsive
  • Make your product look good
  • Make your producer (project manager) look good
  • Ask those around you what you can do to be more helpful

Followed by tips for staying current:

  • Follow blogs (RSS, etc.)
  • Participate with user groups
  • Twitter
  • Books
  • Explore new technology

Robert C. Martin, in The Clean Coder, suggests developers spend 60 hours per week at their profession. The first 40 for their employer, and the remaining 20 for themselves by means of practice, working with new technology, learning a new language, etc. I would offer that those who sufficiently prepare will reap the most satisfying rewards.

Posted in Blogroll | Leave a comment

Web Developer – PHP

Rain (mediarain.com) is a digital agency located in American Fork, UT. We specialize in mobile and web software experiences. We play with brands and other agencies all over the world, but we’re Utah-grown and home-town friendly. We have passion for awesome software, beautiful creative and innovative ideas. But we have passion for living, too. If you want to work in the mountains of the West, doing what you love, and still have time to love the mountains, the desert, your family or the open road, let it Rain.

RESPONSIBILITIES

  • Interact with clients, exploring and advising technological possibilities, discovering solutions that fit their goals
  • Architect and develop large-scale, well-written applications
  • Write clean, structured, object-oriented code with change and reuse in mind

EXPERIENCE/QUALIFICATIONS

  • Object-oriented PHP experience
  • Demonstrated experience working with large applications
  • Moderate experience with Javascript (e.g. jQuery), HTML, CSS
  • Security minded

BONUS ROUND

  • Experience with MVC frameworks (CakePHP)
  • Image manipulation or rasterization
  • Experience with Amazon Web Services, Rackspace, or other cloud environments

BENEFITS / PERKS

  • Competitive salary
  • 401k matching
  • Health, dental, vision
  • Gym membership
  • Flexible schedule
  • 15 days PTO / year
  • Additional week of PTO end of December if sales goals are met

Contact Us

Posted in jobs | Leave a comment

The Makeup of the Ideal UX Professional

Recently, we had some graphic design students from a local college in for a presentation on what we do here at Rain. I was able to speak to them for just a few minutes on our UX design process and how we work closely with graphic design in an agency setting. They seemed confused on the difference between UX design and graphic design. One question, in particular, was what sort of skills does a UX designer possess that might be different than a traditional graphic designer.

At Rain, this might be different than at other places. I know there are many product companies, for example, who separate their graphic designers and UX designers in completely different divisions of the company (marketing and product development, respectively). But in an agency that sort of separation doesn’t work very well. It also becomes haphazard having one designer (graphic or UX) making all the decisions relating to the presentation of functionality on a client’s product. Depending on the size of the application or digital experience, it can be a pretty large undertaking to have one person do it all. And often-times, when it’s all done by the same dude, it’s often either beautiful looking with UI problems, or very thought-through UI-wise, but nothing special to look at.

At Rain, it works well to have our UX folks build requirements, conduct the research and analysis, write the stories, build the information architecture, build wireframes and prototypes, and otherwise make life easy on a graphic designers and developers who can focus, collaboratively, on adding a layer of beauty, creativity, and functionality on that infrastructure we’ve laid for them.

In an effort to answer that original question though (what does a UX professional do, and how does that relate to what a graphic designer does?) I started naming all the skills a good UX professional has to have at least some competency in to be effective in an agency setting. Since a UX professional has to be a “Jack of all trades” it ended up being a large list. Below you will find the info-graphic (click to enlarge) of what I deem to be the balance of skills the ideal UX candidate at Rain would have. This won’t be the same everywhere. I think the list of skills might, but the level of competency in each area is going to be different depending on the company and its priorities. Click here to download the PDF version.

Posted in Blogroll | Leave a comment

The Socket.IO Protocol

Socket.IO aims to enable real-time applications in every browser and mobile device, and it does a great job. Socket.IO is a nicely abstracted conglomeration of WebSockets, FlashSocket, AJAX long polling, and a few other techniques enabling bi-directional communication from the client to the server. The real-time feel that HTML5 WebSockets allows in modern web browsers is available today in every browser with Socket.IO.

Sound exciting? Good! Now let me mention some downsides.

On the server-side: security policies must allow for long-lived requests, additional ports must be opened, and traffic must be managed to allow for all of the different Socket.IO communication protocols (NetOps may need to be bribed).

On the client-side: corporate firewalls may block Socket.IO ports. Or, anti-virus software may block Socket.IO communication.
https://github.com/LearnBoost/socket.io/wiki/Socket.IO-and-firewall-software

The biggest downside to Socket.IO is being forced to use Socket.IO. A client cannot talk to a Socket.IO server speaking WebSockets, or long polling; rather, a client must speak Socket.IO over WebSockets, or long polling. Socket.IO has accidentally become a protocol, and it is an unstable protocol. In fact, there are several Socket.IO implementations in programming languages other than Socket.IO’s native NodeJS which have qualifiers such as “currently not compatible with 0.7+”. This instability may be fine for a single application, but thinking of integrating with multiple Socket.IO servers might be the subject of nightmares.

Ideally, all browsers, firewalls, and anti-viruses would support WebSockets. In the meantime, Socket.IO provides a solution that should be adopted after careful consideration.

Posted in development, html, html5, javascript, mobile, node | Leave a comment

Android Developer

Rain (mediarain.com) is a digital agency located in American Fork, UT. We specialize in mobile and web software experiences. We play with brands and other agencies all over the world, but we’re Utah-grown and home-town friendly. We have passion for awesome software, beautiful creative and innovative ideas. But we have passion for living, too. If you want to work in the mountains of the West, doing what you love, and still have time to love the mountains, the desert, your family or the open road, let it Rain.

RESPONSIBILITIES

Interact with clients, exploring and advising technological possibilities, discovering solutions that fit their goals
Architect and develop large-scale, well-written applications
Write clean, structured, object-oriented code with change and reuse in mind

EXPERIENCE/QUALIFICATIONS

Proven experience in writing native Android applications using java
Knowledge of using the related development tools (e.g. Eclipse, et al)
Advanced knowledge of the Android sdk

BONUS ROUND

Application deployed in an Android Market
Demonstrated experience with other mobile platforms such as iOS, WP7, etc
Experience with multi-platform solutions such as AIR for Mobile or PhoneGap
Game programming experience
C2DM experience

BENEFITS / PERKS

Competitive salary
401k matching
Health, dental, vision
Gym membership
Flexible schedule
15 days PTO / year
Additional week of PTO end of December if sales goals are met

Contact Us

Posted in jobs | Leave a comment