Phase transition from a zombie state

It’s a beautiful Saturday morning here. I’m bringing the girls over to their grandmothers later today, which will mean the first time the house has been free of the kids in six weeks. I don’t even know what my wife and I will do with ourselves.

I’ve got one more task to finish college, a how to guide for faculty and students on how to use GitLab for note sharing. Should take me a couple hours of writing, tops. Then I’m done. I already got my grade for the group project class, an A, and I turned in my assignments and exam for my numerical methods class last night. That project is definitely going on my resume/portfolio site, and will probably get a full write up at some point. The only problem with it is that it can’t compile in CodeBlocks, so I’ll probably get 50% on it. I may muck around later and see if I can get it to compile via GitLab. The professor is likely grading on a super steep curve, so I shouldn’t really worry about it. There’s no doubt that I’ll pass, the question is whether I get a C or an A. After all the work I did compiling class materials into the GitLab wiki, I’ll be disappointed with anything less than a A.

However it goes, I should wind up with at least a 3.5 GPA. Six years of classes, part time, while holding down a job, raising two kids, and running two political campaigns. I sure am proud of myself. Now if I could just bring myself to take one of these $80,000 year jobs that I see listed on LinkedIn. I’m going to finish updating my resume, put it up on the new CV site that I built, and start applying to anything with the salary disclosed. We’ll see who bites. Of course, there’s the $60,000 in student loans that I’ve got to deal with.

Ideally, I’d like to stay where I am, and use my spare time to work on open source and entrepreneurial projects. I want to get the GBTC Estimator upgraded to a GBTC trader, and see if there’s any income to be generated there. I’d like to complete the Safe.Trade integration into CCXT. I’ve got the medical transportation company that I want to build a Django app for, and I’ve got another opportunity with a new friend who is very entrepreneurial. Other than that, I just plan on crawling the boards on AngelList and other local startup boards to see where I can join on as technical adviser.

Of course, all that goes out the door if I lose my job. I’m not sure how bad the situation is at work, since my boss doesn’t share anything other than “we need money”, and we haven’t brought on a new client in close to a year. We had a discussion about taking on software development work, but all I got was push back. He tells the team to “go out and sell”, and we’re all like “mhmmm”, but that’s all it amounts to. I’d just rather he furlough us all at this point.

I’d rather not turn this post into an obit for the company, but it’s been a zombie for some time. It’s like we’ve got just enough clientele to keep things from sinking completely, but not enough to grow. Which means of course, that it’s going to die, probably as soon as I leave. I told my boss that I wouldn’t abandon him after graduation, but I’ve been trying to lead and direct the company to where we need to be, and have been ignored too many times.

We currently have a client in the service industry which relies a lot on manual paper processes and third party vendors to manage their work order and invoices. I consulted them nine months or so ago about migrating their workflows to Microsoft Forms, Flow, and SharePoint Online. There was a lot of excitement and head-nodding, but nothing has come from it. Instead, one of their employees has been learning Django and building a pricing calculator. I got mad respect for them, and have been shooting the breeze with him about, making recommendations and the like. Now, however, it’s getting to the point where they’re asking questions about how to deploy this app, and I’m at a limit as to what I can do in a non-professional capacity. We decided to table discussions till next week.

One of the problems that I’m running into is around making this phase transition from one career to another. The crux of the problem is related to the difference between understanding something from a theoretical standpoint to actually having done that thing. Past performance, if you will. I ran into a concrete example of this the other day. We, Zombie, Inc., that is, had an opportunity with a prospect that needed a website update. They were using WordPress, and we identified a potential vulnerability via a web scan. The site template was very rough, and needed to be brought up to a more current aesthetic. The problem was that while I have plenty of experience managing WP sites, I have no portfolio of sites that I’ve built. And Zombie has zero performance that they can point to. So of course, nothing has come from it.

It seems the cure for this problem is just to do stuff for free, and then try to recoup payment for it on the back end. I think Tim Ferriss has an example from his life, back in the 90’s, where he would find businesses without an online presence, build pages for them and then approach them afterward to try and sell it. There’s similar examples, but they all depend on having the time to do the work up front.

That’s basically where I find myself right now. The “clients” that I have right now are little more than experiments to see if I can make a decent side hustle doing site management and consulting work. Monday, after I have put the final nail in my undergraduate degree, I will contact Zombie’s client and craft some sort of consulting deal that will benefit all three of us.

Nothing punny today: Quarantine day 42

So we’ve begun week six. Writing has proved difficult recently, as I’ve been getting up roughly the same time as the girls and have been unable to focus on writing until later in the day, after my day seems to have filled up with tasks. Saturday marked the first real bit of restlessness I’ve felt since we started the lockdown, a bit of ennui and listlessness about what to do.

We’ve rearranged the room over the garage. My wife’s desk is setup and she’s able to telework. I took one of my old workstations and set it up for Elder. I tried using Wine for the first time, but had trouble with some fonts and wound up wiping it an installing Windows 10. I’m hoping she’ll take interest in computer art or music production, but she’s mainly interested in playing Roblox. I gave her a free pass yesterday and asked her what she wanted to learn about. She said “music”, so I threw on a YouTube video lesson for children.

She’s been accepted by the gifted program and will be going to the city’s gifted center for third grade. Her teacher called me Sunday to ask if I would be interested in letting her be part of a small group in the class that would be doing more advanced math, and of course I said yes. I’ve managed to get her to do piano without too much fuss, but I haven’t pushed too much. I can’t say for sure, but it seems that there’s been fewer tantrums.

We’ve discovered Amazon Music and that it has Trolls and Disney music, so the girls have been playing that a lot.


I’m in the midst of my final exam for my numerical methods class, and have been getting my solvers working. Right now the Gaussian elimination is the only one working, and I’ve got 3 more days to get the others working. The professor wants us to generate surface plots in Excel, of all things, and to turn those in for our answers. Since all the solvers are supposed to return the same results, I could just turn in the answers I’ve generated thus far, but I still need to turn the solvers in for assignment credit. The problem here is that I’ve built a large build and test suite in CLion, and my professor just wants a single CPP file that he can run in CodeBlocks. I’ve painted myself into a corner, but I’m not concerned with grades since I think the professor is going to grade on a massive curve.

One of the graduation requirements is financial aid counseling, and I got the first look at my student aid totals in a long time: over fifty-seven thousand dollars. There seems to be some discrepancies that I’ll need to review, but this is obviously a lot more than I was expecting. I hurt myself by taking cash payouts for personal expenses. These went to pay credit cards, and quite a bit to bitcoin. I’ve already accrued five grand in interest charges. It puts my post-graduation plans in a bit more context. The status quo will not hold.

I’ve got until next year before I’m expected to start paying these loans back, but the interest is well over four percent, so the first thing I’ll be looking to do is refinance.

I’ve decided that I need a proper professional presence online, so I’ve registered a few domains and started setting up a new CV site. This blog will remain separate for now, but I’ve started reposting some articles on Medium, and will be linking to my Github repo on it. I’ll worry about the ramifications of a recruiter seeing my Tweets and blog posts later. For now, the only thing that comes up when you Google my real name is my political work, so I’ve got to work on changing that.

I’ve also started trying to use LinkedIn more. There are a lot of jobs for software developers and engineers lately. About twenty new ones a day. I’m not saying I can take my pick, but there’s been about one or two each time I look that I’d be interested in. Not that I would necessarily be qualified for, but once I get through my exam and independent study requirements, I’ll be finishing up my resume and applying to some. Not that I really have any desire to work for another firm full time, but I doubt I would turn down an eighty thousand dollar a year position right now.

Or would I?

Side hustle day

So the search has officially begun. I spent some time on AngelList, looking for opportunities, and sent a few messages out some founders. All equity stakes, unfortunately, but hopefully I’ll start the conversation rolling.

Also reached out to the team behind a new AI startup. It seems that they’re running various AI projects behind the scenes and offering an API for devs to get the results. Seems like an interesting platform play, providing AI as a service. Reminds me of what Twilio did.

Following the advice of Peter McCormick in The 10% Entrepreneur, I’ve started writing a professional biography. I uploaded my draft to AngelList, and will do so on LinkedIn as well. I have to be careful how I put things, cause I don’t want any blow-back from my boss right now. I don’t think it’s likely, given that they can’t survive without me, but I can’t afford to take chances. Anyways, the point of the biography is to build a coherent picture that brings together where I’m at now, where I hope to be, and encompasses my professional, academic, open source, and political contributions. I think I did a good job.

Today I will focus on making progress on client projects, and following up on any opportunities. One of my clients hasn’t paid in months, so it’s time to have a tough talk with them about the future. I have another advisory project I haven’t spoken to recently, and another relationship that I’m hoping to make the cornerstone of new business.

After assessing that, I need to make a few cuts, finance wise. I’ve been carrying Basecamp, Harvest, and an Adobe Creative Cloud subscription for some time, not to mention my Namecheap reseller account and AWS instance running the IDEX node. Unless I can secure some immediate funding source, I’ll have to cut. I think Basecamp may be willing to offer services for people affected by Coronavirus, but I doubt Adobe would do the same.

On a personal node, I should probably do the same with my Waking Up subscription. Sam Harris is gracious enough to allow people to request free subscriptions, so I need to do that. Taxes are also due in a month, so I need to start working on that. I’ll defer that till this weekend. I manged to eek out a refund last year because of business expenses, but I’m not sure I’ll be able to get away with that this year. We’ll see.

That’s it, time to get busy!

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.

Scaling a managed IT service provider

The company that I work at is coming up on seven years old this winter. We’re a small managed service provider with about 4 employees and 25 or so clients. We provide IT support and project implementation services for small professional and service companies. We’ve been stagnant, growth wise, for the past three years or so, and my main focus in addition to taking care of our clients is refining our business processes so that we can scale to the next level. What we’ve been doing has brought us success, but it’s not enough to get us to where we want to be.

We’re part of a franchise system of independent operators all over the U.S. The home office is supposed to provide us with best practices and partner relationships, and the franchisees pool their purchasing power to get best deals with the partners. That’s how it’s supposed to work, anyways. What’s happened in practice is that the home office basically provides new franchise owners with a vendor for this, a vendor for that, and so on, and basically leaves the franchisees to themselves to figure out how to implement it. It’s completely inefficient. I can’t even begin to tell you how much time we’ve spent managing our RMM and PSA tools, or how much of my day to day is refining these various systems (some of which don’t have any API for automation control) to talk to each other.

Instead of pooling human resources, say to have a team of engineers that specialize in setting up firewall systems, for example, each location pretty much has their own teams. We rely on outside NOC and helpdesk partners to deal with first-line issues, and the local teams are supposed to be escalation support. But providing information to these various entities can be very difficult (ITGlue has helped tremendously!) but having a remote helpdesk is very frustrating for customers who expect some sort of continuity.

Unfortunately we’re just not able to provide that level of service for what clients are willing to pay. Especially the smaller clients. MSPs use a per-month contract billing, with rates for servers, workstations, and other IT resources, but that usually just covers keeping things running, remotely, and on site and project work is billed separately.

Things can really add up for clients, especially when they don’t follow our recommendations and shit goes south. Most of them are trying to balance the cost of having their own in-house IT resource, but hardware, software and human resource costs can quickly add up. This is even more true when you consider regulatory and compliance requirements. It’s really hard.

And companies that skimp on these costs always pay for it. Always. I’ve had my fair share of ransomware breaches, but one that I saw this week really took the cake. An firm who we have done business with in the past, that we’ve been under a limited engagement with, had a really bad attack which took down their entire Windows domain: three servers, including AD, Exchange, SQL, file services, and a custom database application. We stopped doing business with them three years ago because it was always a challenge to justify what needed doing over there, and things were usually such a matter of urgency that we would be forced to do things to keep them running. And then we would have to spent weeks having to pull teeth to get paid. We finally said enough is enough and just walked away.

So we got a call from them a few weeks ago. Turns out they had pissed off another MSP, and needed help. They had been through several in-house IT resources, but they needed RMM monitoring, AV and patch management stuff that we would provide. But because they were in dispute with the old IT company, we weren’t able to get access to their backup and data continuity appliance.

Long story short, they got hit earlier this week and didn’t have backups for half their shit. I had convinced their in-house person that they really needed to get some sort of local backup, and thankfully they followed my advice. But it was really too little, and they’ve spent the last 72 hours trying to recover. And let me tell you, it was the most stress-free disaster recovery that I’ve ever dealt with. I’ve damn near had panic attacks and probably lost years off my life from the stress of dealing with my own share of these disasters. Sometimes they were self-inflicted, other times not. But since I wasn’t the one holding the bag, I was chill as fuck.

I’ve saw the writing on the wall for MSPs some time ago. I don’t know if it will be ten years or when, but the business model is going to approach a race to the bottom. And our local market is already saturated with 4 or 5 decent competitors, and many more not so decent. Internal conversations around the future of our firm talked a lot about compliance auditing for DOD/NIST, and the question we’re struggling with now is whether we want to be an MSP that does compliance, or a compliance firm that does MSP. My gut tells me to go where others aren’t. Which is why I’m focusing my time on process automation, combining applications via API.

I was able to list several things to our no list, things we’ve done in the past that have gotten us into trouble in the past. That means setting boundaries for business that we deal with, and will likely involve cutting some of our clients who aren’t growing with us or don’t see the value of the service we provide. It means converting our services to product offerings in order to differentiate ourselves from the competition. And it means automating our processing so we’re not making the same decision over and over again.

Professionalism

Tomorrow marks the start of my last year at university, where I’ll be finishing up my bachelors degree in computer science with a computer science minor. I’m only attending half-time, and the two of the four classes I need to finish are a professional workforce development course. Obviously, this is going to take a good deal of time away from everything else that I’ve been doing, so I’ve labored to unload as many projects that I can. That said, these are writing intensive courses, and I don’t know what kind of time commitment that’s going to take. Obviously, taking thirty to sixty minutes a day is going to be hard to fit in, but I’m going to be staying on top of the assignments to be able to fit that in.

That said, there may be room for crossposting. In the past, I’ve published writing assignments from class to Facebook or Medium in the past, so I expect I’ll find ways to kill two birds with one stone. That said, one of the first tasks is to share my thoughts on what it means to be a professional. Specifically, the characteristics a true professional must have.


Integrity is doing the right thing even when no one is watching.

C.S. Lewis

My dad taught me his work ethic, and while I’ve been slow to get going some times, I’ve I’ve never had a problem focusing on a task once I’d made my mind up to execute. Obviously, there’s a difference between personal tasks and professional ones, but I’ve always hustled my butt off. Always. Even when I didn’t have the ability, or wasn’t the best, I could still keep going, driving toward the finish line. But beyond the drive, integrity is probably the most important trait one can have. Your reputation takes a lifetime to build, but can be destroyed in an instant. And taking shortcuts, or otherwise cheating a client or task will come back to haunt you.

There are lots of other answers that people will give as an answer to this question, but I think the question is the wrong one. When people talk about characteristics, they’re really discussing a trait, or a skill. One of the most valuable lessons that I’ve learned lately is about choosing the people that I work with. Whether you’re hiring for a position, taking on a client, or choosing a new job, the most important questions that ultimately need to be asked are around values.

Values are the deep-seated beliefs that motivate behaviors; people will fight for their values, and values determine people’s compatibility with others. Abilities are ways of thinking and behaving. Some people are great learners and fast processors; others possess common sense; still others think creatively or logically or with supreme organization, etc. Skills are learned tools, such as being able to speak a foreign language or write computer code. While values and abilities are unlikely to change much, most skills can be acquired in a limited amount of time (e.g., most master’s degrees can be acquired in two years) and often change in worth (e.g., today’s best programming language can be obsolete in a few years). It is important for you to know what mix of qualities is important to fit each role and, more broadly, with whom you can have successful relationships. In picking people for long-term relationships, values are most important, abilities come next, and skills are the least important.”

Ray Dalio – Principles, #45

I’ve been at my current firm for almost seven years now, and I’ve sat on the side through a number of hiring interviews during that time. Ultimately we’ve been disappointed with those hires that we’ve taken on, and I couldn’t really understand why until I read Dalio’s principles a few months ago. Every time I sat at that table with someone’s resume in hand, I was always focused on the skills. We were hiring for a position, an immediate need. And while I may have touched briefly on some of those deeper abilities, we almost never discussed the values that drove a person. A lot of your standard interview trick questions may have been originally designed to get into some of those values, but I think they lost meaning the more they became rote. And it’s hard to get to know someone in that short timeframe.

So while we may have chosen hires that were capable of performing the skills that were needed at the time, we handicapped our future growth. We wound up with employees who weren’t motivated to keep learning new skills as business needs changed, that were using the workplace as a dating pool, or who were incapable of documenting their work properly. And make no mistake, I’m no angel myself. Most of the jobs I’ve had over the years have been failures. And this may be my privilege talking, but I’m not afraid to be fired any more. And I’m not afraid to fire a client if they don’t align with our values. I’m at the point now where I can say ‘no’. I’ve realized that a lot of what comes my way is going to distract me from what really matters, and what I’d rather be working on.

I’m forty years old and still trying to figure out what my personal mission statement is. I may not be able to spell it out, but it’s there. I think ultimately it’s about service, and passing on what one has learned to others and helping them along. It’s about building connections and community. Hoarding knowledge is ultimately futile. I think lately I’ve been thinking that if I have an idea and someone else can do it better, then by all means, let them. I’ve got to focus on the things that I can do better than anyone else. What’s my niche? If someone brings something to me, the first thing I ask is ‘am I the only one that can do this,’ and that usually determines my answer. There’s other factors to be considered, of course, but I try to stick to that as much as possible these days.

One last concept that I’ll leave here is the concept of life as a multi-armed bandit problem, where we’re always exploring and experimenting and figuring out ways to exploit that knowledge that we’ve gained. Having this framework in mind and knowing when it’s time to put in the work to experiment build those relationships and reputation, and when it’s time to focus on that one thing that is going to bring you success — that’s key.

But hey, I’m no expert yet. I’m still learning too.