Skip to content

Instantly share code, notes, and snippets.

{
"editor.codeActionsOnSave": {
"source.fixAll": "explicit"
},
"editor.formatOnSave": true,
"editor.inlineSuggest.enabled": true,
"editor.inlineSuggest.showToolbar": "always",
"editor.linkedEditing": true,
"eslint.format.enable": true,
"eslint.probe": [

Nathan Arthur

Full-stack web developer proficient in NodeJS, PHP, and Python stacks. I enjoy working with stakeholders to find the optimal solution, and then building that solution from the ground up.

Experience

TaskRatchet

Founder
March 2019 - Present (5 years 1 month)

Please create a concise and professional cover letter for the following Upwork job using my experience. Please ensure it meets the following requirements:

  • Hook the client in the first two sentences since this is what will be visible to the client before they click in.
  • Clearly communicate that I understand the job by restating the job’s requirements in different words.
  • Provide supporting evidence from my work history as to why I would be the ideal contractor for the job.
  • Clearly communicate how I can add value to the client's business.
  • End the proposal with a CTA to schedule a quick 10 minute introduction call.
  • Include three questions I'll have for them during the call so they can think ahead.
@narthur
narthur / settings.json
Last active December 20, 2023 20:34
Etherpad settings
/**
* THIS IS THE SETTINGS FILE THAT IS COPIED INSIDE THE DOCKER CONTAINER.
*
* By default, some runtime customizations are supported (see the
* documentation).
*
* If you need more control, edit this file and rebuild the container.
*/
/*
@narthur
narthur / sendItToMany.sh
Last active March 24, 2022 08:16
Send email attachment to multiple recipients using Mutt
a="address1@gmail.com, address2@gmail.com"
mutt -s "subject" -a file.pdf -- $a
@narthur
narthur / listBySizeRecursively.sh
Created January 12, 2016 19:11
Sort contents by file size recursively
ls -RlhS
# -R: recursive
# -l: long listing
# -h: human readable file sizes
# -S: sort by file size
{% set announcements = su.collection( "announcements" )
.activationDate( "now"|date( 'Y-m-d' ), "<=" )
.deactivationDate( "now"|date( 'Y-m-d' ), ">" ).or().deactivationDate( "", "=" )
.find() %}
<ul class='custom-announcements'>
{% for announcement in announcements %}
<li>
<h5>{{ announcement.title }}</h5>
{{ announcement.details|markdown }}
@narthur
narthur / Stub.php
Last active May 6, 2019 20:53
[Stub Trait] #tdd
<?php
namespace Avorg;
define("STUB_NULL", "stub_null");
trait Stub
{
private $calls = [];
private $methodCallIndices = [];
@narthur
narthur / Factory.php
Last active May 5, 2019 08:31
[Object Factory with Boundary Dependency Injection] #tdd
<?php
namespace Avorg;
if (!\defined('ABSPATH')) exit;
class Factory
{
private $namespace = __NAMESPACE__;
@narthur
narthur / journal.py
Last active April 30, 2019 20:31
Script for generating Beeminder journal updates
#!/usr/bin/env python3
import os
import yaml
from beeminderpy import Beeminder
import json
from pprint import pprint
from tabulate import tabulate
import datetime
import time