Have you ever wanted to write code that you could never get away with in a respectable environment? In that case, I have just the repository for you, https://github.com/this-should-never-happen/this-should-never-happen. Pull requests of any quality are welcome! I started it out with a few really bad Hello World examples, some funsafe optimizations, and a regular expression‐based HTML parser.
Archives for 2017
A Month of Learning New‐to‐Me Things
As mentioned previously, I spent the past month learning a bunch of new‐to‐me things, with the goal of potentially opening up freelancing opportunities I hadn’t considered yet.
I started by getting my first ever smartphone. Yes, yes, I know. What sort of techie makes it all the way to 2017 without having ever had a smartphone. It just never seemed important to have one before now. And to be fair, I had done some Android programming on work‐provided phones a couple of years ago, so I wasn’t completely unfamiliar with them.
This led to learning more about phone bootloaders, low‐level Android components, and firmware, as I installed LineageOS and struggled not to brick my phone. Luckily it all worked out fine after a couple of missteps and about 6 operating system reinstalls, some of which were caused by my initial misunderstanding of how Android handles disk encryption.
Once I had a functional phone with Lineage, I moved on to setting up an instance of Nextcloud so I could sync my contacts, calendars, files, etc. using my own server. It definitely feels rough around the edges in a few places, but overall I’m really impressed with the Nextcloud core and its many available apps. It’s pretty amazing to be able to add something to my grocery list on my computer, then use my phone to access it at the store, without manually copying anything.
Once I got a data plan, I read up on mobile data security, found it disappointing, and set up redundant VPNs. It was more difficult than I expected to configure the VPN servers to support only 256‐bit crypto with ephemeral key agreement, but I eventually got it all working with the cipher suites I wanted. I wonder if there’s any market for pre‐built home VPN devices? That might be a fun business to start.
As I mentioned in my initial post about freelancing, I’m thinking of improving open source projects’ support for multi‐factor authentication. But before jumping on the FIDO U2F bandwagon, I wanted to understand it better, so I spent some time reading. The specification looks really well thought out, so I now feel confident that U2F is the right direction to push. Native U2F support in SSH would be really nice, so I might start there.
At one point, I started working on business cards, but got stuck deciding what link to put on them. My old homepage was not very good, and I also didn’t want a really long direct link to my résumé. So I took a roughly two week break to learn some modern web design and set up this new website. Now I have a bit of a crush on flexbox and some of the new CSS length units that didn’t exist the last time I looked at the specifications.
Freelancing
About a month ago, I quit my job to start freelancing. Or alternatively, to run an experiment, go on an adventure, take a sabbatical, or start a business. I’m still figuring out how much of each it’s going to be. My main goal is to try a bunch of different things that appeal to me, while being open to any opportunities that appear in the process.
Some of the things I want to try are closely aligned with my work experience. For example, I once found a security issue in a protocol designed to secure all inter-domain routing on the Internet, and I’m a member of the IETF’s Security Directorate; cyber security consulting is a clear next step. I like analyzing complex systems for potential security issues, and working to mitigate or resolve those issues. I’m also considering various bug bounties and Google Patch Rewards. It would be really nice to use the Patch Rewards program, or possibly other funding sources, to increase support for multi‐factor authentication in open source projects.
Other things I want to try are slightly more outrageous. For example, apparently some people make money by recording themselves playing video games; I want to try something a little different, speedrun videos of some of my favorite logic puzzles. Or maybe I’ll make a YouTube channel about cryptography and other assorted topics.
I also want to spend more time learning new‐to‐me things, in order to see if any of these things lead to new opportunities I haven’t even considered yet. This is most of what I’ve been doing for the past month, and it will get its own follow‐up post shortly. Edit 2017-09-02: added link to follow‐up post.
I’m looking forward to seeing where this freelancing/experiment/adventure/sabbatical/entrepreneurship plan goes.
Bailey at the Beach
Despite the post date, this is not an April Fools Day post. But it does come with a video of Bailey.