Category

Freelancing

What is an Infrastructure Automation Engineer?

Spoiler: It’s not a developer

So what are you exactly?

I’m a Infrastructure Automation Engineer (Or just Automation Engineer for short). I used to be a Linux Systems Administrator (And in many ways, that’s still what I am, the methods and title have simply changed).

At it’s core, the job of a Systems Administrator (and now Automation Engineers, Devops Engineers, etc) has always been to help ensure a system or application is online, secure, and performant.

Another name often used for the type of work I do is Devops Engineer. I don’t like using this title as Devops is a culture, not a role.

devops-explained-comic
Source: http://turnoff.us/geek/devops-explained/

So what is it you DO?

A lot of things.

My job is to support the dev team (and your business) in it’s mission to deliver a working product to the customer in the most efficient way possible.

Since that’s a bit broad, let’s give some examples of the sort of things I might do for your project and why they should be done.

  • Help you determine the infrastructure requirements are for your project. Determine needs and wants.
    • Why: You can’t design a system if you don’t understand the parameters that are actually important. Depending on the sort of project you have, the most important points may change. Maybe it’s High Availability and Scalability. Perhaps budget is the most important concern. Perhaps it’s a mixture of the above or something else entirely.
  • Architecting/Designing your infrastructure to meet the requirements.
    • Why: We want to meet the objectives and the architecture and design phase helps by understanding what systems and technologies are needed to reach that point in the most efficient way possible.
  • Implementing the architecture using IaC (Infrastructure as Code) tools like Terraform, Ansible, and Docker.
    • Why: IaC reduces errors during deployment/provisioning, is easily reproducible (For example similar code can be used to deploy dev, staging, and prod environments), can be held in version control systems (Like Git), and is overall much easier to review and change. This all helps save time, frustration, and most importantly, money.
  • Maintaining the system after it’s provisioned. Receiving and responding to monitoring alerts, making changes to the system when needed, etc.
    • Why: While the above tools do help drastically reduce the amount of time it takes to manage your infrastructure, occasionally changes must be made. Maybe you need some additional monitoring added, a system image changed, or the deployment process was modified slightly. I can help with this.
  • Help increase your developer efficiency and lead times by implementing a CI/CD(Continuous Integration, Continuous Deployment) system such as Jenkins, TravisCI, CodeDeploy, or similar.
    • Why: Dev time is expensive. Deployment is error prone. The time between writing code and it reaching production can be far too long. Implementing CI/CD allows this code to be quickly (and easily) tested and deployed. This means your customers end up with the features they need and keep buying/paying for your application.
  • Reviewing your current infrastructure for improvements.
    • Why: Maybe you had another administrator implement your system and you want someone else to take a look over it. I can help spot areas of improvement in scalability, security, or whatever other parameters you wish to cover.
  • Migrating existing infrastructure to cloud providers.
    • Why: You’re finally sold on the increased cost efficiency and scalability of AWS but you already have existing infrastructure on traditional bare metal servers or VPSs. I can help review your application and design a plan to migrate the application to AWS (or another provider) with little or no downtime.
  • Perform cost analysis/reduction (Especially on cloud providers like AWS).
    • Why: You have a lot of infrastructure and you’re spending a lot of money but you don’t know what exactly that money is being spent on or if it’s even necessary. I can help by reviewing the existing infrastructure to locate potential cost savings and then implement the required changes to realize them. I can also help implement practices that will aid cost estimation in the future.

The above is a short list of the sort of things I do which themselves encompass a great deal more work.

The general idea being that I (and other Automation Engineers) handle just about everything that isn’t coding or designing the application itself.

What don’t you do?

As important as the things I do are the things I don’t.

While I don’t personally handle these things, I am happy to help source this talent for you.

  1. I won’t create your website or application.
    1. This is a job for a developer (Frontend, backend, systems, etc).
  2. I won’t create logos or UI designs
    1. This is a job for a graphic designer or UI/UX design expert.

So why should I hire you?

So you need help with some of the above tasks?

You should hire me because:

  1. I’ve been trusted with the infrastructure of everything from early stage startups to Fortune 500 companies.
  2. I have a consistent history of project success and customer satisfaction. My Upwork reviews and LinkedIn recommendations both clearly demonstrate this.
  3. I’m timely, professional, and honest. I’ve also been told I’m pretty easy to get along with. 🙂
  4. Companies generally have long term requirements for operations team members. I always look to build a lasting, mutually beneficial relationship with my clients.

I’m sold, let’s have a chat!

I’m glad my persuasion skills are on point!

You can easily schedule a no commitment 30 minute consult in the section below or by clicking the blue button at the bottom right of the website.

Look forward to working with you soon!

Freelancer Flow: Use RSS To Improve your Upwork Process

Or why you should automate the easy stuff

Today we’ll be going over how to configure an RSS Reader to easily aggregate Upwork job searches in an easy to read manner.

So what is RSS?

For those that aren’t familiar, RSS (Rich Site Summary) is a protocol that has been around for a long time (Since about 1999) intended to help aggregate content from various sources.

Despite it’s decrease in usage, RSS remains an invaluable tool for those who are trying to easily ingest a large amount of information from different sources.

Many of the websites you visit (Including Upwork!) support RSS feeds.

To utilize RSS you use a Feed Reader. The solution we’ll be going over in this article is a free SaaS solution called Feedly.

Feedly has a web application and mobile applications for both iOS and Android.

For those of you that prefer to use self hosted or native applications, there are numerous options out there (Many of them are FOSS).

Here is what my Feedly looks like:

picture-of-feedly-interface

You’ll notice I have a number of categories on the side for different subjects such as Work, News, and Gaming so I can easily review the content I care about at the time.

How does this help me?

Your current Upwork workflow for sourcing work probably looks something like this:

  1. Visit Upwork.com
  2. You either create a search from scratch or if you’re smart, you click on your saved searches (You do save your searches right!?)
  3. Go through Upworks slow loading and cumbersome interface for each of your searches
  4. Open all the relevant jobs as you go through the searches
  5. Write a proposal for each job.

The above is relatively inefficient, it requires you to go through their website and utilize their often slow interface. The interface for saving jobs for writing a proposal later is cumbersome.

It’s also easy to end up looking at the same jobs over and over.

Overall, it’s not an enjoyable process.

With Feedly your workflow will look something like this:

  1. You create searches on Upwork that match the jobs you want. You want to do this in a way that doesn’t have too many false positives or false negatives.
    1. I prefer to have a search for project based work and hourly work.
  2. You copy the RSS link from Upwork and add it to feedly
  3. You visit Feedly, click on the RSS feed you want to review.
  4. Open all the jobs you feel are relevant to you or  even save them for later review with the click of the button.
  5. When you’re through reviewing that days search, simply mark all as read.
  6. When you come back tomorrow you’ll have a fresh feed of jobs you haven’t reviewed. Just go back to step 3.

In my experience, the Feedly interface has been easier to work with, provides more features, is faster, and reduces the likelyhood that you keep seeing the same jobs over and over again (this can still be an issue if your searches are handled poorly.

You can also aggregate other content that matters to you, such as professional journals.

I’m sold, how do I set this up?

Just a few steps!

  1. Sign up for a free account at Feedly.
  2. In Upwork, configure the search to your liking. You can include or exclude certain words, narrow down by country, experience level, and more.
    1. Protip: 99% of the time, there is no point in including entry level jobs. This translates to “We’re going to pay someone $3 an hour for this”.
  3. After you configure your search, save it to a name of your liking. This will be what it appears in Feedly. You might want to use something like “Programming (Hourly)” or similar.

    upwork-save-search

  4. If you aren’t redirected, go back to the “Find Work” page on Upwork and click your the search link on the left.

  5. Click the small right circle on the right and select “RSS”.

  6. After clicking this link it will bring you to a page with some strange text. You’ll want to copy the URL in your address bar (NOT the strange text)

    The URL will look something like this: https://www.upwork.com/ab/feed/topics/rss?securityToken=TOKENHERE&userUid=USERIDISHERE&orgUid=ORGIDHERE&sort=local_jobs_on_top&topic=OTHERIDHERE

  7. Go back to Feedly. Click add content (Bottom left corner) and select “Publications and Blogs”.

  8. Paste the link you got in Section 6 into the box in the middle of the screen. A drop down will pop up with a single selection. Select this source and categorize it to your liking.

  9. You’re done! Now you can select the source you added on the left side and start finding work.

Closing

Hopefully this new workflow helps improve your ability to source work and ingest data quickly.

If you know of anyone that requires a Linux Systems Administrator or Automation Engineer to help with their infrastructure, I hope you won’t hesitate to send them my way.

Feel free to comment if you have any question!

Freelancer Flow Series: My Freelancing Toolbox

Transitioning from a permanent hire position to freelancing can be a stressful experience for even the boldest of people.

There is a laundry list of things to get done: Figuring out how much you’ll charge, sourcing work, closing contracts, invoicing, networking, tracking your time, and so much more.

Building a set of tools for handling your day to day tasks is an integral part of making a successful transition.

Everyone’s optimal workflow will be a bit different but these are the tools I’ve found are integral to my day to day operations.

The Tools

Calendly

What’s It’s For: Scheduling

For scheduling, Calendly really can’t be beat.

Calendly allows a client to visit an event link and block a period of time for a meeting. The timezone’s are all handled by Calendly which makes it easy to schedule with people across the world. For example, if the client is in EST it will show the calendar in their TZ and then convert it to your TZ when it’s added to your calendar.

It will also update your calendar when the event is booked (Google, Outlook, Office 365 or iCloud calendar supported).

There are tons of other useful features, like placing buttons on your website or setting up a branded link (like schedule.roberttisdale.com).

Cost: Free to $12 a month

If you only require a single event and don’t need to accept payments or other complex features, their free plan works great.

Their paid plans start at $10 a month, $8 a month if paid annually.

Hellosign

What It’s For: Digital Signing for Contracts

Faxing your contracts or signing them digitally in a PDF viewer is… very 1998.

Hellosign allows you to upload a PDF, tag the signature and date slots, and then send an email requesting that it’s signed digitally. Everything is handled in a few clicks on both sides for both the client and the the freelancer.

Cost: Free to $40 a month

Hellosign’s free plan allows you to sign 3 documents a month. If you require more features and documents, you can upgrade to their free plan for $15 a month ($13 a month if paid annually).

Nextiva

What It’s For: Business Phone Service

If you’re just starting off, you can likely get away with just using your personal phone.

I’ve found it looks more professional to have a work only phone for client calls.

I looked at a lot of different companies and of then, Nextiva offered the most useful features at a great price point. Their support was also pretty on point.

Cost: From $20 to $30 a month + fees

Nextiva doesn’t have a free plan but they’re pretty inexpensively priced anyway. You can probably get away with their cheapest offering.

Waveapps

What It’s For: Invoicing, Estimates, Accounting, tons more

Waves is a one stop shop for handling invoices, estimates, payroll, and basic accounting. You can easily generate an invoice and send it to your clients email to be paid with credit card or ACH (From supported banks)

Credit card transactions cost 2.9% + $0.30, ACH transactions cost only 1% with a $1 minimum fee. This is the same price as Paypal but with a ton of added features. ACH payments are even cheaper than Paypal.

I will admit there a few places it isn’t great, in particular recurring bills (Huge pain) and accounting features in general. I’ll likely pair this with a more full fledged accounting suite later (Would love to hear your suggestions in the comments!)

Cost: Aside from transaction fees, completely free!

Pretty difficult to beat considering it’s at worst the same cost as Paypal but with more features (And can even be cheaper if the client uses ACH!)

Toggl

What It’s For: Time tracking

It tracks your time: That’s it :).

I generally group my clients into their own category, with projects for each client, time is tagged as uninvoiced or invoiced (So I can properly invoice at the end of the week).

Cost: Free with paid plans

I haven’t yet found a need for their paid plans so can’t comment on them. The free plan has plenty of features and works pretty well.

Autohotkey (Windows) or Autokey (linux)

What It’s For: Text expansion

You likely type many of the same sentences a day. Greetings, information on what you do, signatures, phone numbers, and more.

Instead of having to handle all that manually, you can write a simple script that will convert a short keyword to far more text.

Something like “mynum” to your number, “calcon” to your Calendly link, or “mysig” to your signature.

This is a terrific time saver when you’re sending emails or proposals.

There are similar solutions for Mac/OSX.

Cost: Free

Free.Both Autohotkey and Autokey are FOSS (Free Open Source Software)

MDDHosting

What it’s for: Webhosting, email

You’ll need somewhere to host any website you have and somewhere to handle your email.

MDDHosting is my personal choice, though any shared host will do. You can also choose to host your website yourself, though there is almost certainly no need for it.

I chose MDDHosting because it’s a Non-EIG company, has reasonable support, and the pricing is not bad either.

Note: I have no affiliation with MDDHosting other than as a satisfied customer. The link above is a standard link, not an affiliate link.

Cost: Price varies. Starts at $2.25 a month.

Their most basic plan starts at $2.25 for a single domain with up to 5 MySQL databases.

They have a number of other plans if you require more capacity.

Closing

Hopefully this article helps build out the tools you require for a successful transition to freelancing.

If you or your client’s ever have a need for a Linux Sys Admin/Automation Engineer I hope you’ll keep me in mind!

 

 

Freelancer Flow Series: Pricing Your Services

Or Why I don’t accept $60 an hour and you shouldn’t either.

When I started freelancing I found myself asking how much I should be charging my clients (or more so, how much I should be paying myself) and I’ve seen many other freelancers asking the same questions.

I knew how much I was making as a W2 but how does this translate to being a 1099 worker?

After some poking around I’ve found that many freelancers vastly underpay themselves for their services.

There are many different ways to handle this equation but I’d like to share the solution that worked out for me.

I’ve found it best to calculate a “Minimum Pay Rate” (The absolute minimum you should accept for a role) and “Desired Pay Rate”.

Differences between W2 and 1099 workers

Let’s consider the differences between a W2 and a 1099 worker in regards to benefits and pay.

As a W2 worker

An employer often provides numerous benefits that are often unaccounted for.

  • Employer matching of Medicaid and Social Security taxes (Also called Payroll Taxes)
  • Sick leave
  • Vacation leave
  • Holiday leave.
  • Health/Dental/Vision benefits
  • Regularity of pay (You know that each month you’re making X amount of money at Y time)
  • 401k benefits

As a 1099 worker

  • You are responsible for your own expenses, accounting, time tracking, and more.
  • You are responsible for Self Employment tax, this is essentially the Payroll tax that was previously matched by an employer.
  •  A decent portion of your time is unbillable, meaning you are unable to charge them to a client. This includes learning new skills, writing proposals, and sourcing new work.

Math Time

So now that we understand some of the differences between a W2 and 1099 worker, let’s take a look at someone making $110,000 a year ($52.88 an hour) as a W2 employee (A reasonable salary for mid-level Devops/Automation work in the Austin area.).

Minimum Pay Rate

The first thing we’ll want to calculate is our “Minimum Pay Rate”.

Lucky for us, the nice folks over at Bankrate calculated that approximately 30% of your compensation as a W2 employee are benefits and employer paid taxes.

As a W2 employee, our hourly rate equates to $52.88 an hour. We calculate this based on 2080 hours a year since the benefits calculated by Bankrate includes leave time.

The first thing we’ll want to do is immediately add 30% to cover our benefits.

A big thanks to user “notimportant” over at Hackaday who helped me correct some mistakes in my math.

(benefits+pay)*0.7 = employee pay

Solving for this we know that:

benefits +pay = (pay)/.70

$53 an hour / .70 = $75.71 an hour

Right off the bat we are already looking at approximately $76 an hour or $156,000 a year to account for the lost benefits.

Now lets calculate the hours we have for work each year assuming we want a 2 week vacation, 1 week sick/I hate work days, and federal holidays (10 days).

2080 hours a year – (((2*5)+(1*5))+10)*8) = 1880 hours a year

Lets make a conservative estimate that only 80% of our hours are billable.

1880 * 0.80 = 1504 hours

This leaves us with 1504 hours to handle all our work.

$152,000 a year/1504 hours a year = ~$101 an hour

So to simply reach our previous salary of $110,000 a year we would need to charge approximately $101 an hour to account for our pay (and just as importantly) our benefits.

For this reason, you (generally) should not accept any less than $101 an hour for your services.

Exceptions might be made for clients that agree to give you a minimum amount of billable hours over a set period of time (30 hours over a year long period) or in cases where you’re willing to accept a pay cut for work (For example $100,000 a year has a minimum rate of approximately $92 an hour)

Desired Pay Rate

We’ve now calculated our Minimum Pay Rate but if we just wanted to make the same amount as before, why bother becoming a freelancer at all? We’re business people dammit!

Since we’re business people, lets assume that we’d like to make a healthy 12% profit over what we were making as a W2 employee.

Let’s multiply our Minimum Pay Rate of $101 an hour by our desired profit margin.

$101 an hour * 1.12 =  ~$113 an hour

That gives us approximately $113 an hour for our Desired Pay Rate. 

If you can charge more? Go for it! You’re a business, you should think like any other business. Optimize for what your customers can pay.

What about Project Based Pricing?

Some freelancers/consultants prefer (and HIGHLY suggest) utilizing project based pricing or value based pricing instead of hourly pricing.

If you’re able to effectively scope the project and perform the work quickly this is a great way to balloon your effective hourly rate.

Many different people have written on the subject.

My thoughts (From the perspective of a Devops/Automation guy) is to work on some hourly projects to get an idea of the time required and then move to value based or project based pricing once I build up a tool set and better understand scope.

A Note On Taxes

It’s important to remember that even though you may bring in approximately  $172,000 a year assuming you can bill all 1504 hours at your Desired Pay Rate that anywhere between 25%-30% of this is taxes (Uncle Sam has to get his cut).

It’s important to save 30% of each paycheck as you must pay quarterly taxes!

Failure to pay these quarterly taxes can result in a pretty stiff penalty from the IRS.

You can see how to calculate your estimated penalties here under the section titled “Simple Method”.

Our $172,000 a year would give us a tax burden of approximately $57000 a year.

The BEST tax calculator I’ve found for Freelancers is by H & R Block.

You can find it here.

It will calculate your Self Employment Tax + Income Tax along with any expenses.

Conclusion

In short, a lot of people vastly underestimate the amount of money they should be making as a freelancer to match their W2 pay.

Be sure that you’ve done some basic number crunching and market research to understand your real value.