Category: "Career / Jobs"

Professional Volunteers - Web

The Internet is a vital communications tool. Web sites and email are important for most organizations that are striving to reach a widely distributed audience in a cost-effective manner.

Many small organizations, especially non-profits, need a site, but don’t have the money to pay professionals. Without a friend that can help, they may get an intern, a volunteer that will work in exchange for experience, a contractor, or use services like GoDaddy’s web site tonight or other template based systems.

Most of these are stop-gap approaches, and some can be extremely expensive.

A great solution is a WordPress blog, hosted by WordPress.

Benefits

  • WordPress is a great application, it is very powerful, and easy to use
  • No application management, no security issues to worry about. No server management necessary.
  • It is a good value, their premium services are priced fairly
  • Great templates, so you can have a professional design, without paying for it. There are so many templates available, it is extremely unlikely anyone will know that you are using an existing template instead of a custom design.
  • You can map a domain name to the blog, so it looks like you’re hosting the site.
  • email can be run through a different server, the people at WordPress can help you find a good company
  • You don’t need a volunteer, contractor, friend, or anyone else to set it up, and it is easy to pass it along to other people

Never forget, you get what you pay for. A volunteer is often someone trying to build up a portfolio. They may have limited skills, and limited experience. Volunteer work will always be pushed aside for paid work - everyone has to eat. People willing to work for low pay are the same - if they could get a job which paid more, they would. Friends are usually more reliable than strangers, but they may have other commitments.

For web projects that are too small for a web company, or don’t have the budget, it is worth considering services such as WordPress, and learning how to handle email on your own. There is little technical skill required and hosting companies are usually very helpful.

If you are concerned that you don’t have the time to set up a WordPress blog or handle the email, remember that even if you have someone help you, you will have to spend time with them to explain what you want. When you want changes, you will have to contact them, then check their work. Investing in learning to do the work yourself will save you time in communicating your needs to others.

Evaluating Candidates for Web Development Positions - HR

It may be difficult for HR personnel to determine which web development candidates to interview.

Candidates for any web position should always submit URLs of their work and a description of their contribution to the project. If they don’t, either their work is not on the public net, or they are not proud of it. In the former case, they should have some web presence, a blog, or work they have done on the side, or even posts in a forum. In the latter case, there are many reasons a person may not be proud of their prior work. It may be the nature of the site - selling products that are controversial or working with a company that is not well-liked. If may be that the overall project was done poorly. Regardless, some demonstration of work should be required. Sample code may be the best solution, it allows the person to present their work and describe it. Often, the quality of their description and the enthusiasm are worth more than the technical discussion, for the initial interview.

The link above checks a web page for some common issues that can make page maintenance extremely expensive, and usually indicates a page that was not coded properly. It can be used to evaluate the work of ‘designers’ and ‘developers’ - people who are responsible for creating the visual presentation for a website. Unless an engineer claims full responsibility for the site, the above link should not be used to examine the page. Back-end/Internet/LAMP/PHP engineers should bring sample code.

To use the tool, enter the URL provided by the candidate and click ‘Go’. The tool will display the issues it found in the code. The final score is a reasonable indicator of the quality of the page.

This link will run the tool on http://wirehopper.com. This is an older page, and would be more difficult to maintain. You can see this with the final score of ‘Danger’.

The remaining sections of the check provide additional insight into the way the page was coded, but the rating system has not been established for them.

If a candidate submitted three URLs, and all were ‘Dangerous’ - in the absence of other outstanding qualities, they should not be considered further.

As is the case for any automated evaluation, this is not an absolute indicator. Entry level employees should be given some latitude, especially those who promptly admit their inexperience and appear eager to accept direction from more senior team members.

Never forget that the quality of web work, including the underlying code, is visible to all site visitors. It is vital that pages be coded well.

Web Professionals and Staffing - Education Matters

The web industry has matured to a point where requiring a related AS or BS will not limit the qualified candidates significantly.

Web designers should have a graphic design or visual communication degree. Their responsibility is to use color, layout, and design to communicate. If they lack the technical skills for the web, there are tools to help them - such as Adobe’s Dreamweaver, or even services that will convert their designs into HTML. For a pure designer, the technical skills to deliver the site should be secondary to the ability to make a nice page.

Web developers should have an AS in web development or the equivalent certificate. In this text, a web developer is assumed to be the person that takes a design and converts it to CSS/XHTML. To do it well, education or experience with a well-trained individual is required. They need to be able to write limited amounts of javascript. They need to understand bandwidth and disk space. They should not rely on Dreamweaver or other GUI-based tools.

Back End engineers should have a CS degree. Whether they are developing custom applications or extending existing ones, the foundation knowledge offered in most CS programs is vital for the implementation of the requirements into cost-effective solution.

Server Admins must have a CS degree, and experience with the target platform. This is your last line of defense on the server from malicious people. It is also a place where you can make serious performance improvements.

Writers should have a degree in English, Marketing, or Communications. Don’t let the administrative assistant write the content unless they have a degree. The quality of the medium (in this case, the text) will affect its reception.

SEO probably doesn’t need any formal education. It is still such a new field that a well-read individual can do an adequate job, by researching independently. It is also possible that SEO is so difficult to actually perform that focussing on the site content is a more valuable investment than striving to make the content conform to the search engines.

There are definitely many excellent self-taught people in the industry, but they must constantly work to polish their skills. Newcomers into the field should have an educational background to enter the workforce ready to contribute and succeed.

Mapping CS Courses to Internet Software Engineering

These aren’t specific courses, the intention is to provide a rough parallel. They aren’t in a particular order, and multi-semester study is implied for some areas.

  • Operating Systems - Particulary Linux. Appreciation of the hardware that makes the system work, especially the server. Understanding of the commands, organization, processing. Use of log files.
  • Computer Architecture - Key concepts - physical elements that make up the machine. Capabilities and limitations. CPUs, memory, disks, interrupts, timing, queues, caching. Performance considerations. Requirements awareness.
  • OOP / Data Structures - Ability to abstract a system into components that can be efficiently operated on. Queues, linked lists, trees, arrays, multi-dimensional arrays, matrices, classes and objects. Methods, properties and events. Vital for server and client side.
  • Algorithms - Appreciation for the impact of how code is written on performance. This is especially important because many web applications are written in interpretive languages. Awareness of high overhead operations (which can be avoided or performed by existing library functions).
  • Logic - The ability to break a problem in to manageable pieces and write efficient code.
  • Systems Analysis - Developing a high level perspective to understand how system components interface and interact. Distribution of requirements.
  • Technical Writing - Written communication is vital to describe the work that will be performed.
  • Assembly Language - A view inside the processor. Although not necessary, it is valuable to understand what the processor is, what it does, how it does it, and how to control it. Complements the OS and Computer Architecture courses.
  • Data Communications / Introduction to Networking - Writing code for the Internet is heavily influenced by its distribution. It is important to know how the data gets from the server to the client and back again. This affects how pages are constructed. Key elements, difference between form and content, compression, bandwidth.
  • Security - Use of encryption, OpenSSL, protecting data, web application firewalls, passwords, ports, server firewalls, watchdogs, etc.
  • Server Software - IIS or Apache. How requests are received, protection of data, efficient use of disk space and bandwidth. Caching. How to create and manage accounts. Use of web stats to monitor sites. Use of log files.
  • Current Industry Trends - Frameworks, template systems, AJAX, toolkits, CDNs.

Quantifying Professional Titles

It can be difficult to determine the title assignments within a company. However, there are two definite indicators that can be used to assign titles - time spent on production work (as opposed to time spent leading/managing), and the number of employees the person is responsible for.

With this in mind, the following are recommended guidelines:

  • President - Responsible for entire company. 95% of time spent on management.
  • Vice President - Responsible for portion of company. 90% of time spent on management.
  • Director - Responsible for 25 or more people. 85% of time spent on management.
  • Manager - Responsible for 10 or more people. 75% of time spent on management.
  • Supervisor / Team Leader - Responsible for 5 or more people. 50% of time spent on management.

Every company is different, and there are times when people must assume different roles. Although the numbers may be adjusted, permanently or temporarily, they should be identified and used. Small companies do not need all these positions.

Title inflation is silly.

1 3 4