You may be an incredible programmer, amazing with code, your indentation and formatting may be out of sight, but at the end of the day, you still need to be a good marketer of your skills to find a programming job online.
The reality of seeking either freelance or full time programming work online is that clients are looking for a very succinct set of things when assessing your skills and worth to their organization. As a programmer you need to be aware of what employers are looking for when going to market with your skills, because hiring a programmer for many clients can be challenging process if they have limited technical knowledge.
To help you prepare yourself for the online programmers market, we’ve created this guide to help you stand out from the crowd when searching for a programming job online. The following guide if followed will help you to understand things from the client’s perspective, so you can best market yourself and hopefully win out in what can often be a highly competitive tendering process where you may be faced with candidates not only from your local region, but from overseas as well.
You have to have a portfolio of work to show
Clients may not always understand the technical ins and outs of how you created something, but they will definitely know whether they think the work you produced is cool or not. With this in mind you need to ensure you showcase your portfolio of work as best as possible.
For most contractors, this will mean a producing website dedicated to showcasing their portfolio items with a mention of the following:
- Who the client was?
- The duration of the project?
- What technologies were used in creating the project?
- Your role(s) on the project (you might want to consider more than just technical items such as project management and budgeting if appropriate)?
- Any awards related to the project or key outcomes worth mentioning
For programmers who don’t have a strong set of design skills, you should really consider hiring a design specialist to provide a framework for your website to present your portfolio. This is nothing to be ashamed of and certainly does not reflect on your skills set if you’re more of a backend programmer, but do not claim credit for the design work on your portfolio if asked. Be honest and open regarding your skills set. Clients will respect you for this.
Of particular interest to employers are your formal qualifications. If you have them, you should definitely include them. This is obviously a no-brainer, but because of the strong competition in the IT field, if it comes down to two similarly matched programmers, formal qualifications may be the deciding factor between the two.
Your communication skills need to be on show
One of the biggest concerns clients have when hiring a programmer is whether or not they’ll be able to work with them effectively. In many technical projects there can be a “language barrier” type scenario when discussing why or why not things can be done, so clients need to be reassured that if they’re going to be working with you, that they can find a common ground in the communication stakes.
One of the best ways to do this is to explain your communication style. Clients really appreciate the fact that you’ve thought through how you’re going to bridge the gap in the event any communication issues arise. By simply explaining the processes you’ll be implementing to work through any challenging technical issues with your client, you’re going to develop a stronger relationship with your client which can be very beneficial in the long-term.
When looking for a programming job online, it’s also worth communicating the project management platforms you’re familiar with. Whether it’s Basecamp, Microsoft Project, or another solution, reassuring you’re client that they will be able to monitor your progress is advised. You may also want to include mentioning any version control software you’ve used such as GIT or SVN which can help the client to understand and monitor your progress, whilst providing a sense of assurance that things are not completely in the programmers hands, and if something were to go wrong, another programmer could pick up the programming job and continue work.
Timelines and budgets
Clients are often left in peril when programmers don’t communicate that they’re behind on a project, or that budgets are likely to be exceeded, so by ensuring that you communicate to your client the type of approach you’ll be taking with your programming work is a great way to stand out from the crowd.
A simple but highly effective means of ensuring both you and the client are aware of any issues pertaining to budget or time constraints can be as simple as a weekly update. I’ve worked for clients where we had daily meetings both in the morning and at the end of day, but felt this was excessive. If you feel that a bi-weekly interval is more relevant to your project or any other set interval, this is really up to you to negotiate with the client. However remember that the client is boss, so do what they feel is comfortable. The frequency of these meetings may change as the client becomes more comfortable with you and feel they can trust you to complete work on time.
An example of a typical progress meeting would include a number of the project stakeholders discussing the following:
- What is currently being worked on?
- How the project elements are progressing?
- Are there any issues which have arisen relating to the project?
- Are deadlines likely to be met, and if not are more resources required?
- A review of work completed to ensure it is to the specified standard
Once you get into a regular flow of things, you’ll soon find these timeline and budget meetings flow very smoothly unless the project was incorrectly scoped.
It’s also worth noting that often in the programming world companies will use what is called an “Agile development methodology” where they have what is called “scrums” (in other words groups meetings), where they will define a set of goals to be achieved across a certain time-frame (called a sprint). Knowledge of Agile software development methodology is becoming a highly desired skills set amongst employers and is certainly a skill worth mentioning if you’ve been involved in this type of environment before. However remember, just because you had a group meeting and defined some goals does not mean this was an “Agile” type development environment. There are subtle differences which you need to be aware of.
Clients get excited about your vision and ideas for their organization
Programmers are great implementers of change, and are often highly under-utilized agents of change in organizations. As a programmer, you’re constantly reading about new and exciting technologies, ways of doing things, and innovations, and that’s exactly what clients love to hear about.
In an interview type scenario, a common question you may be asked is “what changes would you make to our website”, or “how would you improve this”? Remember, even if the client’s current state of work is terrible, there has been an individual or team working on this, and they very well may be the person in front of you interviewing you, so be tactful about how you communicate they improve their current situation. There is a big difference between saying “this is rubbish” as oppose to saying “you can really improve this by doing X”, and then providing an example of a competitors work, so choose your words wisely. By exciting the client during the interview or selection process, you will greatly increase the chances you’ll be accepted for the programming job.
Taking programming tests for jobs
Depending on the type of client you’re trying to win work with, you may be asked to complete an actual programming test or written programming test during the interview process. Tests like these are designed to gauge how advanced your programming skills are, and to determine a pay rate appropriate to your skills set.
Often this can be a very nasty surprise for an aspiring applicant as advertisers may advertise a job at a certain pay rate which they are entitled to based on their experiences, only to be knocked down in price because they were subjected to an overly complicated test designed to trip up programmers and catch them off guard. Have your wits about you if you feel you’ve been subjected to such a test. Ask programming colleagues following the test if they would know the answers to some of the questions to gauge how you went. If the consensus is that the test was overly complicated, this may serve as an indicator that this is not the organization for you.
However if you are required to complete a programming test and the questions seem fairly reasonable, remember to have your game face on. Organizations will generally have used this test many times before on final candidates so know what to expect. Ensure you indent your code, and answer as clearly as possible with the most compliant and valid markup possible. By doing so, you’re going to ensure the client that you know what you’re doing, and will produce quality functional code for them if hired.
Include your technical skills set
Generally when you’re seeking a programming job there’s at least one person at an organization (unless it’s not a development house there will be lots) who knows a few terms or the sorts of years of experience you should have when applying for a position in programming. By including a table of your skills that list the skill, the years of experience you have with that skill, and if you’re confident in your abilities…an open an honest assessment of your skills on a scale ranked out of 10, you’re clients will be much more able to assess you as a candidate.
By communicating effectively your experience with a potential employer you’re also making life easier on yourself. For example, if you’re a LAMP (Linux, Apache, MySQL, PHP) developer and you’re going to have to pick up some .NET programming, you’re far better off being honest with your employer that this is not your strong suit. By doing so, you may be avoiding a project disaster if you’re unable to complete the work the client needs. This also gives you the opportunity to seek a more relevant (and probably more enjoyable) position that you can really offer something to.
By listing your skills accurately, this gives you a chance to take stock of what work you’re actually qualified to complete commercially. Often programmers are asked to complete many jobs, and you can tend to forget the vast number of skills you do have, so by listing your skills in a neat and easy to read format you’re able to make an assessment of where you might need to brush up on a particular skills set if required, and also to easily break it down for a client.
Keep your lingo non-technical (at first)
In my experience when I’ve been interviewed for organizations, I’ve found myself in a room with a couple of managers for a first interview, then maybe those same two managers for a second interview and a technical staff member at a later time. The first interview generally is all about thinning the herd. Often today when you apply for a programming job the client will receive up to and beyond 100 applicants depending on the nature of the position, so you need to make a first impression.
By presenting a nicely balanced list of clients, a good nature and an easy to understand summary of your technical expertise, you’re much more likely to make it to a second interview than coming in guns blazing talking about load balanced servers and optimizing database fields for high performance. If you take route number two, you’re likely to convey to the interviewer that you won’t be able to interact within a team environment. As a programmer, you need to be able to communicate effectively, work quickly, accurately, and pull projects together. If the interviewer gets the feeling that you’re going to be a programmer who just sits in the corner and is unable to interact as part of a team, you’re unlikely to be successful these days. Take the opportunity to discuss the technical jargon with the technical expert at the organization when appropriate, often management will make it clear when it’s time for this.
Organizations are looking for someone that can offer something to a team, and unfortunately due to stereotypes of programmers built up over time, you’re best chance is to stand apart from those who do not break this mould. Even if there is a programmer slightly more qualified than you, you’re far more likely to succeed if you can demonstrate strong interpersonal skills and a willingness to be part of a culture, because at the end of the day, you’re going to be spending a lot of time with the people in front of you most, so they want to feel comfortable that you’re at very least a 50% programming genius and 50% a pleasant co-worker.