Home » performance

Tag: performance

If money were not an issue

What would you do if you had an unlimited budget?

Answering this question is a very useful exercise to see what you could get for your online presence if you had an unlimited budget.

To make it easier to digest, I will divide this exploration into a couple of categories.

 

Performance

Load balancers – for high traffic websites – make sure your customers don’t have to wait around for your pages to load.

Performance Optimization – when you need to shave off every millisecond – load speed affects conversions, making sense to have software that is as fast as possible. Performance optimization is very broad and includes items like code optimization, caching, content delivery networks, and load balancers.

Accelerated Mobile Pages – important if you care about SEO and traffic that Google sends your way. They provide a significant speed improvement, and with fast loading times, conversions also increase. This optimization works best for publishers and less for eCommerce sites.

 

Marketing and User Experience (UX)

Sales Funnels – use automatic email series to keep the conversation going with your prospects. And with conditional logic, you can tailor this conversation for each individual, so they don’t have to read through the material that is not relevant to them.

Chatbot and chat agent – leverage the power of AI to answer common questions for your visitors and customers. This bot, however, will not replace good support staff that can connect with the person on the other line. But it will offload some of the frequent questions.

Affiliate Program – selling is the most challenging process in a company, but it’s the only one that generates revenue. An affiliate program is a straightforward way to recruit a sales force that will work for you.

Correct Metadata – use the correct Metadata for your pages, making it easier to share content around social media and various content aggregators. Your content will not be noticed when placed next to someone doing a fantastic job with their meta tags if you ignore this.

Conversion tracking – if you do not set up goals and do not track how well they are doing, you will have no way of knowing what works. Every new decision will be a “wild guess” instead of an informed one. You can set up tracking using tools like Google Analytics, Facebook pixel, and in-house software.

Email Deliverability – you can be the best copywriter in the world. It will not help you if your users never get your email. Choose a good delivery service and configure things like DKIM and SPF correctly.

Advanced SEO – most modern publishing tools have built-in SEO helpers, but in some cases, more advanced tactics are needed to get that ranking you are looking for.

A/B Testing – it is best to make a decision based on your audience’s real data when possible. A/B testing helps you fine-tune your design and messaging for better conversions.

The user journey – how do people use your product or service? What can you improve that experience? The user journey experience can help you fine-tune the user experience, increasing both conversions and customer satisfaction.

 

Branding and Design

Intuitive Search – for content-heavy websites, like community forums, course libraries, and educational websites, a powerful search engine makes the difference between high engagement or content lost in inaccessible parts of your site. Most public websites rely on Google search to solve this issue for them, but what do you do if your content is private, behind a paywall? The tool to use here is Elastic Search.

Accessibility – make sure that people with disabilities can use your services. It’s not only a legal requirement in some countries, but it is also the right thing to do.

Companion App for iOS and Android – a companion app, if done right, can unlock new ways to interact with your customers and add value to them. Sometimes this is just a mobile site packed as an app. Still, a better experience is to take advantage of the many sensors on portable devices and create a unique and valuable experience.

Streamlined Checkout – don’t ask for a ton of information if all you need is an email address to deliver the digital products. There will be plenty of opportunities to collect other details later on. A streamlined checkout experience can significantly reduce the shopping cart abandonment rate.

Mobile Optimization – this term is a bit of a misnomer since you should think “mobile-first” and optimize for desktop later. But I am adding this here just in case it is not clear to you that more than half of traffic comes from mobile. Also, mobile does not mean only “small screens.” It means access to a camera, sensors, and information that you can use to create an experience that would not be possible on a desktop.

Style Guides – use style guides to ensure your look stays consistent across channels in interactions with your customers.

 

Insurance (backup and testing)

Testing – tests provide no direct benefit to either your customers or you, the website owner. Because of that, they are easily overlooked or done wrong. A broken or buggy process can cost you a fortune in lost revenue. Do your tests, and do them right. Follow this advice, and you don’t have to hope it will work; you know it will work.

  • Automated end-to-end tests – Don’t wait for a visitor to take the time to report a problem. Instead, have automated scripts that test the business-critical processes daily and immediately notify you when something breaks.
  • Stress tests – The fact that your home page feels snappy when you are the only one using it does not mean much. How will your infrastructure handle a spike in traffic? Especially in situations where you know a marketing promo will hit? Do you have auto-scale enabled? How far up should you scale? Stress tests can surface problems that only show up in high traffic situations, and they will also give you numbers you can work with when choosing the server specifications. High traffic can potentially mean lots of conversions. But it can also mean zero conversions if your server keeps crashing. That’s both revenue lost and marketing money wasted on a campaign that went nowhere.
  • Penetration tests – A good-looking snappy page is not necessarily secure. A security audit and penetration tests allow you to discover security holes and fix them before a bad actor abuses them.

GDPR compliance – obey the law. It’s cheaper than paying fines. And with a clear design, it does not have to look bad.

Resilient Design – with progressive enhancements – this is a way to future proof your web application by assuming that new technologies will emerge, so you plan to support those while not abandoning your old customer base.

Automated Backups – are the best insurance policy against data loss and security vulnerabilities. They need to be automated, so you don’t forget. And you need to test them to make sure they work.

 

Integration and Automation

Data import, export, and migration – having this in place helps you avoid lock-ins with a particular technology and provider. And it also opens up many integration possibilities with third-party tools. Being flexible makes you resilient.

Interoperability – how well do you play with others? Publishing clear and useful APIs can help increase the adoption of your service. It also increases the chance of your services being integrated and creating value in a way that you cannot foresee right now. Add artificial intelligence to the mix, and it can get exciting.

Automated email processing – for things like creating a support ticket for each email sent to a support address. Or use it for triggering processes in automated processes or for publishing content from your phone.

Support Ticket System – responding to support via email and not using a system is comfortable and easy but will hurt you in the long run. It will be impossible to track what was said to whom, and issues will fall through the cracks. Also, customers expect a premium brand to have a professional support system.

Single Sign-On – is a way to allow your users to log in once and then get access to all the relevant applications. When a visitor can signup with Google or Facebook, it reduces the friction of taking action, and it offloads the concern of storing a password to the identity provider. But be careful though, make sure your users can still log in even if they lose access to their email and that you own your audience, not the identity provider.

Administrative Dashboards – are dedicated applications or pages that will give you an overview of how your website performs. How are your metrics doing, and what are the outstanding issues.

RSS Feed – a free way to make your content discoverable and accessible for anyone interested. I believe this is an undervalued and underused feature. It allows your readers to stay in direct touch with you, and you don’t have to pay for a newsletter service or boost your posts. RSS is the readers’ equivalent for podcasts (and they use, in fact, the same technology).

Web Push – the ability to send web notifications to your users, even if they have closed your website. It is still new, and it still has impressive conversion rates. (At the moment, it only works on desktop browsers and Android). Don’t be spammy, though, as the users can block them with a click, and getting unblocked is not very easy.

Scheduled tasks – send daily reports, check website integrity, run maintenance tasks. Anything that you find yourself regularly doing should be programmed in as a scheduled task, especially backups. You can use cron jobs or an automation platform like Zapier for these.

Automatic content distribution – you don’t have to share your content on all the social media accounts manually. You can, and you should use tools that do this automatically.

 

Security

Security Audit – a security audit can help uncover problems that can only be discovered by looking at your code and software, and hardware architecture. This audit becomes crucial if you deal with very sensitive data, and a breach would cost you more than having regular security audits and penetration testing.

Spiritual Software Engineer

Improve your website performance by separating concerns

The problem

I have a slow WordPress site that will resist all optimization attempts.

What is the most common advice you get for speeding up a WordPress site? 

  • remove unused plugins
  • update all the software
  • use the latest version of PHP 7
  • install a caching plugin

This list is all good advice and things to reach for first, but what do you do when your WordPress install still takes 13 seconds to load a page, even after all the optimization is done?

In my case, the problem was that the website was trying to do too many things. And the optimizations above did not help much. 

Here is what I mean:

  • the website had multi-language support
  • contact forms done with Contact Form 7
  • subscribe popups using NinjaPopus
  • animated sliders on the homepage
  • hundreds of blog posts
  • a WooCommerce store 

Because of how WordPress works, all items were loaded, regardless of the page you were looking at. The multi-language setup was not working well with the caching system. And I could not uninstall any of the plugins because all of them were needed somewhere. WordPress does not do selective plugin loading.

It drove me crazy that I would need to wait 13 seconds to open up a blog post that would request hundreds of resources (CSS and JS) that it did not need. It was a page with one image and some text but a truckload of “invisible add-ons.” This page should load in milliseconds!

Some have suggested writing yet another plugin to remove the unnecessary scripts from the pages that don’t use them. I understand how that would improve the loading time, but on principle, I don’t want to have code that adds stuff, so then I can immediately remove it a few microseconds later. That’s just bad practice

I came up with the solution to split the site into two: one for the simple blog and one for the store. I also dropped multi-language support. 

The Pros

  1. The blog is made up of static pages – so you can deploy very effective and aggressive caching.
  2. I could also split the plugins – there was no need for the blog to load all the WooCommerce code.
  3. The store site could focus better on selling and keeping the buying experience smooth. 
  4. The improvement in performance was dramatic, as I could now optimize each part independently, without conflicts
  5. A bonus side effect is that I can now work on the blog and not worry that the store will be affected and vice-versa.

The Cons

  1. There are now two websites to maintain and think about.
  2. They need to look the same in design, so they feel part of a whole.
  3. The search function is now limited – it either returns post or products – depending on where you are using it.
  4. Tracking the user activity is more complicated.
  5. Adding multi-language support means adding a new site for each language – which does not make business sense right now.

There is an obvious trade-off here. There are more pieces to take care of, but you get to optimize each one individually and fine-tune them for their specific purpose. 

In Conclusion 

If the common performance tunning is not doing much for you, maybe the structure you have is too complex, and your website would benefit from being spit up into smaller but more effective pieces. Of course, this effort only makes sense if having fast loading pages is essential to your business. 

Meetings – as a display of power

Why yet another writing about meetings? Because it is an old habit that needs to change. And because it is so old, we need to challenge it strongly and repeatedly to defeat the inertia.

Most people go to meetings because they feel they have to, not because they want to or need to. 

When there is no engagement, the meeting becomes a waste of time and a show of status (“who’s who”).

If you are the meeting organizer, you may care a lot about your project or your idea or about getting feedback. But not everyone in the meeting cares about the same things that you do. And if all you can see around you are bored people who would rather be someplace else, what can you do differently? (assuming that you care)

You could change the meeting duration from one hour to 10 minutes! No more room for fluff, for checking the phone, or for being late. And above all, you show respect to the other participants forced to spend their time with you.

You could also simply cancel the meeting. Do you need to send an update? There is email; there is slack; there is the phone. Do you need feedback? You can use online surveys or schedule one-on-one interviews in cases where you need to go deeper. 

Above all, seek and measure engagement. If people around you are not engaged, everything moves in slow motion, and you are also missing on a ton of creativity that has no room to be expressed. 

If you are meeting participantwhat would happen if you didn’t go? Would the project miss a critical piece of insight, or would “people upstairs get upset”? If it’s just people getting upset for you being honest about not having anything of value to contribute, then maybe you need to bring this up. Challenge the reason you have been invited to the meeting and make sure you need to be there. If you know your input is valued and sought after, you will be more likely to be engaged. But if you feel like a replaceable cog in the system, then you won’t be missed. 

Another thing you can do is start a discussion about meetings around the office. Are they effective? And how do you measure that effectiveness? If there is little engagement, what can you change to have more of it? What would happen if you canceled the meeting? What is the difference between synchronous communication (phone and meetings) and asynchronous (Slack, email, voice messages)

With new technology, we can do better. Show respect and seek engagement, not a display of power.

How do you think meetings should change in the new environment? Who are meetings for, and what are they for?

One path is to do the bare minimum

Your boss does not appreciate you, or is there a glass ceiling in your company or your department? Or are your clients always trying to pay less?

The solution? One is to do the bare minimum required not to get fired. Or, if you work for clients, do the bare minimum to meet spec. That’s an effective use of your time, right? 

Except, it isn’t. 

It is a race to the bottom. And eventually, you will win. 

You cannot control what your boss thinks of you. Or how the company is structured. Or how your clients see your work. 

That leaves you with the only thing you can control: your attitude. 

Doing the bare minimum, just getting by, it is a victim attitude. It is a way for you to get “revenge” on the outside circumstances that don’t reward you. 

So what is the alternative? 

The alternative is to choose to grow. To choose to be focused, to do outstanding work, work that you are proud of, and you would happily brag about at your next job interview or in the sales call with your prospects. 

Will your current boss suddenly appreciate you? 

I would say that is the wrong question. Yes, we do crave appreciation and being seen for what we are, but it starts with yourself. Appreciate yourself first. And one way to do that is to create yourself every day in the person you want to be, regardless of how those around you see you. As you get better at this, you will think differently, you will see new opportunities, you will have the energy to act on them, and your circumstances will change. 

Stay focused

All the productivity gurus and spiritual gurus talk about the power of being focused. And for a good reason. Scrolling through your social media feed scatters your mind. Juggling too many projects increase the task-switching costs. Chasing too many topics does not allow you to go deep on any of them. 

Create the discipline of staying focused. Even if you don’t like your current job, stay focused. It builds a skill that will be priceless in all areas of your life. 

Staying focused also means choosing not to indulge in fear and doubt and worry. Choose courageous thoughts; choose creative thoughts. 

A side note about becoming a martyr 

That is not what I am suggesting in this article. I am not talking about self-sacrifice; instead, I am suggesting getting out of self-pity and allowing outside circumstances to determine your inner feelings and how you show up in the world. 

Ask powerful questions like:

  • what is needed from me at this moment?
  • how can I help in this situation?
  • whom can I connect? 
  • how can I better at this?
  • what is truly important now? 
  • how can I be generous today?
  • is what I am doing, and thinking serve my short and long-term goals? 

Automation with Zapier

What do you value most? I hope that your answer is: “TIME.” 

Time is our most valuable resource because it is non-renewable. Wasted time is lost forever. And it could be argued that the reason we work so hard is to have enough resources. Resources that will allow us to spend more time doing the activities that we enjoy: activities like following your dreams, working on your business, spending more time with friends and family. 

I don’t know of any better time-saver in the online environment than automation.

Automation means to identify and formalize processes for the flows that make your business work and then use various tools to set them on “automatic.” This way, they can work even when you are not paying attention. It is like having an employee that is almost free and never sleeps or rests. 

In today’s world, the leading tool for automation online is Zapier

The idea behind Zapier is quite simple and yet profound because of the market they are speaking to. 

What happens is that in the online world of business, you have your website, your store, your payment gateway, customer engagement, webinar, emails, and so on. All these components need to talk to each other. What used to happen before, is that you, as the business owner would have to create and manually maintain this communication, usually based on email notifications you would get from various systems. 

The alternative was to hire someone to do it for you or hire a developer to write a custom program that would automate these processes. Both options could get pretty expensive.

There has been a shift in the past few years. Each of these services exposes an API. This API allows them to talk to each other in a clear and standardized way. With this option available, you would need somebody to integrate these APIs. To connect them in ways that make sense for your business. 

Here in comes Zapier! The beauty of it is that they have put together a platform that allows non-developers to visually express their processes and to connect all these components in a way that makes sense. This flow is testable (which is very important, you want to make sure that your automation works as intended), and you have analytics and an overview of what is happening.

There is a free tier for Zapier, but I want to get into the paid one because I think that is where the power is. You may shy away from paying them the monthly fee. So let’s explore that a bit. 

The way to think about choosing a paid plan is to make a business decision. Would paying Zapier a monthly free enough time and generate enough sales to cover for the costs and then some?

If you get their $20/mo plan, you need to only generate an extra $20/mo in sales for this option to make sense to you. But not only that. Also, consider the free time you now have to do something else, and how much you value that. Consider the money you would spend on a developer to set this up for you and then have it maintained. (By the way, I am not an affiliate for Zapier, I am just using them as an example to talk about automation)

In conclusion, we live in exciting times, where with a bit of patience and thinking through your processes, you can build your website and connect the required components with no need for a developer if you use a tool like Zapier. And this excites me because it enables even more people to express their creativity cost-effectively!

If you are reading this and you are a developer, then seriously consider exposing and API for your services and products and have them seamlessly integrate with Zapier. 

Using Visual Builders for your website

I used to hate visual builders!

They looked great on the demo page, but as soon as you would like to do something somewhat different and custom, you would end up fighting with all the constraints put in place.

Because of this issue, I would almost always design my pages from scratch in HTML code and CSS style. Oh, the power and flexibility!

In recent projects, I have been forced to use visual builders because the end client wanted to be able to update the design themselves later on. They insisted that it had to be easy, so I had to go the visual builder way.

What I have learned is that the builders have come a long way since I have first looked at them, and they offer great flexibility within the constraints of their design.

And the constraints are a good thing. It keeps your look consistent and makes it a breeze to create layouts for various screen sizes. That is always a big challenge when writing code from scratch without any design system in place that limits your choices but maximizes compatibility.

The Builder I like the most so far is the one that comes with DIVI, the WordPress theme. Once you get to know it, you can build exciting layouts pretty fast.

There is a problem I have with it, though. That is performance. And sometimes, the output code seems to be unnecessarily complicated, making the size of your page bigger than it needs to be.

So there is always a trade-off.

How do I choose between one or another?

For large projects, I prefer to create my custom template and design systems for the performance and flexibility benefits.

And for smaller projects, I will use DIVI or something similar to create the design faster and visually.

We go back to the saying: use the right tool for the job 🙂

Event-Based Programming

After you work long enough on software projects, it will become self-evident why complexity is your enemy. Pieces of code that are highly dependent on each other will result in a maintenance nightmare. You cannot change or upgrade anything without risking to break the different parts that are tightly connected to it. 

The solution I have found that works best is “Event-Based Programming.” I did not invent it; it has been around for a long time. I discovered that adopting this pattern has made maintenance much more straightforward. 

In a nutshell, your program is no longer a collection of functions that call each other in an ever-increasing web of complexity. Instead, you have components that talk to each other by raising or listening to events. 

This breakdown allows you to change each event generator or event listener individually, and as long as the event format does not change, you don’t risk a break down in communication. 

An event generator will say: “Hey, something interesting has happened, and here are the details.” And it does not care what happens with that announcement. It could be that nobody cares, or it could be that many will take action on that event. 

An event listener, on the other hand, does not care how an event was generated. As long as something interesting happens, it will act on it. 

This decoupling makes debugging super easy too! Because you can test components independently by merely looking at the kind of “chatter” they generate. 

If you’re reluctant to adopt “events” in your codebase, now it’s time to make the jump.

The Importance of Architecture and following best practices

As a young programmer, I was eager to dive in and get my fingers dirty as quickly as possible—no need for a plan or a direction. I knew I could figure it out as I went.

Fast forward some years, add higher project complexity over a more extended period, and the lesson became clear: sometimes if you want to run for long, you need to run slower and have a plan!

Figuring it out as I went worked fine for one-day projects or one-week prototypes. But when bigger projects came my way, I got to a point where I could not remember anymore what my initial think was, where was I headed and why, and how to present my idea to new members on the team.

Although nobody likes to write documentation, I began to make a habit out of it, and I knew it would come a day when I will thank myself! By now that day has happened many times 🙂

What would I tell my younger self?

Writing docs and making plans is not sexy, and in general, your clients do not care for them. They need working software, not documentation. But if the project is longer than six months, a few problems will begin to crop up:

– you forget why you took the decisions you made with the initial design

– if you will need to refactor your code, and if it is not well documented (and if it lacks automated testing) the job of refactoring will take a long time, and you run a high risk of breaking functionality

– by using best practices, you future proof your code – you make sure that you at least don’t make the same mistakes that others made before you. You will make new ones, for sure, but your overall code will be much more stable, easier to maintain, and upgrade.

In conclusion, there is a time to be quick and messy (when you are prototyping), but then you need to slow down and think things through.

CakePHP and WordPress

I’m not too fond of WordPress and yet…

Most of the websites I have built are using WordPress.

The reason I am using it is simple: The final customer enjoys the ease of use that WordPress provides. It empowers them to maintain the content of the website and (to an extent) manage the website themselves.

WordPress is excellent for what it was built for: a blogging platform. As soon as you begin to “add on” to it and make it into a complex web-application, things break down in terms of performance, stability, and security. It pains me to see how every plugin is downloading its own set of libraries and code, creating an app, with-in an app, with-in an app.

This problem shows up because each plugin developer has to make sure that all the code they need is there, and they don’t know if you have it from other plugins. So the code base gets fatter and fatter with duplicate code, and the website gets slower and slower.

Maybe in the future, the core of WordPress will be re-written from scratch to address these issues and to have a shared library folder or use some dependency manager (like composer).

In contrast, for the more complex web applications, I have been using CakePHP. The reason: I love Cake, and I like PHP!

Joking aside, CakePHP is a framework that allows rapid application development using modern design and technologies. Because it is a framework and not a full app (like WordPress), there is much flexibility on how you want to do things, what libraries you want to use, how do you want to integrate it with the rest of the world, and so on. This approach makes for much cleaner logic and code and better performance.

The downside is two-fold:

First, the customer needs a tech person to maintain a CakePHP app. There are no simple “update everything” buttons.

Second, for better or worse, you lose the considerable plugin ecosystem that WordPress has to offer. And some plugins are super useful, like Yoast SEO.

The Best of Both Worlds

(no, this is not about the Star Trek episode)

What I have ended up doing in some cases is to have a CakePHP app developed alongside the WordPress app for the clients that agree to have me as their tech person. This setup allows them to use WordPress for more frequent and simple tasks and enables me to deploy the power of CakePHP to manage automation, monitoring, and reporting for their business. Win-win!

Case Study

For a big WordPress site where things needed not to break down, and that specific metrics are met every month, I have developed a custom CakePHP app to monitor the WordPress site. It would generate charts and analytics for sales, visits, engagement, and other metrics. It would issue alerts when needed and generate reports daily, and monthly that would make it easier to diagnose any potential problems.

Yes, everything could have been written in WordPress as a plugin, but that would have meant making a fat code base even fatter, and it would have linked the two very tightly. Having a separate application allows me to update them separately, and if one stops working, it does not upset the other. A side benefit that I got, later on, was that the same app could link into other WordPress (or Joomla!) powered website for aggregate data reporting.

If you have the skill or the resources to hire the skill, it may be worth considering creating your custom development in CakePHP instead of WordPress.

If you’re interested in the technical details, leave a comment, so I know to write about it.

Looking to learn more about CakePHP?

Michael from Toptal wrote an excellent review of CakePHP 3.x, and it only gets better with CakePHP 4.x. And if you’re starting from scratch, you may want to look into Laravel first. I am an “old-timer” when comes to CakePHP, but I see how some of the decisions at Laravel feel more modern and are a good choice for more complex apps.

How much cheaper is an expensive freelancer?

There are two types of readers that this article is for.

1) you are already considering hiring a freelancer, but you are still on the fence about it, and you hope this information will help you decide.

2) you are a freelancer looking for a way to position yourself in front of potential clients.

The short answer to the question in the title is that if you had the time and the skill, you would do it yourself. It would save you money, and you would not have to deal with communication issues. 

But here you are. And this means that either you lack the skill, or more likely, you lack the time. If you had enough time, you could acquire the skill and deliver before the deadline. 

The right freelancer will save you both time and money. 

You will save time in two ways: you don’t have to wait until you build the skills, and you can do other work while the freelancer does theirs. 

Saving money is not always that obvious. I can best illustrate it with a story. 

A couple of years ago, someone reached to me to help them with their site. After the initial discussion, I estimated that the project would cost them around $3k. 

They respectfully told me that it was too much for what they wanted to do, and we parted ways friends.

Fast forward four or so years, and I hear again from this person. They were desperate now. They had spent over $15k hiring help, and their site was still not working. 

Paying $3k to someone you trust looked like a bargain right now. 

Part of it was my mistake for not knowing at the time how to explain the value they were getting. 

And this brings me to another point: the price of hiring a freelancer is not the same as the cost of hiring them. A lousy experience means you need to hire someone new. That means more money spent and more time lost having your work redone. A good experience means you get it right from the start, and you recoup the money quickly from your working website. So which experience ends up costing you more? And what if you consider the cost that is not financial. Like a stressful relationship vs. smooth sales. 

And of course, this begs the question: how do I know if this freelancer is the right one for me? Is expensive, necessarily better or cheap, necessarily bad? 

Let’s deal with cheap/expensive first. Indeed there is no guarantee that expensive means better or even the right choice. But let’s look from the viewpoint of risk. Why would a freelancer charge you less money than another? It could be for a variety of reasons:

  • they desperately need the job;
  • they are new on the market, so they need to earn trust and build experience;
  • they self-evaluate their own ability to deliver as lower than other freelancers;
  • they have turn-key solution ready for you, so their cost is nearly zero;

It is a gamble. They could be outstanding but out of work and needing a job right now. (But this would beg the question, if they are so good why do they have trouble finding work). Or they have a turn-key solution ready to deliver. The catch here is to make sure that this “ready-made” solution actually fits your custom needs, or you would be left trying to fit a round peg into a high-quality and cheap square hole. Can you afford to take this risk?

With a more expensive freelancer, they could be bluffing, but they could also invest in themselves and have better training and a better experience. They could deliver the work with higher quality, faster, and with a lower risk for having to redo it again with someone else. 

Now back to: “how do I know if this freelancer is the right one for me?” 

It comes down to trust. What have they done that they can show you to prove their experience? What have they created and put out? Who is talking about them? How did you find them? Has anyone you know recommended them? 

My argument is that if you trust them, if they come with recommendations, and if you can see past work from them that is in line with what you want to build, then it makes sense to pay a premium now and have the peace of mind that comes with lower risk.

Choose wisely. 🙂