Five things to do after college

Today I was supposed to be attending a bootcamp on the R programming language. I don’t really have much interest in R, per se, but need one credit hour to fulfil my computer science degree requirements. Python wasn’t being offered. The course was cancelled due to “lack of interest,” so now I’m left wondering what to do to fulfil that last credit. I sent a couple of emails last night inquiring whether I could run my own bootcamp on blockchain technology, as I’ve run several meetups and could easily spend a day or two talking about it.

That got me thinking about plans to hold a Mid-Atlantic Crypto Conference that had been shelved for the past year. The idea was first brought to me by BCause founder, Tom Flake over a year ago. BCause has since been forced to liquidate, and I haven’t talked to Tom since the news hit. I’ve been to several cryptocons, one in Pennsylvania, and another hosted at Virginia Commonwealth University, so I think I would have the resources to throw something together. Throwing it together in sixty days before graduation would be quite the challenge, though.

I’ve also been thinking about my post-graduation plans:

Work for a crypto exchange: blockchain and computer science are probably my two favorite things to do, this would make the most sense for me. I’ve been in the space long enough that it’s time to make a career out of it, and the money should easily be six figures. I worry about the time committment needed to go and work for someone like a Coinbase or Gemini, though. And the competition would be fierce. A more likely, and less financially lucrative opportunity would be to go work for one of the smaller, niche exchanges, like Safe.Trade, for example. Or…

Start my own crypto exchange: This would be very risky, and likely require a lot of time. There’s some open source exchange software out on Github; I’ve already been planning to take a look at it and see if it can be used with Cryptonote coins like the planned Pennycoin fork. What kind of income would that generate during the next bull run? And what kind of headaches would that entail? I can imagine.

Get my masters: I could just keep taking classes. I love learning, but I’m not sure this makes financial sense, to keep taking on debt and keep taking classes for another four years (part time). I had joked about doing this just to delay repayment on my student loans, but I’m not really interested with any of the programs that are offered at my current university, and the prospect of transferring somewhere else doesn’t appeal to me right now.

Go work for a development firm: I’ve already been presented with one job opportunity via a recruiting agency, so it shouldn’t be too hard to find something, even if it’s a short-term contract. Doing so would mean cutting ties with my current job entirely, and although I’m pretty much done with the MSP model, and IT support in general, I don’t think I want to abandon the guy I’ve been working for the last seven years. I’d rather do…

Freelance development: This would be the dream, wouldn’t it? Pick up a few projects, knock out a few Django prototypes and voila! This could be very lucrative if done right, finding jobs could be hit or miss. I could pickup work through the local startup and coder meetups, pickup some OSS rewards on GitCoin. Wouldn’t even have to quit my day job, really. This really seems the most appealing to me, as far as the status quo goes, but is it just me being lazy?

Getting your money’s worth

Or, make sure you back up your 2FA codes…

I’ve been using the same iPhone 7 Plus for over three years now. In fact, I just finished paying my carrier the last installment plan for it a few months ago. Since my wife and I are focused on becoming financially independent, having the $40-50 a month back has given me some satisfaction, and I had no desire to upgrade to a new device. In fact, part of my mindfulness practice has been to spend less time on the phone, so I’ve taken a few steps to make the phone less appealing to use. In addition to keeping it in do not disturb mode most of the time, I’ve also turned the screen to greyscale via the Accessibility Options -> Color Filters. There’s also a Accessibility Shortcut that I can activate with a triple-click of the home button to turn this off, but most of the time when I see my icons in full color the vividness is almost unbearable.

Now I’ve had no shortage of accidents with my phone over the years. I dropped it while canvassing back in 2017, and rather than break the screen, it did something with the LCD substrate that caused black lines to creep in from the edges. They went away after a while before coming back, and I dealt with it for several months before they became so large that I couldn’t read things like the battery meter or other elements that I couldn’t scroll to a better part of the screen. So I reluctantly brought the phone to the local cell phone repair store and had it fixed for a hundred bucks. What took me so long, I said to myself, looking at my fully-readable screen.

The next time I broke it I decided to try my own repair. I ordered a kit for forty bucks off of Amazon, and pleased myself by repairing the phone myself in less than an hour. The repair didn’t last much longer than that, as I again dropped the phone and broke the screen again. The next DIY repair wasn’t so lucky.

The encryption for the Touch ID on iPhones are controlled by a small integrated circuit soldered onto the home button’s ribbon cable. This chip is paired to the iPhone’s motherboard and contains hardware keys that are part of the encoded fingerprint data. In the past, Apple maintained tight control over the repairing of the device with a new TouchID button, and it was not something that could be done outside of an Apple store. In fact, a whole market around repairing TouchID flex cables appears to have sprung up in Asia, as there are several how-to repair guides on these cables that involves sophisticated soldering techniques.

This was obviously beyond my ability and resources. My other option was to have Apple replace my screen for $160 or so. It seems that Apple just swaps the screen with the home button attached, to mitigate the risk of damaging the flex button during removal as I had done. That was still a bit much for me, and I relied on the on-screen Assistive Touch button for several more weeks. The most major downside for losing TouchID was that LastPass forced me to type in my full password, but it wasn’t the end of the world.

And then the final straw. The microphone died. I’m still not sure what happened, but at some point I discovered that I couldn’t complete calls. I couldn’t hear anyone, and they couldn’t hear me. But it was strange. Certain videos on Twitter would play, but not others. I couldn’t record sound in the memo app or in videos. I could complete calls via my car’s bluetooth or my iPad, but not using my bluetooth headset. And at first this was fine; I have a VOIP phone for work that I can use for important calls, and everything else went to voicemail. It was actually kinda relaxing for a while. At some point last week I decided enough was enough. I did an iTunes backup, wiped my phone to factory, and checked again. Still broken. I restored the backup to make sure I still had access to my 2FA accounts, and made plans to go to the Apple store for an assessment.

The short story is that the Apple tech couldn’t run the diagnostics. The Lightning dock diagnostic device that they use returned CATASTROPHIC FAILURE and the tech just shook their head. Since I was adamant about another $500-800 phone purchase, I went to file an insurance claim with my carrier, agreed to a $120 for a replacement device, and had a new phone via FedEx the next day. I ran a backup on my old phone, loaded the new one, swapped the SIM card and laughed to myself. What took me so long, I asked myself again.

I wiped the old phone, threw it in the box, slapped on the return shipping label and stuck it in the mail. Then today I went to open Google Authenticator and stared in shock at a blank screen. What followed was an hour of mild shock as I cataloged and prioritized what I had lost. Work accounts were the least of my worries, of course. I have crypto accounts. Thankfully Coinbase and Gemini were in Authy, which seems to use a cloud based storage protected by a key that gets backed up by iTunes. After some mild panic-Googling, I was able to recover one of my Google Auth account keys for another exchange from a note in my password manager, and started a two-week cool-off period on another. I provided some personal details in a ticket to a portfolio tracking site, and they had the account unlocked in less than 15 minutes.

Everything that I reactivated went into Authy. I’ve still got a few vendors that I’m going to have to contact to regain access, but nothing critical that is causing me any stress. I’ve learned a valuable lesson about 2FA.

And next time my screen breaks or my phone gets damaged, I’m not going to wait months for repairs. I’m just going to file the damn insurance and be done with it.

“If you think you’re enlightened, spend some time with your family”

Last night, I spent a couple hours working on a team project, trying to get our development environment setup for our team. I was using a Django Docker container that I had generated using Cookiecutter-Django, but I had forgotten to select the setting that checks in the local .env files. I had already deleted my local copy of the repo to test cloning it, so I had to start from scratch.

I wanted to have an answer file in case I needed to regen the project with Celery support or whatever, so that meant learning about Cookiecutter’s replay capabilities. After figuring that out I determined that the Git repo wasn’t setup properly, so I moved the old one on our uni’s GitLab and ran the whole procedure from one more time, pushing and recloning the entire repo down and deleting my Docker images and building the whole thing again to make sure my teammates wouldn’t have any problems running it themselves.

I popped into our team Discord channel to let everyone know, and found myself in a discussion about dropping Django and pivoting to Android Studio.

I was furious.

Not like annoyed, but actual rage. I felt my blood pressure go up and I had to try very hard to maintain my composure while I responded.

I’ve never been what I would describe as an angry person, in fact most of adult life I’ve been pretty good about not getting mad at people. Computers on the other hand… I’ve been able to deal with things pretty well, I’ve never been one of those guys who loses their cool, gets in fights or screams at people. The last few months though, I’ve been a bit more willing to allow myself to get mad, and I’m not sure whether or not it’s a good thing or not.

When I was younger, I did a great deal of holding things in. I had a lot of unrequited crushes; mostly they were unrequited cause I never let the other person know. But outside of issues around my sexuality, I don’t think things were ever a problem. Now I don’t know if my meditation practice has anything to do with it, or whether part of it is being a father and having young children, but I am definitely way more willing to let people know when I’m mad or upset. I’m sure part of it has to do with how I was raised and disciplined. I’ve probably internalized a lot of abuse — for lack of a better term — and have been struggling with how I deal with that and how I discipline my children.

While I was responding to the team, I made sure to voice my frustration without resorting to any personal attacks. I spent about ten or fifteen minutes trying to respond to a few points and finishing what I had came there to do, to let them know that I had redone the development repo. I said straight up that I was too mad at the suggestion that we drop our entire software architecture plan six weeks out from the end of the semester. I tried not to be snippy and sign off with some useful information, so I told them to let me know what they decide tomorrow.

I haven’t really been able to stop fuming about it since I signed off though. I woke up after an hour of going to bed and tried to read for a bit to go back to sleep, and still woke up an hour before my normal time. My sleep patterns have been a bit fucked and my wife is out of town, but it’s still an unusual pattern for me.

I don’t want to get into any more of the details of this, but want to close with a quote from the Dali Lama that comes to mind: “worrying is prayer in reverse”. Meditating on this incident and writing about it has already reduced some of the anxiety or stress that I was feeling. To circle back around to earlier about being more willing to experience the anger and allow myself to get mad, I want to close and note that it’s important that the anger doesn’t get bottled up inside, and flows out before it can do real harm.

I’m going to post this and move on with my day. Peace.

Single dad weekend

So my wife’s job in union leadership has lead her out of town again, this time by train to DC where she’ll be lobbying our local congressional representatives. I dropped her off at the train station early yesterday, and spent the rest of the day with the kids. Last night we broke open a copy of Shadows in the Forest, which wasn’t quite what I was hoping for. My oldest enjoyed it, but I was mostly bored by the second game. We’ll try again in a few weeks and see if I warm up to it. The rest of the evening was watching various live performance videos on YouTube. I think I may have overdid the head-banging to Enter Sandman, as my neck has been bothering me all day. I thought I had slept on it wrong before I remembered what happened last night.

After the kids went to bed I spent the rest of the night watching the final episodes of Bojack Horseman while refreshing TradingView and Twitter on my app. Of course the big news is that Bitcoin crossed $10,000, and of course CryptoTwitter lost their shit. There weren’t any big price moves like I was expecting though, just a slow and steady slog up to it on the 1-minute candle, bouncing a narrow range until it finally made it and everyone started congratulating themselves for making it through the bear market.

I did see mention that this time feels a lot different. Last time we were here, in November of 2017, there was so much excitement about it and everyone (myself included) seemed like they were going crazy. None of that this time around. I actually tried to talk about bitcoin to one of my neighbors earlier today, but for the most part I’ve barely mentioned it to anyone in real life the past few months. I’ve brought it up several times with others the past week, but no one has asked me about it. Perhaps it’s good to keep it that way for now.

I’ve been taking it easy this weekend, trying to keep myself sane for the next few days. I’ve got a busy week at work lined up, and I know it’s going to be busy, so for tonight I’m going to lay on the couch with The C++ Programming Language. I’m only a couple chapters in, but already learned a good deal that is going to come in handy with class. For an old nerd like me, there’s no better way I’d rather spend my time.

February Focus

Well February is shaping up to be a very busy month for me. Besides my two courses to finish my degree, I’ve got one credit hour left to earn, so I’ll be taking a 2-day bootcamp on R near the end of the month. That same week, I’ve got to take my college exit exam. In addition to that, PennyKoin has been revived, so the team is debugging a wallet bug that is burning payments, and also forking Monero as the base for a new chain that we’ll be swapping to. And if that wasn’t enough, I took on digital director duties for a school board campaign. I must be crazy.

But wait, there’s more. I’m setting up a WordPress site for the local Democratic Party. I was Sergeant At Arms previously, but had to drop that. I’ll be working with a steering committee and doing the technical work to guide them through customizing a theme I picked out an setting up operations on it. I also promised I’d submit a merge to the Python TDAmeritrade API library.

I’m really having to dig into C++ between my course on scientific computing and Pennykoin. It’s so different coming back from spending so much time on Python. I’m still reading through Clean Code and the Gang of Four’s Design Pattern book to try and figure out how to abstract my code and get rid of code duplication. My other class, a group development project, is basically going to be a social networking app running in a Django setup. I’m going to be demoing Cookie Cutter Django and a Docker setup for the prototype presentation on Thursday after I finish the first revision of my software design spec.

My boss had a lot of questions for me earlier this week about my post-graduation plans. Our company still isn’t making any money (or so he claims), and I was honest with him that I can expect a six figure salary after graduation. I told him that I wasn’t going to abandon him, but that I thought our business model was a dead-end. I suggested a pivot to business process automation, and alluded to trying to some steps that we could do to open up the web-page maintenance business. We’ve been shoveling off any web development requests that our clients have had, and it’s probably been the wrong move. We’ve got a pretty big marketing funnel, and so I suggested that we scrape all of the web domains in our database and run them through a WordPress vulnerability scanner and see what we get. Low hanging fruit and all that.

Lastly, I can’t wait to listen to this episode of Unconfirmed about employment in the blockchain industry. I think in some sense, that’s where all the work I’ve been doing recently has been heading. It seems so obvious right now. Between the stuff I’ve been doing with Pennykoin, the trading algorithms I made for my brokerage, and the infrastructure work, it’s obvious that’s where I want to go. I’ve got a connection also that I’m going to pursue.

Right after I knock some other things off my todo list.

A full plate

Earlier today I finished a fascinating interview that Tim Ferriss did with Penn Jillette. One of the things that I found most interesting was his journaling habit that he’s done daily for over thirty years. He begins each morning spending about half an hour writing about the conversations that he had the day before and some of the things that he did. He said he writes about half to a thousand words, then finishes up by reading the diary entries from one year ago, five, ten and so on years ago. It seems to me that it’s quite a way to keep track of one’s life and find out what one was doing, and how one’s grown.

I think ideally I’m still trying to make this blog a diary of sorts. Having a daily writing habit is good practice and keeps my mind sharp, but at the same point I don’t see that the content here would be of much use to anyone other than myself in some regards. I don’t want to get into the minutiea of who I talked to and so forth, but I aim to say something true each day, and hope that I’ll be struck by some sort of creative impulse that will mean something more than my particular day. I tell myself if I just keep writing, things will develop on their own. We’ll see.

I’ve been trying to maintain my routine, getting up early enough that I don’t have to rush, trying to maintain a balance between early morning productivity and my late-night tendencies. Trying to juggle all the responsibilities that I’ve somehow managed to saddle myself with, and still find time to do what I want to do. Being a parent is probably the most important job that I have, and it’s made harder by the fact that I only have less than three hours with my children each weekday. We recently picked up the idea of “special time” from one of the discipline books that I picked up to help deal with some defiance issues that my eldest is having. It’s fifteen minutes a day that the kids are in charge. Right now all they want to do during that time is for me to give them horsey rides, or toss them around with my feet, doing front and backflips onto the floor or couch cushions. We’ve been experimenting with me holding their feet in my hands while they stand and I push them up in the air above me. Needless to say I have been sore and feeling beat up for several days.

I’ve had some physical discomfort in my shoulder the past few days. I can’t tell if it’s due to the aforementioned horse-play, or a repetitive stress issue due to leaning on my elbow while at my desk. Or it could be strain from the increased amount of piano practice that I’ve been doing. I’ve got a couple short classical pieces memorized that I’m polishing up and hope to have a video up soon. I’ve been spending a good deal of time throughout the day at the keys, and have been slowly improving over the past few weeks. Emphasis on slowly; just earlier I was able to complete a short Bach minuet without any flubs. I’ve probably been practicing it for weeks.

I’m also fighting the nagging feeling that I may have taken on too much and that I’m going to be very, very busy soon. I’m maintaining right now, but a meeting last week looks like it may lead to a partnership that could lead to a lot of opportunity. I just have to balance my past obligations, which are so low on the backburner right now that they may wind up burning me if I don’t stay ahead of it.

Other than that, it’s just breathe in, breathe out. I’m doing fine.

Not getting fired isn’t enough

Last week was the first day of my last semester before I get my degree, and I’ve already managed to miss two days of classes, one because I had the time wrong, and the second because my youngest was sick. The New Year has seen little activity at my day job, save for some scrambling around the end of life for Windows 7. And despite my best efforts, I’ve still managed to pick up a few projects to add to my already overloaded schedule.

Most of my side work right now is around website hosting. Maintaining domains, SSL certs, installing WordPress; nothing too complicated. I’m using Infinite WordPress to keep an eye on security updates and backups, and have a year membership for Envato to access all their premium themes and other assets. It’s low hanging fruit, I’ll admit.

I’m also close to closing a deal for setting up digital infrastructure for a local school board candidate. One of the perks for having run for office myself is the ability to get paid to do the same work.

Each day that goes by brings home the realization that I’m all but checked out from my day job. The last few months of 2019 I was busy furiously trying to find ways to automate operations as much as possible. Not now. There’s no urgency. I’ve spent a lot of time thinking about core values, trying to figure out what kind of culture we have at my job, and the answers I’ve found have been lacking. I take a lot of the blame for the way I’ve acted that have led to a toxic work environment, which has caused any efforts to enforce discipline to fail.

Perhaps part of it is going on several years now without a boost in compensation. I’ve been working with the same salary for about five years now, which is crazy. I’ve told myself that I’m comfortable with this because of the freedom I have, I’m able to work from home and don’t have to worry about how many hours I actually work. It’s well under thirty five a week. Even the sparse goals that I’ve set for myself for billable time have gone unchecked.

There is an old adage: people work only as hard enough as to not get fired, and employees pay them only enough not to quit. It’s not enough for me anymore. My main concern right now is doubling my income before the end of the year. Wish me luck.

Thanks to supporters

I hate to use the term ‘life changing’ to describe what’s happened lately, but I’ve seen a few orders roll in for the EICAR products that I put together and it has really made my week. I’ve been dreaming of leaving the rat race and having some sort of self-sustaining revenue streams to help me escape wage-slavery or whatever you want to call it. I’m not being very eloquent right now, but the plan is to escape the need to trade time for money, and seeing these orders come through and be fulfilled without any additional effort on my part seems like a dream come true.

Love him or hate him, Tim Ferriss has been a huge influence on me. I read the Four Hour Workweek when it first came out, but for whatever reason I’d never been able to take that leap and to full bore into something that could do that type of revenue-generation. About the closest I’ve ever come to it has been investing, whether buying stocks or crypto and seeing things take off of their own accord. (The 15% rally in BTC this past week is no doubt affecting my mood.)

I’ll be honest, I won’t be paying the grocery bill with the proceeds from the sales that I did, but this past week is very inspiring and helps reinforce that another way is possible.

Will this image break automatic camera scanner systems?

EICAR antivirus test string

The image above is a QR-encoded representation of the EICAR antivirus test string. The string (`X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*`) is used to check the effectiveness of antivirus systems without using actual malware. It was brought to my attention via a Tweet by computer security Rob Rosenberger in which he placed QR code on his car during a recent road trip. The intention here being to get automated scanners to read and insert the string into their databases, hopefully causing them to crash.

A few people mentioned how they wanted these on hats or shirts, so I spent some time today putting a couple of products up on the ecommerce site. After I put this out, someone noted that this string only works if it is the only data in a file, which reduces the likelihood that it will actually cause any havok.

Still, if the idea of trashing facial recognition systems or license plate scanners sounds like fun to you, then perhaps you’ll be interested in this.

2020 Goals

I’m 40 years old, which means that I’ve spent half of my life in the 20th century and half of it in the 21st. Perhaps that’s why I wasn’t excited with the fact that we last night we moved into a new decade. I was reading a book last night when midnight came; my family was asleep. There had been pops of fireworks going off before midnight, but there was a point when they started firing off continuously when I knew that the New Year had come. I wasn’t sure whether it was the City or the nearby military base where they were going off, but after about what was likely the official display ceased, what sounded like small arms fire kept going on for another twenty or fourty minutes. I imagined handguns or semiautomatic rifles being fired off in the air. (I once found a spent 9mm bullet laying on my porch step, no idea where it came from.) The explosions were punctuated with the sound of sirens as emergency personnel responded, either to the illegal fireworks, firearms, or perhaps to some actual injury.

  1. Finish my degree: I’m one semester away from getting my bachelors in computer science. I’ll likely finish with a >3.5 GPA. This should open up some opportunities, but the worst thing about it will be that my loans will come due. This will likely cause some financial hardship until I accomplish #2…
  2. Get a raise: I’ve been at the same job and salary for four or five years now. My wife outearns me by a great deal, and it’s not a problem, pride-wise, as much as it is a difference in lifestyle. My budget is extremely tight and is a subject of stress, while she seems to have a lot more discrecion in how she handles her finance. I know that even with my lack of anything more than an associates degree I’m underpaid, but the freedom I have with my current job makes up for it. That freedom has downsides though, and it’s time to step up. Unfortunatley, I’ve come to recognize that my current job is with a zombie firm, which is why item #3 is…
  3. Find a new job: I’ve been with my current job for 7 years, which is longer than I’ve ever held a position anywhere else. I tell my wife I’m unfireable because of key-man risk, but I’ve come to realize that everyone else on my small team is as well, and that’s not a good thing. I’ll have to expand on this later. I have no desire to go back to a corporate position where I have to work more than 30 hours a week, so I will have to make sure to focus on #4…
  4. Pickup more freelance/contracting work: Until the next Bitcoin bull run makes me independently wealthy, I’m going to have to focus on expanding my independent work and pick up some actual clients. I just need to pick up sixteen clients at $250/month retainer to replace my current real job, so I’ll just need to focus on picking up a few more and staying on top of things while I work on a few more large development projects.
  5. Get my daughter sleeping in her bed: She’s three years old now, and still can’t fall asleep on her own. I don’t know if we broke the first one doing it, but at least she goes to bed without having to lay down next to her for twenty minutes. This will be a long hard fought battle, especially until I can get my wife on board.
  6. Deal with my defiant child: I have two daughters. My boss has two as well, and often tells me that I have no idea what kind of shit I’ll have to deal with when they become teenagers. He assumes they’ll live that long. I would suspect that my eldest has oppositional defiant disorder save for the fact that she’s an angel with everyone but my wife and I, so I just assume it’s our lack of parenting skills. I’ve got some books that I’m reading and some strategies that I’ll be working through, so we’ll see how that goes.
  7. Continue to meditate: Such a simple thing to do that has such a good impact on my well-being. I don’t know that I’ll be doing hour-long sessions, but twenty minutes a day seems like such a no-brainer. Figuring out how to make it part of my daily routine and get the kids involved will be key.
  8. Exercise regularly: I’ve been through so many phases on this that it’s ridiculous. I’m really going to need to prioritize this, along with meditation, to make sure that it gets done on a regular basis. When I’ve done so in the past, the results have been tremendous, but it’s been so hit or miss lately.
  9. The drink: the hundred-plus days off the wagon that I did late last summer was one of the best things I’ve done for my health. I’ve already accepted the fact that I’m an alcoholic (an addict might be a better description,) so I have to figure out whether I want to continue being a functioning alcoholic or what.
  10. Up my piano skills: music has always been part of my life, and I’m finally getting to the point where I can sight read. Besides a few pop tunes that I’ve been playing around with, I’ve almost mastered a Bach minuet. I really want my kids to pick this up by my example, but I’m having difficulty figuring out what an appropriate goal for me would be. Bach’s Inventions should be something I can achieve this year.
  11. Write: I am going to start a 1000-day goal to write at least 200 words to this blog.

Wish me luck!