How to get paid, when you work remotely from your client as a Freelance Web Developer?

If you are working remotely from your client there is a good chance you are in a different country.  Payment providers charge fees and use favorable  (for them) exchange rates and banks love to charge fees whenever they can.

There are a lot of options out there, a favorite for many is PayPal, but…

“It really hurts having PayPal take a 7% combined fee on all my earnings from the initial payment and the currency conversion.”

There is IBAN and SWIFT, but often banks charge the sender to send and for the receiver to receive the funds and use their exchange rate in the middle of money sending sandwich.

But now TransferWise is claiming to be the:

“THE CLEVER NEW WAY TO BEAT BANK FEES”

They have a nice simple calculator on their home page, so you can quickly determine the fees involved and the exchange rate without reading any fine print, check it out at: https://transferwise.com/

“TransferWise is really good, I’ve had funds in my account in under a day.”

How have you found TransferWise? Please leave your comments below.

Why you should track your time for you and your clients

My client wanted proof that I worked the amount of hours that I said I did…

What’s the best way to prove you worked for the amount of hours you said you did on what you were meant to be working on, on which day?

You are taking the time to record your time? Right?

There are lots of advantages to logging your time…

  • You can remember where the time went and review your productivity.
  • You have proof to show your client, if they do question it.
  • But you should be sharing your timesheets with your client anyway for a good transparent relationship.
  • Knowing how long something took, will help with making more accurate estimates in the future.
  • Invoicing for your time should now be super easy.

Of course you can use good old pen and paper, I’ve used notepad to track time when I was working exclusively for one client.  There’s always excel / spreadsheets.  Now though there are a lots of online time tracking apps and tools with lots more additional features and integration’s than you get with a simple spreadsheet.  All of which should increase the speed with which you can invoice clients for your time, saving you wasted time and maximizing your productivity.

What is the minimum amount of time I should charge as a Freelance Web Developer?

Your clients are calling you, emailing you, sending in small requests…

Can you change this? Can you change that?

Sometimes the changes are so small, barely 5 minutes that you feel guilty for charging your “valuable” clients.

Well you shouldn’t feel guilty! You are in business and you are selling your time and your clients are likely consuming your time with small requests if you don’t have a minimum amount of time to charge them.

So yes, yes you should be charging a minimum amount of time for almost all client engagement.  Make your clients aware, ideally up front and in your contract of what that minimum is, so that there aren’t surprises when they receive their invoices.

Always consider the amount of time it takes to read their emails, answer their calls, discuss / consider their request, find the place to make the changes, test the changes in multiple browsers, publish the changes and then respond or get back to the client, as well as tracking the time spent and creating and sending the invoice.  All in all, even though the actually technical change may take a few minutes, by the time you’ve done everything else, it could easily be an hour of your time that has gone by if not more.

If you don’t have a support contract or monthly retainer, I recommend that your minimum amount of time to charge is one hour.  Your client also knows your hourly rate, so they know the minimum charge to expect when they engage you.  This will help make the client think about what they are going to request, before they request it and consume your time.

Often in work places, I’ve found the human interaction takes many orders of magnitude longer discussing a change that is required than the actual change itself.  So track all that additional time and charge your client appropriately.

Looking to hire a PHP developer, then test them out!

6hxvm0nzyp8-caleb-ralston

If you are looking to hire a PHP developer, then test them before an interview, in the interview, or if you are unsure about hiring a new freelance developer, test them with a small project first, minimize your time and risk and save yourself potential headaches in the future…

You can get cheap shitty programmers anywhere.

PHP is great, has been around for years and is easily accessible and widely used, but that means there are a lot of developers / programmers out there who are “experienced” in PHP and available at amazingly low rates.  So unless you really want bargain basement code, give them a test!

You should of tested them before you hired them.

Some companies that have hired me and have never tested me technically or otherwise, I’m always surprised by that!

One company I applied for made me go through 4 rounds of testing. The companies with the shitty developers don’t test the people they hire.

Amazingly a significant percentage of people will buy a car without test driving it!  It might be different if you are hiring a car from a trusted company like Avis, Budget, etc.  In the same way if you are hiring a person through a recruitment agency or trusted company you will assume they are up to scratch and have been checked over at least.

I test all hires with a few decent programming challenges and i only let them use pen and paper.

If you don’t test them out first, you could easily end up looking to hire someone else to fix their mess of code.  Often that can mean re-writing lots if not all the code, pushing your project back even further along the time line.

Usually because people hiring don’t know code.

If you really don’t know code, do you have another developer already on staff who could easily help you with some relevant technical questions or a quick test? I’ve seen this before where non-technical managers, don’t involve existing staff to hire new technical staff!

Try before you buy and test before you hire!

So test them verbally, online in a video chat, in person, written test, computer test, find a way!

8 things to consider when hiring a Freelance PHP Programmer

11h1ssvcixc-federico-bottos

When hiring a Freelance PHP programmer, you can easily be inundated with choices on sites like Elance / ODesk and Freelancer.  So if you need some help narrowing down the choices consider the following points:

  1. Price, do you really want the cheapest PHP programmer in the world?  What value will that give you? Consider paying more for better quality work that is done right first time around and done in a timely manner.
  2. Experience / Portfolio / Ratings, do they have the right experience you are looking for with a portfolio to match and how are they rated online?
  3. Language, if you are both fluent in the same language, it will make communication so much easier
  4. Time Zone, consider how important it is that someone is available during your working hours, do you need to be able to easily get hold of them, when it’s convenient for you.
  5. Location and currency, makes it easy not having to deal with exchange rates and everyone will understand their tax obligations.
  6. Availability, linked to the time zone and other commitments, will this freelancer be working on your project 100% and will they be able to respond when you need them and will they will be available for support in the future if needed?
  7. Start small, test a new freelancer with a small project, to see how they complete it, if they are good you can always hire them again, this way you minimize your risks for a small investment.
  8. References, do they have references you can check with previous clients? A quick phone call now can reassure you and may save you a lot of potential headaches later.

 

Increase your concentration and productivity by beating noise with more noise!

“Working from a public space involves dealing with noise levels
that are for me, entirely counterproductive.”

Getting distracted by noise while programming?  Suffering from not being able to concentrate whilst developing and being interrupted by annoying noises?

“What about listening to a white noise app?”

You can beat that annoying noise with white noise, get focused and download a free app from Google Play called “White Noise Free” or on iTunes, or use this website Noisli.

“White noise is excellent,  I use it to drown everything else out.”

New to PHP and need some help with errors?

Wondering what’s going on with your variables?

Not seeing what you are expecting?

If you are a newbie learning PHP, one of the most useful functions to know is var_dump().

It dumps the contents of a variable, so you can see it in your web browser, it’s simple to use for example:

var_dump($my_variable);

Then you can see what $my_variable contains. The data type and in the case of an array or an object. The structure will then be visible.
You will then know how to access the fields within the array / object.

Although I’m far from a newbie, var_dump() is an ever useful function. Use it to determine the value of variables and debugging your code.

var_dump() is your friend in many scenarios, remember it and use it while developing.

Example usage, if you want to see all the variables in a GET or POST request:

var_dump($_POST);
var_dump($_GET);

To all the variables in the SERVER global variable:

var_dump($_SERVER);

To check what’s stored in the session:

var_dump($_SESSION);

Still using the old MySQL driver? What you need to know about MySQLi…

Its time to upgrade from the PHP MySQL extension

The PHP MySQL extension was deprecated in PHP 5.5.0!

You should upgrade your code to use MySQLi at least, even better would be upgrading to PDO.

This post about selecting data uses PDO and has the full source code available for you.

But back to MySQLi

The “i” in mysqli stands for IMPROVED, its not only new it’s improved too.

If you are still using the plain old mysql driver you should check to see if you can use mysqli.

All you need is PHP 5.4 or greater and add that “i”!

Once you get to PHP 5.5 or above mysql will no longer be supported.

Your queries will run faster, be more efficient and you can make use of more great features like prepared statements and it’s object oriented interface.

If you are using a PHP framework like CodeIgniter, switching should be a breeze, you just need to add the “i”.

For example you might have this in your code:

<?php
$db['default']['dbdriver'] = 'mysqli';
?>

If you aren’t using a framework, please consider upgrading your code, depending on your hosting company they might upgrade their PHP version without warning!

It has happened before!

Then you will need to be fixing and upgrading your code under pressure while your website is down!