Weekly Update #21: Infrastructure Development for Contracting

This is a summary of my sabbatical's development for the week of June 27th, 2020 to July 4th, 2020.

Goals from last week

  • [❓] Wrap up phase 1 deliverables for client, and begin phase 2.
  • [❓] Productionize the HTML editor, ship it as a standalone React.js app, and reference it (using <iframe>) in a Bytes by Ying blog post.
  • [❓] Template out infrastructure for generalized SaaS-based products; generalized SaaS landing page, generalized frontend (with React.js and Tabler) for app frontends, Django + gunicorn + PostgreSQL for app backends, and AWS + Docker for infrastructure.
  • [:question_mark;] See what I can get done for FormDeploy (spreadsheet-based Zapier).
  • [❓] See what I can get done for TinyDev (tiny version of Firebase, with HTTP/2 SSE as the realtime layer).

What I got done this week

  • [✔] Wrap up phase 1 deliverables for client.

  • [❌] Begin phase 2 deliverables for client.

  • [❌] Productionize the HTML editor, ship it as a standalone React.js app, and reference it (using <iframe>) in a Bytes by Ying blog post.

  • [👉] Template out infrastructure for generalized SaaS-based products; generalized SaaS landing page, generalized frontend (with React.js and Tabler) for app frontends, Django + gunicorn + PostgreSQL for app backends, and AWS + Docker for infrastructure.

  • [:x;] See what I can get done for FormDeploy (spreadsheet-based Zapier).

  • [❌] See what I can get done for TinyDev (tiny version of Firebase, with HTTP/2 SSE as the realtime layer).

  • [✔] Set up landing page for https://paintcreeksoftware.com

  • [✔] Set up email addressing for Paint Creek Software using Zoho Mail + MX records.

  • [👉] Reach out to cold contacts regarding viability of this model.

I kind of take back what I said about contracting being great. It's a different kind of pain than working full-time or working on your own material, and there's different tradeoffs you need to make.

Metrics

  • Weeks to launch (primary KPI): ? (1 week after product development begins)
  • Users talked to total: 0

RescueTime statistics

  • 78h 52m (61% productive, 16% decrease from last week)
    • 30h 17m “software development”
    • 21h 46m “utilities”
    • 12h 21m “communication & scheduling”
    • 5h 9m “news & opinion”
    • 4h 46m “uncategorized”

iPhone screen time (assumed all unproductive)

  • Total: 20h 42m
  • Average: 2h 57m
  • Performance: 24% decrease from last week

Hourly journal

https://hourly-journal.yingw787.com

Goals for next week

  • [❓] Begin work on a SaaS template for Paint Creek Software in order to have something to show to potential clients.
  • [❓] Incorporate an authentication system for frontend + backend (login + register + signout).
  • [❓] Incorporate a billing + licensing system for frontend + backend.
  • [❓] Ship SaaS template @ demo.paintcreeksoftware.com using free tier services.
  • [❓] Ship SaaS template @ {api, app}.test.paintcreeksoftware.com in order to showcase migration to AWS services from the VPC layer on down

Things I've learned this week

  • Be prepared to spend a good amount of time unpaid trying to gain clients. I had originally indicated that I wanted $5k for 5 days worth of work, which would be a rather high rate already. I changed that to $10k instead, on the advice of friends. Their advice proved worthwhile, since managing client + contractor lifecycles is already pretty high. In addition to 60 hours of overtime on a 20 hour contract, there's additional work that needed to be done in order to attempt to secure a phase 2 extension of said contract, that took up most of the week. Which I didn't end up getting anyways, due to client reservations about my commitment + experience.

  • I do wish I had database-backed spreadsheet applications for specific roles. When I was cold-emailing people, I used Google Sheets in order to manage my contacts. I do wish there was a way in order to directly send email through MailChimp from Google Sheets, and template specific fields in an email template via mail merge from within the app. Airtable has Zapier integrations with MailChimp, which I guess is something similar, but I really want MailChimp only for the email deliverability aspect.

    It's the same thing with spreadsheet-based integration test plans. I think as I'm working through coding all this stuff up, I really care about making sure certain happy paths work correctly, and once that's defined, create a fault injection model and automatically find areas where I can save on the amount of code I need to write, or plan test cases that I need to write. I don't think I'd have those features integrated in a vanilla database-backed spreadsheet.

    There are other spreadsheet-based applications, like Seekwell, Clay.run, or Actiondesk that are Airtable alternatives (my definition of a database-backed spreadsheet is something that can export data to Parquet or another highly structured format), but they don't seem to specialize in these areas. I say I could probably build a generic database-backed spreadsheet for myself, then extend it in certain directions in order to find a specific niche.

Subscribe to my mailing list