Black Mage
“I don’t understand what you do, it all seems like black magic to me.” - A very honest and satisfied customer.
As someone who has had the pleasure and the curse of doing things that my boss doesn’t have the time or the context to understand, I can’t tell you how many times someone has expressed something like the above sentiment to me. I know a huge part of it is because I have been working at companies small enough that I don’t have very many peers who are fully aware of what I’m doing, and those few peers can’t always follow the logic I’m using. I honestly don’t know if that means I’m operating above them, or that my logic is hugely flawed, but after a few years of getting more positive results than negative I’m starting to trust my gut a lot more.
I’ve been called a doctor (I don’t hold a doctorate), a wizard (I don’t practice magic or magicks), and a lifesaver (I don’t know what flavor). I’ve also heard all sorts of negative descriptions of what I do, and its weird. These small companies need results that are affordable to maintain, and quick to implement, but the thing that they seem quickest to cast off, the thing that would bring my work from the shadows into the light, is documentation. I’ve tried my best to leave ample documentation at the positions I’ve left. I have no idea if it was enough, and at this point I don’t even really care because I was far more interested in making sure they had it than they were in me giving it to them.
I’ve learned a couple of things in the last few years of no one really knowing what I do, and I think I’d like to share those with you.
Keep documentation. As much of it as you can. If you’re the only one who knows something, if you forget it, everything is out to sea. Plus, if you decide to leave the position, you can hand over the documentation and not have any guilt about them not understanding what you did.
Find metrics for all of the work you do. They should be as honest as you can make them, but they need to be nicely quantifiable so that if your manager starts wondering about what it is you’re doing, you have a bunch of numbers to give them that look nice in a report to give to a client or upper management.
Lean into the laziness. I don’t mean miss deadlines or do sloppy work, those will get you fired, but instead relish in the fact that the only thing setting your own process is you. Research, learn, gather or build tools, and join online communities. All of these will make you better and faster at your job, and learning can be fun on its own, and you’d be surprised what kind of information you can tie back to your own job. I read about games and game engines all the time, my justification is that I look into the graphics technology and I crib some of their ideas to help me optimize websites and software.
I mentioned this above, but it really deserves its own point. Join a community of people who are doing something close to what you are doing. The hardest part of having a position like this is that there’s no real way to know if what you are doing is the right thing. Sure, it might be working for now, but is it the best? Learning from your peers can better your process, but it will also save you from a bunch of crippling doubt. Most people, even experts in their fields, are just kind of trying things to see if they work. The difference between experts and amateurs seems to be that experts do this ahead of time to plan their future actions, and amateurs do it almost exclusively in reaction to some deadline or emergency.
Be ethical. Having a position like this makes it exceedingly easy to lie. And you will get away with it, possibly for a long time. But it does catch up to you, and when it does it can kill your whole career, as well as get you fired. Plus I’ll hate you, because you’ve helped contribute to a lot of friction I’ve had with managers over the years.
Be understanding that people don’t understand what you are doing, or what you are saying. Learn to laugh it off. They’re not stupid or ignorant, they just don’t have the same specialized knowledge that you do. If you feel anger welling up, remember, your specialized knowledge is why you’re probably going to be very employable for a very long time.
If you would like to know what I do, here’s an incomplete list of projects I have worked on (they’re not all my best work, but they all taught be something):
PCI Complaint Credit Card Encryption (AES-256, double encrypted, second key is kept [also double encrypted] in an external database requiring IP, hostname, and API token to access. This one was extra dumb because for good measure I built an implementation of the Diffy Hellman exchange used in the communication between browsers and SSL websites and used it inside of the exchange that was already happening to connect to the SSL API in the first place. I encrypted the communication inside of the encrypted communication. I still have no idea if this did anything to help secure it, or if it was just giving the server processors busy work. But anecdotally, we never had anyone decrypt our data without both keys… so)
Completely rewriting a custom piece by piece CMS and then transforming it into a CRM (I hate that terrible acronym, it’s a client, employee, and project management portal)
Website optimization
Using Google Maps to outline your driveway to estimate the material needed to repave it (simpler than it sounds, I did this in three hours)
Writing a client to to automated cloud backups of files chosen by the user (Think Kryptonite, but way less of a budget)
Modifying the above client to sent status and health data back to a central server for monitoring (think LogMeIn, but way less of a budget)
Writing crawler with the aim of only requesting every resource once, even if the resource is used on multiple pages. (I hope all crawlers are built this way, but I suspect they’re not)
Evaluating the data from that crawler to create an SEO report about that website (Think SEM rush, but way less of a budget)
The worst API implementations I’ve ever seen, and I’ve used SOAP.
Writing JavaScript libraries for commonly requested “flashy” elements that leverage technology to make the effects as optimized as possible. (Think banner sliders using CSS transform, and parallax effects using HTML Canvas, anything to pass the heavy lifting over the the graphics hardware and free up the CPU for other work)
Database Diff tools for projects that don’t have proper version control for whatever goddamned reason (there’s no good reason, but you play the cards you’re dealt)
Automated migrations of data in and out of OpenCart, WordPress, Drupal, and even once out of static HTML files written in Dreamweaver V1.0 (and we cached back and forth from wordpress every night on the last one, a dumb requirement, but I did it.)
Calling up a client and telling them that their computer has a virus, and they need to disconnect it from the network, or I’m locking them out of their email account before they spam the entire North American continent. (And yes, you really do have to do this sometimes as a server admin when your boss refuses to let you just lock out the user.)
And, I shit you not, a passed over prototype for integration of a major Shipping Carrier’s new “Deliver To Very Large Drugstore Chain” API features into a woocommerce plugin. They would have sold the plugin along side several others, we would have made a few pennies on every order. (Managers, please tell your developers when a prototype is being tested in front a board of directors, then your developer may not go home when the prototype was bricked by a last minute feature the night before, assuming there will be time to work on it tomorrow)

















