My Third Year Of Freelancing
Tags: career, webdev
Published: 2020-06-08 11:35:28

It is time for another yearly overview of my freelancing career: the third year.

You could read the report on my [first] and [second] year, too.

## Clients

During the last year, I have been working with four clients on multiple projects. The clients contacted me via:

- [Toptal],
- recommendations, and
- my website.

All clients but one had more than one project where they needed my expertise.

Only one client came from Europe, Germany, while others came from the United States. I have a continuous agreement with all my clients. Some clients need my services more often, some only a few times a year. The important thing is that my schedule is almost always full, with very few windows opened for new opportunities.

## Tasks and Assignments

The tasks for the last year could be summarized in two main categories:

- user interface development, and
- page speed optimizations.

User interface development assumes the following tasks:

- building and maintaining styleguides,
- developing reusable components,
- creating layouts and templates,
- converting designs to pages, and
- creating user interface animations.

Page speed optimizations assume the following tasks:

- optimizing CSS delivery by extracting Critical CSS and purifying the unused CSS code,
- optimizing JavaScript delivery by deferring and optimizing the JavaScript code,
- minifying the code, including HTML, CSS and JavaScript,
- optimizing and compressing images,
- optimizing font delivery, and
- improving scores by applying the best practices.

I realized that I don’t have a preference for technology stack. I have been working on the following stacks:

- WordPress/WPengine,
- Shopify,
- Jekyll/Netlify/Netlify CMS, and
- Hugo/Netlify/Netlify CMS.

If the project is frontend related, I am quite positive I could work on it as long as it is not a JavaScript-heavy application.

## Side Projects

Last year I published two side projects:

- Code Line Daily, and
- The UI Development Mentoring Program.

[Code Line Daily] is a website dedicated to a single line of code that produces stunning results. The lines are mostly PHP, JavaScript, CSS, and HTML code. It is also available as a [Chrome extension], and it has an open API, which I used to develop a small widget on my [homepage].

> As I am getting older, I appreciate the time away from the computer more, and I am trying to work on side projects only during my “office time”.

[The UI Development Mentoring Program] is a new initiative in which I am trying to help beginners to get better in UI development. Besides the mentoring part, you could find other useful sources on the site, like [learning resources] and [daily reads]. You could [subscribe to the newsletter], too. The newsletter contains hand-picked frontend and UI articles and tools.

I am still maintaining my other projects like [Starter Project] and [Starter Project CLI]. I am utilizing these to make development easier for myself on both client’s and personal projects, no matter which platform is in use.

Working on side projects is like a hobby for me. I like to get away from the client’s projects and play around with my projects instead. As I am getting older, I appreciate the time away from the computer more, and I am trying to work on side projects only during my “office time”.

## Remote working

Having multiple clients at the same time could often involve difficulties with time management and organization. It is essential to organize your time, but there is one other critical aspect: *communication*.


Whenever I start a new engagement, I tend to communicate the preferred way of working on a project. It is vital to establish trust from the very beginning. That way, my clients know all about my working habits and my preferred method of working.

For example, I like to establish an agreement that all tasks will be resolved within 24 hours period. If I am blocked within that time, I usually send my client an email or a message announcing what is blocking me—that way, the client respects my time and could plan tasks according to my schedule.

> It is vital to establish trust from the very beginning. That way, my clients know all about my working habits and my preferred method of working.

Another example of honest communication is when one client decides to do a significant update or a whole new project. In that case, I inform all other clients that my availability will be decreased for that period. That is often communicated at least a couple of weeks in advance. Again, other clients usually respect my availability and plan the tasks accordingly.

I never hide the fact that I am working with other clients. I am always very open, and all my clients respect that. If I have a problem or concern, I usually communicate it very early because I want to resolve it sooner rather than later.

## Problems

During the last year, I got a significant amount of job offers, and I rejected a lot of them. Some proposals came via professional networks like [LinkedIn], and some came directly from my site.

There are two significant reasons for rejecting an offer:

- uneducated recruiters who don’t understand my profile and skillset,
- client disagreement.

The first reason lies in the fact that recruiters are not adequately educated about [the Great (Frontend) Divide]. I understand that React is a hot requirement these days and everybody works with it, but I don’t.

I don’t:

- develop applications,
- use React,
- use TypeScript, or
- think React nor TypeScript should on every job posting.

I do:

- develop websites,
- use Vanilla JavaScript, and
- think React is overused.

> I like to think that I am fair, and I give every client a chance to convince me why I should work on their project.

The other reason why I reject proposals is that the client and I are not fit. Here are the most common reasons:

- I am not too fond of the project, and
- I am not too fond of the client.

Here is the example of the project I am not too fond of: optimize WordPress site built with page builders.

Here is the example of the client I am not too fond of: could you make a landing page within one day.

Other reasons are mostly disagreements about the rate or estimation.

I like to think that I am fair, and I give every client a chance to convince me why I should work on their project. The problem emerges when the client feels the other way around—that I should persuade him/her to work on their project. When this happens, I know the communication would be the problem, so I avoid these clients.

## Conclusion

My third year of freelancing is undoubtedly the most successful one. With my family expanded by a new member, I managed to dedicate my time to work on high-quality projects like [Westwing], [Credit Card Insider], [Huggable] and [Domino Data Lab]. All thanks to honest and open communication, quality time management and support from my family.

[first]: https://www.silvestar.codes/articles/my-first-year-of-freelancing/
[second]: https://www.silvestar.codes/articles/my-second-year-of-freelancing/
[Toptal]: https://www.toptal.com/#trust-nothing-but-brilliant-freelancers
[Code Line Daily]: https://cld.silvestar.codes/
[Chrome extension]: https://chrome.google.com/webstore/detail/code-line-daily/jfgojeolhopchbgfdgodicnaimmkbpbg
[homepage]: https://www.silvestar.codes/
[The UI Development Mentoring Program]: https://mentor.silvestar.codes/
[learning resources]: https://mentor.silvestar.codes/resources
[daily reads]: https://mentor.silvestar.codes/reads
[subscribe to the newsletter]: https://mentor.silvestar.codes/reads#newsletter
[Starter Project]: https://www.npmjs.com/package/starter-project
[Starter Project CLI]: https://www.npmjs.com/package/starter-project-cli
[LinkedIn]: https://www.linkedin.com/in/starbist/
[the Great (Frontend) Divide]: https://css-tricks.com/the-great-divide/
[Westwing]: https://www.silvestar.codes/portfolio/westwing/
[Credit Card Insider]: https://www.silvestar.codes/portfolio/creditcardinsider/
[Huggable]: https://www.silvestar.codes/portfolio/huggable/
[Domino Data Lab]: https://www.silvestar.codes/portfolio/dominodatalab/