How Many Web Projects Should You List On Your Website?

Another important issue to discuss is how you handle the projects you do get. You can get hundreds of projects in your career but still be struggling. Here is the breakdown of the number of projects you should have completed in order to be a stable freelance developer:

Large projects (over $10,000): 1-3
Medium projects ($1,000-$10,000): 5-6
Small projects (less than $1,000): 8-10

If you have completed this number of projects in the past, you should be a stable developer right now with too much demand for your services.  If not, you are not treating your clients well.

port

By completing the number of projects above, you should have plenty of clients needing more work from you all the time. I have about a 75% conversion rate.

This means that if I complete a singular project, 75% of the time I will get more work from that client in the future. It’s common to have a 50-75% conversion rate, and if it is any lower, then you may be doing it wrong.

So, back to the above breakdown. If I have completed around 18 projects at various levels, with a 75% conversion rate I would have around 13 clients that would call on me for future work. This would be sustaining enough to form a lasting career.

It’s important to treat your clients well, and there are a few very crucial tips I am going to give you to maximize your relationships. Remember, it is far more difficult to get a new client than it is to maintain a current one.

And remember, on your website, be sure to list the technologies used for each project and your involvement in each project.

With Your Website, Be Available and Respond Quickly

Ever get an email and say to yourself, “I’ll get to that later?” With clients, respond immediately, even if you are not going to complete the task at that moment. Tell them you understand and will get back to them as soon as possible. If you are able to work on the task, respond and let them know you are on it. (If you are in a different time zone than your client, this can mean having to check your email during non-work hours.)

Too often, hirers will ask a developer about something and not get a response for days. That can be very frustrating, and they are likely losing money during that period of non-communication. Don’t be that developer who is always causing problems, and your chances of getting and maintaining clients will go.

0 Comments

Using Twitter To Get Web Development Clients Part 1

Here’s one idea you may have never considered. If you didn’t know this already, the vast majority of tweets are public and searchable. It used to be that you had to use a third-party website to search Twitter well, but that is not true anymore. Twitter has a very dynamic and fast search engine for its members.

Create a Dedicated Account for Design/Development

If you already have a Twitter account and you use it to talk about movies or rant about politics, get a new account and brand it specifically for the freelance work you are trying to acquire. Your feed should be full of resource links, retweets about the industry and your own thoughts about certain aspects of your field. So instead of a tweet like:

“I loved the Iron Man movies; I want to be Tony Stark.”

You should have a feed that looks like:

“I wonder if the new slider plugin from @company works on responsive sites.”

This kind of account not only helps when pitching through Twitter, but is helpful for you as a freelancer in general. If you contact a hirer, it’s pretty likely they are going to Google you. With that in mind, you’ll want them to land on a Twitter account that represents you as a web professional.

If you are off-shore, don’t be afraid to list your location. Let the conversation start first and then later you can get into location. Also, put the platforms/code you work in on your profile. This informs readers about your expertise.

Search Terms Are Key

Using Twitter to get client leads is not as straightforward as on other platforms. Most of the time, people are not actually posting jobs to Twitter; they are linking to posts elsewhere. However, potential hirers may post to Twitter asking for help on projects for which they simply do not want to create postings. So here is a list of sample search terms to use in the Twitter search box (you can, of course, make adjustments to apply to your field of expertise):

web developer needed
I need a developer to
need WordPress help
want to hire a developer
need to hire someone for help
need developer to work on my website
web developer wanted for
looking for help with Drupal module
need coding help
need to hire freelance developer
need to hire freelance web developer

You should be applying these search terms almost every day, as Twitter moves very quickly. In the search area of Twitter, there are two categories of what gets returned. One is ‘Top’ and one is ‘All’. Always click over to ‘all’. You may get more spam this way, but sticking to ‘Top’ will make you miss out on a lot of tweets.

Continue to use variations on the above search terms, and make sure you know what works best for you. But search often.

Part 2 coming soon.

0 Comments

Strategies To Gain U.S Based Clients

If you are a programmer from India, Bangladesh, Pakistan, or any other country that is not the U.S, you may find breaking into that market difficult.  If English is not your first language, or American or British English isn’t, it’s important to make sure your project bid is written in a way that shows you will be able to comprehend the work and communicate easily with your prospective client.

I will go over the pitch stage in a different post, but for now, let’s assume you are in communication with them. If you make it past the pitch stage, you’ve accomplished something. Now that you’re chatting with the hirer, there are a couple things to consider.

  1. If you are not a native English speaker and have trouble understanding things, use a friend as your translator. This requires the friend to be available to you, but having someone who can communicate well—if it isn’t you—is important. (It’s unrealistic to think that if you can’t speak regularly with your client you will still get a complicated, long-term job. A smaller project with less communication, however, is possible.).
  2. Be honest about what you have worked on and offer some personal information. Every person posting a project to a freelance website is leery of losing time and money to a bad developer. Be friendly and honest about your experience and how you can accomplish the tasks. If you have never done something before, be honest, but explain how you have tackled a similar issue. In many cases, the person hiring won’t expect you to have specifically done everything, but will want to know how you will complete the project and fill in any holes in your skills.
  3. Don’t oversell. Hirers are getting pitched all the time, and this time, they are posting a project looking for help. If you fit into their needs, then you are the right choice. If you talk with the hirer and you haven’t heard from them in a while, move on. Don’t bombard them with messages; you may end up turning them away.
  4. Don’t over-promise. It’s always tempting to offer to meet impossible timelines or to deliver a complicated project for a low bid. Don’t do that. Be aggressive, especially when you are starting out, but don’t put yourself in a position to fail.

You just need one good U.S client, and if you treat them well, they will pass you to everyone else.

0 Comments

Example of Interview Test For Front-End Developers

Front-end web developers is a profession that is rising in popularity. If you have skills in HTML, CSS and Javascript, chances are that you are in the market for a job as a front-end developer. Often times you will need the standard online portfolio as well as a list of job history. However, many potential employers now request that you pass a coding exam without the assistance of online browser.

The way that you code this test will be reflective of your skills and creativity.  Sometimes there is no wrong answer if you at least code things in the proper structure (classes, external CSS, etc.).

Here is one of the most common challenges that they will give you.. The Dice.

dice

The Challenge is, create this dice using HTML/CSS.  So of course you can use minimal HTML and implement things like border-radius, box-shadow, and background colors.  Seems simple enough, but it’s not about just getting it done.  Think speed, efficient code and accuracy.  For example, if your dice does not have the exact background color, then how is that useful to making sure you have a fully branded website?

Remember, your ability to code this dice is secondary to the way you code it.  If you have the proper techniques down, then it should be a breeze!

How To Prepare For A Coding Job Interview

Landing a job in the tech field can be difficult, especially if you shooting for jobs at major companies like Facebook or Google.  In fact, if you are applying to Facebook, you will be put through a series of targeted coding questions on the spot.  So whereas some companies may give you a coding test that you must pass in order move on to an additional round, often times you may need to answer an algorithm or syntax question without the use of Google or a cheat-sheet.

The most efficient coders are the ones who can think creatively and apply what they know quickly.  That is what companies are looking for in terms of a hire.  With that in mind, here are several things to think about when going for that dream coding job:

Prove you can communicate effectively.

Communication and collaboration are key.  Long dead is the idea that you are a single coder in a dark room creating the next big thing.  With so much already out there, hires want to be sure that you can work with their team.

Have your portfolio ready to go.

Often times, it doesn’t matter where you got your degree from, it matters what you can do.  Have a concise and wide-ranging portfolio available that is all accessible online.  Even if it is not client-driven, prove that you can create something that ties into what you would be doing at this particular job.

Get ready to think on your feet.

Many programmers like to refer to online cheat sheets or other websites in order to copy/paste syntax or code structure for ease of creating.  But when you are in that interview chair, be ready to answer any questions related to your coding expertise.

Bend the truth just a bit if needed.

It’s not a good idea to lie in an interview, and we would not recommend it.  But, if they asking, have you done ABCDEF?  And you have only done ABCDE, it’s OK to feel confident about F.  In that sense, explain that you know it and go home immediately to learn it.  The good news is that with code, there is always something to learn.

And there you have it, good luck!

Bingo Fun!

Question: Given a list of 24 words, how many different BINGO cards can you create. What if there are more words? What if there are duplicates?

Screen Shot 2015-02-01 at 3.25.04 AM

Answer: The first part is a straight forward permutation question.

Number of different cards = 24! = 620 448 401 733 239 439 360 000 (pretty large number)

What if there are more than 24 words (n words). First we will have choose 24 words out of the n options, then do permutation on the selected 24 items. Read more about choosing here

Number of different cards = 24!*nC24 = 24! * n!/(24!(n-24)!) = n!/(n-24)! (simple as that)

What if there are duplicates? (Now it gets a little tricky). Assumption: 24 words. If there are two words which are the same, they can be used interchangeably. In this case, we will need to divide the possible cards by 2 to account for this. What if there are three words which are the same? Going back to the permutation equation (n!), we will have 3! way of arranging the same words. We will need to divide this from the number of total possible cards.

Assume number of duplicates = k

Number of different cards (with duplicates) = 24!/k!

What if there are two different set of duplicates? We will need to divide both set of duplicate possibilities from the number of total possible cards.

Assume number of duplicates = k, j, m

Number of different cards (with multiple duplicates) = 24!/(k!*j!*m*)

Note, thinking back to the first equation, if there are no duplicates, it is as good as having 1 of each word = 24!/(1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!1!)

What happens if there are more than 24 words and there are duplicates? Take a shot at it in the comments section. I will post the answer shortly.

Meanwhile, enjoy the fun game of BINGO by creating customizable BINGO cards at www.custombingocards.net.

2 Comments

Challenge – 50 trucks with payload

Question: Given a fleet of 50 trucks, each with a full fuel tank and a range of 100 miles, how far can you deliver a payload? You can transfer the payload from truck to truck, and you can transfer fuel from truck to truck. Assume all the payload will fit in one truck.

Challenge: Do you know the answer to this question? Post in the comments. Answers will be posted on April 22th.

Thanks Ole Sandbu, Czikus and Vanta for the answers.

We want to use as little fuel as possible so we try minimize the number of trucks we use as we go along. Let’s say we start with all 50 trucks with full fuel (5000 miles range). For each mile, we lose 50 miles in range. After two miles, we lose 100 miles leaving us with 4900 miles. This can be supported by 49 trucks so we drop one truck.
As you can see for every 100 miles we lose in range, we drop a truck.

50 trucks: 100/50
49 trucks: 100/49

Total distance = 100/50 + 100/49 + 100/48 + … + 100/2 + 100/1 (harmonic series) = 449.920533833

Meanwhile check out the challenges from previous weeks here.

Implement strstr

Question: Implement strstr in Java. Find the first instance of a string in another string.

Answer:

public int Search(String haystack, String needle){
    for(int i = 0; i < haystack.length(); i++ ) {
        for(int j = 0; j < needle.length() && 
                        i+j < haystack.length(); j++ ) {
            if(needle.charAt(j) != haystack.charAt(i+j)) {
                break;
            } else if (j == needle.length()-1) {
                return i;
            }
        }
    }
    return -1;
}

Like this question? Follow our feed and tweet it.

Search in a sorted rotated array

Question: Implement a search function for a sorted rotated array. Duplicates are allowed. Returning any one of the duplicates is acceptable.

Answer: We can do a binary search with some modified checks.

public int rotatedSearch(int[] values, int start, int end, 
                          int x){
    if(values[start] == x){
        return start;
    } else if(values[end] == x){
        return end;
    } else if(end - start == 1) {
        return -1;
    }
    int middle = (start + end) / 2;

    if(values[start] <= values[middle]){
        if(x <= values[middle] && x >= values[start]){
            return rotatedSearch(values, start, middle, x);
        } else {
            return rotatedSearch(values, middle, end, x);
        }
    } else if(values[middle] <= values[end]){
        if(x >= values[middle] && x <= values[end] ){
            return rotatedSearch(values, middle, end, x);
        } else {
            return rotatedSearch(values, start, middle, x);
        }
    } else {
        return -1;
    }
}

Like this question? Follow our feed and tweet it.

Challenge – Camel and Bananas

Question: The owner of a banana plantation has a camel. He wants to transport his 3000 bananas to the market, which is located after the desert. The distance between his banana plantation and the market is about 1000 kilometer. So he decided to take his camel to carry the bananas. The camel can carry at the maximum of 1000 bananas at a time, and it eats one banana for every kilometer it travels.

What is the largest number of bananas that can be delivered to the market?

Challenge: Do you know the answer to this question? Post in the comments. Answers will be posted April 8th.

Thanks for all the responses. Quite a few of you have the right answer.

At KM#0, we have 3000 bananas. The maximum bananas the camel can carry is 1000 so the camel must at least make 3 trips from the start point. (Leave #0, Return to #0, Leave #0, Return to #0, Leave #0).
If we move just 1km, we need 1 banana for each step mentioned above thus making a total of 5 bananas for each km.

We continue making 3 trips until we reach a banana count of 2000.
3000 – 5*d = 2000 => d = 200
At #200km, we will have 2000 bananas

At this point, we only need to make 2 trips (Leave #200, Return to #200, Leave #200). This will cost 1 banana for each step thus making a total of 3 bananas for each km.

We continue making 2 trips until we reach a banana count of 1000.
2000 – 3*d = 1000 => d = 333km
At#(200+333) = #534km, we will have 998 bananas

At this point, we need to make one trip so the camel just carries everything and marches toward the market.
Remaining km = 1000 – 534 = 466km. Bananas needed = 466.

Therefore, the bananas remaining once the camel reaches the market is 998 – 466 = 532 bananas. 🙂

Check out the challenges from previous weeks here.