Automated IT support system

Pulling together a franchise system

I’ve been reading The 10% Entrepreneur, and The Future is Faster Than You Think in bed the past few nights, hoping that it’ll prime my brain to come up with ideas for me to take in the next step in my career. I’m not going to share the crazy dreams I had last night, but I will share this idea, mostly for me to mull on and come back to in a few months.

This idea is for a IT support communications app utilizing voice and chat, with a little bit of AI thrown in for speech recognition.

The problem: I work for an MSP, and over time a number of customers have gotten ahold of my personal cell phone. This is bad. We have several endpoints, if you will, for clients to contact us: an official office number, which is routed to an answering service, a support email, which goes to our ticketing system; and a support desk number, which goes to our helpdesk partner. We have no texting capability.

The catalyst: During a client network outage, I called their ISP, and the hold message said that I could text an agent at a certain shortcode. I quickly hung up and texted the number, then proceeded to deal with the issue, asynchronously. I thought that it would be a powerful tool for us to use if we had similar agent capabilites.

I’ve done a bit of tinkering with Twilio’s platform, having used it experimentally during a few political campaigns. Their Flex platform is geared toward call centers and support agents, and all of their services have APIs, allowing it to be connected to other systems. (This interview with their CEO is enlightening.)

Solution: Build out a phone/text response tree and use it to replace our answering service with speech to text message relay, and also provide text messaging capabilities for clients as well. There are a number of ways to integrate this with our legacy ticketing system API for ticket creation, or, for ticketing creation and status changes in the other direction.


There’s another opportunity here as well. The firm I work for is a franchise, and there is so much redundancy built into the business model. Every independent franchisee has their own instance of our ticketing system, and has to hire or train their own resources to work with all of our different vendors: our RMM, PSA partners, cloud services (e.g. O365 various services), disaster recovery/business continuity, and so on. I don’t even want to try and count the number of vendors that I have to deal with. Personally, I’m well suited to this type of jack-of-all-trades position, but I’m at the point now where I brisk at having to learn or deal with some new system that doesn’t have APIs or programmatical interfaces. And through my interactions with other franchisees and techs in our Slack, I can tell that some of them are less than capable of handling some of these projects.

The onboarding process for our location was very difficult. We were pretty much handed some tools and left to figure them out for ourselves. There’s been some improvements in how this is handled more recently, but one of our vendor onboarding documents was near fifty pages of step-by-step instructions and screenshots.

I’ve tried to set up some automations internally, and tried to get traction among the other franchisees, but the appetite just doesn’t seem to be there. I just don’t think the owner community is really thinking along the same lines as me, and this is one of the main reasons why I don’t think the firm is a good fit for me any longer. I approached one of the home office leaders about using some of the API work I’m doing to do some cross-franchise data mining, and got dismissed out of hand.

I think there’s a huge opportunity to consolidate some of these roles and operations across the franchise system. In fact, I think that it’s the only way that some of the smaller franchises are going to survive. That said, I think the way the business model works, and the way the franchise system has been sold to the franchisees will allow these improvements to be made.

The system I’ve described above should allow multiple franchise locations to share the same dispatching and messaging contacts, and allow messages to be routed to the proper client owner. I will share this idea within the global group, to see if anyone is interested funding development of such a system.

Self-isolation: Day one

Well, I didn’t mean for this blog to become a daily diary of life under COVID-19, but here we are. I should probably be keeping these notes in a physical book somewhere, but this is the routine I’ve set up for myself. Future historians can thank me later. Our family has officially been under isolation since Friday when we pulled the kids out of daycare. We let them outside earlier to play with a couple friends, but not before I went and talked to the other parents, to make sure they were taking this seriously.

Everyone in the house seems to be well now. My youngest still has a phlegmy cough, but it’s not keeping her up at night any longer. I’m better, as is my wife. Our oldest seems to have escaped flu season intact. Hopefully the clerk at the local hardware store didn’t give me anything when he was coughing near me during my last trip out. Thankfully I was able to fix the toilet leak buy twisting the assembly, so another trip to the store is not needed.

It’s not that we’re worried about catching coronavirus, we’re all young and healthy here. I’m more concerned with spreading it. And giving the local authorities more time to prepare their response. No one I talked to, from daycare to school admin, we’re prepared for the possibility that schools were closed. None of the clients I’ve spoken too, including one in sport medicine and the other in dentistry, are considering the possibility that the Governor will soon close all non-essential businesses or institute some sort of quarantine. (My original estimate for lockdown is this Friday.)

My main concern is being an asymptomatic carrier for the disease, and spreading it to someone who’s high risk. I’m glad the university moved classes online because one of my professor seems high risk, they’re over sixty and have diabetes. And for now, we’ll FaceTime our older relatives until we can be sure that we’re not carrying.

The pandemic is really exposing the weakness of the American health and sick leave systems. Stories about companies like Whole Foods asking employees to donate leave are all over the place. And my experience at the hardware store is telling as well. I felt a sort of physical revulsion when the clerk started coughing and I saw how pale and sunken his eyes were. He tried to take a part from me that I was holding, putting his hand right under a screw I was holding out. I didn’t drop it. He put some washers in a plastic bag for me, which I took; I didn’t really know how to act otherwise. I wasn’t about to judge the guy, who knows what his circumstances are.

It’s the food supply chain that I’m most worried about. I haven’t heard any stores about it breaking down anywhere yet, and while we’re stocked up, I don’t want to stop shopping and risk running low. I had planned to go to the grocery today, but after being made aware of the huge risk that store employees are put at, I’ve decided that I’m going to use the online ordering app and just do a store pickup.

Trump announced earlier that he wanted to send checks out to every American, no strings attached. Everything’s being discussed, but the markets are up. Cryptotwitter is bullish since zero-percent interest, QE, and UBI seems very good for BTC. And now we’re in the strange position that some Republicans, namely Mitt Romney and Tom Cotton, are now to the left of the Democratic Party on these matters. Down is up. Up is down. Everything is up for negotiation.

My wife is doing a fantastic job putting together a homeschool program for the kids. She’s got activities for them, and the little one really likes the Khans Academy Kids app. My oldest was offended that she was still on first grade math, but is now a bit frustrated with the second grade level stuff. I picked up a 75-page packet for her from school today, and we’ll get her back on her teacher’s ClassDojo tomorrow to get her on the program.

I don’t feel like I’m getting near as much done. I’m going to bed on time, but getting up later than I normally do. I spent most of the day with the kids, building a fire and roasting marshmallows; wrestling. That’s all that’s important right now, anyways. I’m getting a bit of day job stuff done during the kids’ class time, but who knows what’s going to happen next week if my wife has to go back to work. We shall see.

Will Open Source Save The World?

The technocratic response to the global pandemic

The West Coast was one of the first areas hit by COVID-19, and the response from the tech world, accustomed to exponential growth and network effects, quickly understood the ramifications of the disease. And while the CDC, decimated by Trump’s cuts and sycophantic staffing decisions, was unable and unwilling to prepare American’s for the reality of what was to come, the tech world acted quickly, cancelling conferences and gatherings to help slow the spread. Now, a week after President Trump has been forced to acknowledge the threat, as colleges, public schools, and states have begun shutting down operations, the tech world has come together to fill the role that the Federal government is unable to do.

Telework/Distance Learning

As soon as conferences were cancelled they began moving online, and many companies immediately began stepping up to offer services. Discord upped the caps on their new video streaming services from ten user to fifty. LogMeIn offered free licenses to education and non-profits. And many flocked to Zoom, which was able to stay up and running despite the rush of traffic to it.

Class Dojo and Khans Academy have been waiting for this moment for some time. My daughter’s public school system is using Class Dojo for their lesson planning, and while I’ve used Khans Academy both for myself and my oldest, their kids app, geared toward two to five year-old children, really shines. Both are free.

One college administrator noted that well over a dozen remote education companies reached out to him for assistance transitioning their curriculum over to the internet. While he noted that this showed that capitalism was “alive and well”, I couldn’t help but note that it smacked of opportunism. No doubt many vendors are falling all over themselves right now, trying to position themselves as the trusted partner for these schools for whatever comes after the pandemic.

EndCoronavirus.com

Information coming from medical professionals in hard-hit countries like Italy are exposing the unpreparedness of facilities over there. American experts are likewise looking at our capacity and warning that hospitals will be overrun unless we take steps to distance ourselves and slow the spread of the disease. Besides the lack of ICU beds available, the one piece of equipment most needed to save lives are ventilators.

Bruce Fenton put the call a few days ago for engineers and other medical professionals to come together with the goal of designing a ventilator that can be created from off the shelf or 3D printed parts. The goal here being to build a design that can be ramped up and quickly deployed outside the existing supply chain. It got my attention, and I joined their Slack last night. I was amazed at what I saw.

At EndCoronaVirus.org, over eighteen hundred volunteers have joined and are quickly ramping up projects to help with dozens of projects to help with the COVID-19 response. There are number of infection trackers and best practice information sites being spun up, with web developers, cloud infrastructure and network security engineers coordinating. They’re having daily stand up calls across continents to for communications. Social media teams are springing up to help spread the word. There are outreach channels for certain regions, and fundraising efforts. It is quickly becoming a valuable source for information during this crisis, and watching the conversation going on there happen in real time is fascinating.

Helpful-Engineers

This group predates the pandemic, and has quickly pivoted to help with the response. There’s ventilator work happening here through Project Open Air, and there’s already some coordination between this group and the EndCoronavirus teams. There’s over seven thousand people in their Slack. This Github repo has a list of project proposals they’re trying to get off the ground if you would like to get involved.

The technocratic solution to governmental failure

Now I am the last person that would parrot the line that private enterprise, or markets, are best handled to respond to any societal need. That said, I do think that our government bureaucracy is ill suited to dealing with the challenges that we face as a global society. The American legislative system, which is in dire need of an update from its eighteenth-century origins, has proven inadequate for twenty-first-century problems. Some state legislatures are even worse. As someone who is intimately familiar with the inability of laws to keep pace with technology, I have long wondered whether to give up on the political process altogether and focus on tech and entrepreneurial efforts to enact change.

As someone whose livelihood depends on tech, and keeping ahead of trends in the market, I keep a close eye on what technologists and futurists predict. I’m currently reading The Future is Faster Than You Think from Singularity University co-founder Peter Diamandis and Steven Kotler. Several of the industries that they look at in the book include the education and healthcare systems, and the role of remote work and telepresence weighs is a prominent one in these changes. The Coronavirus has accelerated this process, and is forcing organizations to deploy this technology, quickly.

The type of rapid organizational response being deployed by the EndCoronaVirus team right now, however, showcases the type of rapid response that tech can deploy, that government can only dream about. This deployment of engineers and other professionals from across the globe, coming together to help fight this global health crisis, is inspiring, and I encourage anyone who has even the slightest interest in getting involved to join them and figure out how you can get involved.

It’s too early to tell whether EndCoronaVirus will save the world, but they’re already proving that the tech world is ready to help.

Fearless refactoring

C++ is a much more complicated language than I ever imagined. I’d had a little bit of exposure to it earlier in college, and I hated it because of the amount of setup that was required to get it running. We were introduced to CodeBlocks and Eclipse, but both of them just seemed so clunky. Figuring out compiler options, makefiles, and trying to get programs that compiled on my home development Ubuntu workstation and on the schools Windows RDS environment and the professor’s autograder was just just too much. So when I really started diving into Python, it was like coming out from being underwater too long and getting that breath of air.

Working on the Pennykoin Cryptonote codebase got me a bit more comfortable with it. I stil didn’t understand half of what I saw. Half of it was the semantics of the code itself, half of it was just trying to understand the large codebase itself. Eventually I was able to figure out what I was looking for and make the changes that I needed to make. I never really felt comfortable making those changes, and even less so publishing and releasing them. That’s because the Pennykoin codebase had no tests.

I’ve spent the last few days working on some matrix elimination code for my numerical methods class. During class, the professor would hastily write some large, procedural mess to demonstrate Gaussian elimination or Jacobi iteration, and not only did I struggle to understand what (and why) he was doing, but he often ran into problems of his own and we had to debug things during lecture, which I thought was wasteful of class time.

As I’d been on an Uncle Bob kick during that time, I decided I would take a TDD approach to my code, and began what’s turned out to be a somewhat arduous process to abstract and decouple the professors examples into something that had test coverage, and allowed me to follow DRY principles. Did I mention that our base matrix class had to use C-style arrays using pointer pointers? Yes it was a slog. Rather than be able to use iterators through standard library arrays, every matrix operation involves nested for loops. I’ve gone mad trying to figure out what needs dereferencing, and spent far too long tracing strange stack exceptions. (Watch what happens when have an endl; at the end of a print function and call another endl; immediately after calling that function…

I started out working on the Gaussian elimination function, then realized that I needed to pull my left hand side matrix member out as it’s own class. Before I did that I tried to create my own vector function for the right hand side. So I pulled that out, writing tests first. Then I started with my new matrix class. I ran into problems including a pointer array of my vector class. For reasons that I’ll not get into, I kept the C-style arrays. I slowly went through my existing test cases for the Gaussian class, making sure that I recreated the relevant ones in the matrix class. Input and output stream operators, standard array loaders (for the tests themselves), equality, inequality and copy functions were copied or rewritten. After one last commit to assure myself that I had what I needed, I swapped out the **double[] lhs member for matrix lhs, and commented out the code within the relevant Gaussian functions with calls to lhs.swapRows(). Then I ran the tests.

And it worked

Uncle Bob talks about having that button of truth that you can hit to know that the code works, and how it changes the way you develop. I’m not sure if he uses the word fearless, but that’s how it feels. Once the test said OK, I erased the commented code. Commit. Don’t like the name of this function? Shift+F6, rename, test, commit. These two functions have different names, but do the same thing, with different parameter types? Give them the same name and trust the compiler to tell the difference. Test OK? Commit.

It’s quite amazing.

I spent several hours over the past few days working on adding an elementary matrix to the matrix elimination function, and I made various small changes to the code, adding what I needed (tests first!) and making small refactors to make the code clearer. I’ve had to step into the debugger a few times, but it’s going well. There’s still one large function block that I’ve been unable to break down because of some convoluted logic, but I’m hoping to tackle it today before moving on. And I’m confident that no matter what changes I make, I’ll know immediately whether they work or not.

Creating balance for my kids

I assume, that, much like 911, life will come to be known as before COVID-19 and after COVID-19. Today is, different, and I’m trying to be as conscious as possible about how this new life plays out. The chart above is one my wife posted in response to a question from someone stuck home with two small children about activities they can do to keep from going crazy, and I’ve already started making a list in my head of things I want my children to do.

I had a conversation with my oldest last weekend where I tried to explain the importance of attention. There’s a quote I kept seeing in the Waking Up app: “There’s a multi-front war on our attention, and we’re losing.” It’s resonated with me. I thinking about it much lately, whenever I’m feeling guilty about spending too much time on Twitter, or when my youngest is trying to get my wife to pull her nose out of her phone. But what especially irks me is the way my children act with regard to the television.

My oldest does not exhibit much, let’s say, resiliency, when it comes to not getting her way. She’s very prone to defiance and tantrums, and entitlement. Lord, the entitlement. Especially around television. I’ve tried various tactics over the years, both the carrot and the stick. I’ve put it (the television) in “timeout” for one or two weeks, we’ve tried Friday to Saturday night Shabbats. Lately I’ve been allowing them thirty minutes right after they get home from school that they can have a show, with the understanding that they’ll do their chores without any fuss afterward. Even that is starting to lose it’s efficacy.

As part of our drive to FIRE (financial independence, retire early), we’ve cancelled all of our subscription services, Hulu, Prime, and Netflix was the last to go a few weeks ago. The library has an app with short films and movies, mostly non-Disney animated versions of fairy tales, that they’ve been enjoying, and I recently purchased a ProtonVPN subscription so I can torrent anything else that we really want to see without worrying about my ISP cutting off service.

We take them to the library weekly, usually leaving with twenty or more books. My girls are readers, that is for sure. My wife and I are voracious readers, and we’re both glad to have handed that habit down to them. And my oldest has finally found something that she likes better than watching TV: Roblox, which I would describe as a Minecraft-type game.

During our conversation last week I tried to explain to her the difference between active and passive activities, why TV was a passive one and doing things like Roblox and learning apps was was not. It was a Saturday morning, and she had already spent more than half the time she’d been awake watching TV, and I tried to tell her that I wanted her to have some balance. I tried to sketch out a pie graph to show her what her waking hours looked like and what I thought a good balance between active and passive activities, screen times and chores, inside and outside play. I’m not sure how much I got through her head before she lost interest and started fidgeting, but I think some of it stuck.

So we’ll use the activities chart as a starting point, but make it a bit more dynamic. We’ll play with the timing and activities and see how things go for the kids. It’s also not a bad idea for me to put something together like that for my own time. I’m going to have to keep focused also.

Almost over my cold

Today has seemed a bit more sane than the rest of this last week has been. It seems like the household is almost over our colds, and will hopefully be back in shape over the weekend. The state has shut down schools for the next two weeks, which was faster than what I was expecting, so we’re still trying to figure out what the next week is going to be like. For the next two days, though, we will be keeping to ourselves and staying put at the house.

My wife mentioned that this whole situation was surreal, and I’m just relieved that we are in a good position to maintain for the next couple weeks. Again, we are in a really good position compared to some. I imagine we’ll be mighty productive. My wife, feeling better today, decided to take a crack at some of the clutter that’s been building up around the house, and I suppose I’ll be taking care of a lot of projects that have been neglected around here lately. I’m looking forward to breaking out the board game collection.

I’m not trying to be glib, of course, there are some hard economic decisions coming, and it’s likely we’ll be seeing the ramifications of it for many months. There was a bit of market recovery today, stocks were up a bit and BTC bounced some thirty percent off of it’s crash last night.

Regarding BTC, the explanations that I’ve read is that institutional investors were forced to liquidate to cover margin calls in the equities markets, which caused a cascade. I managed to hodl, and let my automated market order run today as planned.

There is a lot to do, and it’s going to require a lot of focus. I may have to trim some business expenses like BaseCamp or my Adobe sub unless I can drum up some extra cash. Of course, taxes are due in a month, so I should probably get cracking on that. It’s likely that we’ll wind up owing some due to increases in income, (no capital gains).

Other than that, I spent the day working on doing some Windows 7 upgrades using the Windows Deployment Toolkit. It’s one of the last projects I have planned at my job before I feel like I’m ready to turn the page. With classes delayed by a week, I’ve got a bit more time to work on my class projects, so I’ve been studying linear algebra and working on my matrix classes. Things are coming along well.

I’m also happy that I’ve managed to put hands together for the last of the four pieces from Bach’s Anna Magdalena notebook. This last one has been very difficult for me, but after several weeks of practicing the hands separately, I’ve managed to put them together and am working on getting up to speed and eliminating mistakes. My plan, once I iron it out, is to put up videos for all four pieces before I figure out my next piece.

I am hoping that tomorrow I will be able to get up on time, early enough that I can get my meditation and blogging in before the kids wake up. I’ve been missing my early morning routine and hope I’m able to churn out some more focused posts after I’m one hundred percent.

Quarantine incoming

I hate to write about COVID-19 again, but it’s probably one of the most important things to happen in my lifetime at this point, so I might as well go on about it. Hopefully I’ll be able to look back on these posts in a few years and … reminisce?

Bitcoin has lost around fifty percent of its value in the past few days. Equities markets are in free fall as well. Not even the NYSE’s circuit breakers nor a 1.5 trillion dollar promise from the Fed this morning could stop it. I think I’m handling it extremely calmly. I expected an end to this bull run for some time, so I’ve been sitting on some cash, in my IRA, and have been taking a large position in GBTC. I must admit BTC’s fall has me a bit taken.

Two hour chart for BTC. A year of gains wiped out in a day.

Right now I’m not changing any plans, as far as investing goes. I’ll continue my DCA targets, including buying some BTC tomorrow for the cold wallets, as well as my daily buy orders for the few stocks I’m scaling into. More GBTC on Monday as well. Thankfully, I decided to allocate some short term savings to my upcoming bills, so rent, car note and credit card payments will be good for the next month.

Beyond that, who knows. My wife has some security with her Federal job, and I can work from home, but I don’t think my boss can stay in business much longer. We’ve had too many clients get bought out in the last few months, and it’s been a while since we signed a new account. It’s time to update my resume and find something to do.

One of my clients is a pediatric dental office, and they said they’re running out of face masks, and are unable to procure more. Can you imagine? Doing dentistry without a face mask? I don’t know who that’s worse for, the hygienists or the patients.

Watching all this unfold on Twitter has been crazy. Trump’s failure will likely go down in history next to Nero’s fiddling, and it appears that he’s sick as well. Last night he caused chaos by announcing a travel ban to the EU, but then had to issue corrections to he speech in the hours after.

There’s still a segment of the population that is in denial about this. I’ve got a small sample size to go on, but most of the people that I’ve interacted with lately are ho-hum about this thing right now. My wife, my youngest, and myself have all been nursing various symptoms over the past week, runny noses, sneezing, coughing, low fever, you name it. I’d say it was just a cold if I wasn’t naive. All I can do right now is make them wash their hands everytime we get in our out of the car and keep them away from old people.

I had to run errands today. After I went to do a job at the aforementioned dentist, (no patients, thankfully), I stopped by the grocery store to stock up again. I’ve spent about six hundred over the last two or three weeks, stocking up. After I got home I had to run to the tire store to fix a flat. I took my youngest, home sick, to give my wife a break for a few hours. We picked up her sister and went to the playground to let them blow off some steam, and the library to stock up on books. I feel slightly guilty about it, but I have to choose my battles. It’s not time to lock down yet, and when it is, it’s going to be hard enough.

My university, and most of the others around the state, have extended Spring Break another week and will be going to all online classes. The local school divisions haven’t done anything other than cancel sporting activities. The governor has declared a State of Emergency. There are several confirmed cases in the region, but I don’t think we’ll be seeing the brunt of it for another week.

My wife and I seem to be in a detached state of inevitability about things. It’s like we’ve prepared for a hurricane that’s bearing down on us, but even that metaphor falls flat. the next couple weeks will be very, very difficult for a lot of people. I don’t know how bad it will get for us; I imagine the financial repercussions will be more severe than any health issues. I just hope we don’t lose anyone we know.

Django on Docker development challenges

I finally had some time to do some deep work yesterday, and go my unversity project’s Django instance up and running. It took way to long. The local version settings for Cookiecutter Django work very easy from a Docker setup, but deploying them to a production instance took me by surprise. There were several issues I had to work through.

Cloud storage: I had inadvertently setup my project with the cloud storage settings for AWS. We’re not using either AWS or Google Cloud Services for CDN since this is just a small prototype. Since we didn’t have the AWS bucket credentials, the Django service wouldn’t start. I had to replay my setttings file to recreate my project without cloud services set to none. I attempted to use a fork of CC Django that uses Ngnix as the media server, but had other issues with it and decided we just won’t have media for this prototype.

Traefix: The production settings put Django behind a Traefik load balancer firewall, it’s configured to use Let’sEncrypt! for validation. Leaving this section blank causes Traefik to fail. So I commented out the SSL validation section of the configuration file. Currently it throws a warning about a nonexistent validator, but this is the only way to get it to serve pages. Currently. I’ll register with Let’sEncrypt!, but I’m not sure I’ll be able to procure a cert for our web server given that it’s a host on our University’s CS domain.

Developmental environment issues: Perhaps the most frustrating problems I’m having are around the way our environment is setup. I work off campus, yet our resource host is only available inside the campus network. I’m using our CS Gitlab server as a code repo, but I haven’t setup and CI jobs to deploy the code yet. On order for me to terminal to the server I have to SSH to our public CS server, then SSH to the resource server. In order to view the Django website, I have to open an RDS session. Not ideal, but I’ve yet to optimize the setup.

And troubleshooting these various problems with our production server comes with it’s own set of challenges. The git repo is synced to our Docker host, and the instance is deployed via docker-compose commands. In order for me to update the code, I have to cycle through down, build and up commands to resync the code. Hopefully, I’ll be able to setup Pycharm’s Docker remote capabilities to edit the code directly within the docker instance. We had planned to setup multiple containers in order to run a test server, but that’s going to be very difficult on a single host.

I’ve had other minor issues with production settings not taking properly. It looks like the .env files aren’t loading properly, causing the default local ones to be imported. I had to change the defaults in manage.py, but I assume this may break our local setup.

When everything is shaped up, I’ll have one git repo that can be run locally, in test or production, with a CI job that will deploy commits to our Docker container. I’ve got a lot of work to do.

And now I’m a prepper

I’ve been sick lately. My youngest has had a cold, and I’ve had a mild symptoms the past few days. With that and the news on Twitter and the markets tanking over the last week, the Coronavirus is about all I can think of. I had met with a friend who had recently traveled to Thailand and had a “stomach bug” for a day before I met with him, but the cases out of Pattaya don’t match the timeline when they were there. So I guess it’s just a cold.

I’m marking eleven days on my calendar, given that’s how long it took Italy to go from five hundred cases to the lockdown of the entire country. We are not prepared here. The local school system is planning and doing a one question phone survey tomorrow, but the assistant director of my children’s daycare told me that there had been no discussion around closings yet. My wife and I are continuing to try and build up supplies. We’ve been buying extra food at the grocery store, and she stocked up on OTC medicines last time she went shopping.

Given the seriousness of this disease and how quickly it can spread, I’m debating whether it makes sense to self-quarantine. Yesterday I had a client’s site go down because of some hardware issues and I had to roll over there even though I wasn’t feeling completely well. I made sure to wash my hands several times and wasn’t coughing or anything, but I still feel guilty for having touched people’s keyboards. I have one project planned that I’ll have to deal with with this week, and then I’m staying away from client sites unless I absolutely have to. Not sure about school yet. One of my classes is a lecture-only class, and my professor is probably at-risk for complications, but I’ve heard nothing from the school as of yesterday.

So my wife and I will continue stocking up on non-perishables. Fresh fruits and vegetables are going to be a luxury if things go the way I fear, so we’ll probably be looking at a real attempt at growing vegetables this year.

The main concern is how we’re going to keep the kids occupied if we’re forced to hole up at the house for two weeks. The last thing I want them doing is watching TV the whole time. It will be hard keeping them busy without being hands on, at least for our youngest. I guess my main concern, selfishly, is that I’ll have a hard time finding uninterrupted blocks of time to do deep work during the day.


This week is technically spring break for me. I was hoping to use it to catch up on university work, which I’ll write more about later this week. I think I’ve said enough about COVID for the past few days. I want to write about a pod I listened to about Commercial Open Source Software companies, as it relates to possible post-university opportunities. Hopefully, I’ll be able to recuperate and focus on some of these projects, and start writing a new resume. I definitely feel that I’m closing the door on this previous chapter in my career. Each interaction with a client seems like it may be the last. I told a cold-email sales solicitor that I was planning on leaving the company after graduation, which makes it somewhat real in my head.

I am also done with Pennykoin, which clears up some brain cycles to focus on other things. I really need to move toward the things that are going to provide the best opportunity, and I haven’t believed in that project for some time. I was something for me to tinker around with an gain some familiarity with how blockchains and cryptocurrencies work, but it’s broken and I’ve got to move on.

I picked up a copy of The Future is Faster Than You Think last week and have been reading it in very small chunks. I want to give my brain time to process what I’m reading, and allow myself to let it sink in. There is a whole new world coming, and I want to approach it consciously, and point myself in the right direction. More to come.

COVID Mary speaks

There’s a couple things on my mind this morning. First and foremost is the Coronavirus concerns that have been spreading. It’s become apparent to me that this virus is a black swan that that has already put the global economy into recession. Here, I write about why this disease is a big deal, how my family will react, as well as some of the societal, economic and political ramifications.

What to expect

My prediction, based on information I’ve seen reported by epidemiologists, is that we should expect somewhere between four and five hundred thousands deaths in the United States over the next twelve to eighteen months. The doubling rate for this virus is around six days, with a four week incubation period. This spread, if it continues, could cause a full-scale collapse of the hospital system by late May.

The failure of the Trump administration to properly deal with the beginning of this disease over the last few weeks has already set the stage for massive spread of the virus. Trump’s self interest, mainly his failure to acknowledge the true risks of COVID-19 due to fears to spook the markets and jepoardize his chances for re-election, is the main factor in the coming pandemic. Three years of cronyism within the hall of government, replacing qualified careerists at places with the CDC with Trump sycophants, is what will make this a historical failure.

My wife, who works at a Federal hospital, is of course concerned, and I have already come to terms with the fact that everyone in our family will likely get the virus. Statistically, given the long incubation period of this disease, there is a non-zero chance that I may already have the virus, and so my response at this point is to basically act like I’m an asymptomatic carrier. My goal is to not be some sort of COVID Mary and spread it to everyone around me. So I’m going to minimize my trips out of the house as much as possible, and use hand sanitizer before and after I enter any public spaces where I touch a door or other such surface. Tissues, wipes, hand sanitizer are all proper items to carry, and maybe even nitrate gloves, face masks and eye protection if forced in a situation where close contact with crowds is unavoidable.

How to react

This epidemic will no doubt have a huge effect on how we gather. The tech industry has already cancelled a number of professional conferences, and I suspect that any organizations that have events planned in the next few weeks will follow suit. This excellent article on the COVID growth rate notes how the tech and finance industry is dealing with the COVID threat notes that the industry’s familiarity with compound or exponential growth, and network effects, give them a better understanding of how quickly this disease may spread. This exponential mindset is at odds with the “base-rate” experiences of most politicians and policy makers, who deal in a world of linear growth.

My wife and I are most concerned for our parents, mostly our fathers, who are far from the paragons of health. I’m also concerned for my grandmother, who is in her late eighties. There is no doubt in my mind, though, that my children are most likely to be the ones most likely to be vectors for contagion. My littlest one is currently nursing a cold, but there is no doubt that the schools and day care are ill prepared to deal with the situation. Cities on the West Coast are already cancelling school and university, and with the first coronavirus case in my state being reported yesterday, I know it is just a matter of one or two weeks before cities in my region are going to be forced to do the same.

The question my wife and I are asking right now is whether we are prepared to self-quarantine. I would have no problem working from home since I already do. Having the kids home would be more a challenge, as a parent. Thankfully, we’re probably close to having supplies to quarantine ourselves for two weeks, which I think will ultimately happen. Of course, our family is privileged, and it is how we deal with the economically vulnerable, the homeless, e.g. those without sick leave or savings, that will determine how quickly COVID spreads.

Societal ramification

I’ve left aside the economic ramifications of all this, but I’m sure they are going to be massive. The response from central banks have been telling, but given that they’ve exhausted their traditional stimulus activities over the past few years trying to artificially keep the bull market running, they will be ineffective. The pullback in the markets the last week or two is probably just the start. The banks only effective measure at this point is to print cash, the question is whether they’ll be able to get it where it is needed, to the working class.

The effects on travel and hospitality business like restaurants, hotels, and yes cruise lines, is going to be massive. (I saw a report last night that transatlantic air flights were less than three hundred dollars!) While demand-side issues will be problematic for most small businesses due to quarantine, it’s the supply-side ones that are really going to test our economic system. Apple was the first to note that they were unable to meet numbers due to shortages in chip fabrication, and we’ll likely see this play out again and again across all manufacturing sectors.

So while the Fed will be forced to provide stimulus to keep business and workers afloat, there will be shortages of necessary supplies as the population stocks up and prepares to self-quarantine. There may be a short-term boom in certain sectors like toilet paper, but expect price-gouging in the longer-term as other sectors are unable to keep up demand. The influx of cash, coupled with the upcoming bitcoin halving in May, should lead to new all time highs for the cryptocurrency.

What all this means for the Presidential race is anyone’s guess. I would think that Trump is done, but I’ve given up trying to predict what will happen with this Administration. He’ll likely blame and deflect responsibility, possibly even declare martial law to delay the election. I would think that this crisis makes Sanders the likely nominee, since his health and economic platforms would likely be more effective in stemming the spread of this disease, but it may be too late for him to win the nomination. We will likely know for sure in the next few weeks.

Ultimate effects

Finally, given reports that attendees at both Davos and CPAC have tested positive for the disease, it is clear that this is one disease that will hit the elites as much as the common man. In fact, given that the Trump, Biden, Bernie, and most of Congress are in their seventies, there is a chance that a significant number of them may die from this disease . It has been said that one of the mitigating factors for income or wealth inequality over the time span of human history has been periods of wealth destruction, such as famines or wars, which leveled the previous orders of the day and reset the game back to a more equitable level. The Coronavirus may be the catalyst which leads to the greatest redistribution of wealth in eighty years.