TinyDevCRM Update #6: More DevOps Disappointment

This is a summary of TinyDevCRM development for the week of March 14th, 2020 to March 21st, 2020.

Goals from last week

  • [❓] Finish a tutorial on shipping a webapp backend to AWS Fargate + AWS Elastic Container Service (ECS)
  • [❓] Apply learnings from that tutorial to original Docker Compose tutorial completed last week
  • [❓] Apply learnings from both tutorials to TinyDevCRM API and launch something to AWS ECS
  • [❓] Finalize basic authentication workflows and configuration work between backend / frontend and dev / production
  • [❓] Update front-end dashboard and auth pages with necessary pages + mobile responsiveness for MVP
  • [❓] Soft launch MVP by talking to one person from my early adopters list
  • [❓] Update landing page using https://landing.ant.design

What I got done this week

  • [❌] Finish a tutorial on shipping a webapp backend to AWS Fargate + AWS Elastic Container Service (ECS)
  • [❌] Apply learnings from that tutorial to original Docker Compose tutorial completed last week
  • [❌] Apply learnings from both tutorials to TinyDevCRM API and launch something to AWS ECS
  • [❌] Finalize basic authentication workflows and configuration work between backend / frontend and dev / production
  • [❌] Update front-end dashboard and auth pages with necessary pages + mobile responsiveness for MVP
  • [❌] Soft launch MVP by talking to one person from my early adopters list
  • [✔] Update landing page using https://landing.ant.design

Metrics

  • Weeks to launch (primary KPI): 1 (2 weeks after declared KPI)
  • Users talked to: 1

RescueTime statistics

  • Total: 75h 41m (58% productive)
    • 18h 56m “software development”
    • 13h 54m “communication & scheduling”

iPhone Screen Time (assumed all unproductive)

  • Total: 31h 30m
  • Average: 4h 30m / day
  • 19% decrease from last week

Hourly journal

https://hourly-journal.yingw787.com

Goals for next week

  • [❓] Finish the MVP. Whatever finish means at this point.

Things I've learned this week

  • Let's talk about the elephant in the room. The coronavirus pandemic officially kicked into high gear where I am sometime last week. I believe from sources I've found we're around two weeks behind Italy, where currently the entire country is locked down besides essential service providers. France declared a nationwide lockdown for two weeks yesterday. Here in the U.S. we don't have enough coronavirus tests and real numbers are at least two, likely three, maybe four or more orders of magnitude from what they really are.

    I'm really fortunate to have a support network where I am, and have the ability to work at home and have an extremely flexible schedule due to being on sabbatical, but even so, I feel as if a wrench had been thrown into my plans. The stock market isn't handling this well, per usual, and the forced shutdown will almost certainly cause a recession. I think this will make finding the job I want much more difficult. On the other hand, I think this will make other opportunities, such as starting a company or going to grad school, more attractive since salaries likely won't be as high. What matters now is great execution on the priorities I've laid out for myself.

    I don't hope that the virus ends soon, because I don't expect it to. I also don't expect this pandemic to be the last one I'll encounter, but rather the first of many. I'm focusing on developing coping mechanisms and productivity strategies for alleviating cabin fever and the overall doom and gloom feeling. I'm really lucky in that regards, because failure is nothing new to me, and therefore I already have plenty of experience in terms of dealing with pain and suffering. It definitely helps in building out an antifragile mindset that becomes stronger with each shock, which is always a work in progress.

    As JFK said, do not pray for easy lives. Pray to be a stronger person.

  • My God, DevOps is never-ending. Quite literally, to do anything I think you either need to pay for a managed solution, or you need to know literally half of the underlying AWS infrastructure. There's very little in between, something like a TypeForm for CloudFormation templates that might bridge technical and non-technical.

    I appreciate devops a great deal more than I did just a few short weeks ago. There's really no end to it. It's not as attractive as AI/ML or front-end engineering, and maybe not as interesting to me as data engineering or platform / infrastructure engineering and engineering optimization. But man, none of that matters if you can't ship your stuff.

  • I do like AWS. For example, I wasn't entirely sure whether AWS Fargate naturally persisted Docker volumes using EFS. This GitHub Issue is extraordinarily popular. Looking at the Kubernetes documentation for persistent volumes, revealed a variable called awsElasticBlockStore referencing AWS Elastic Block Store. When I searched ecs ebs on DuckDuckGo, this AWS article came up, that demonstrates how to integrate ECS and CloudFormation to support your own custom database needs. AWS is infinitely flexible.

    For my MVP, I might use a janky EC2 + ECR setup, and run Docker Compose locally, because I care more about getting to the feature parity I want and because I intend to reduce my ops overhead to a bunch of binaries in a package archive and some shell scripts. But it's great to know CloudFormation can do these things!

Here's to the week ahead 🍷


Subscribe to my mailing list