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)















