Marcus Pope

Husband, Father, Inventor, Programmer Highlands Ranch, CO - °


About Me ◔_◔

I'm a software developer and this is my website — we're both located in Denver, CO. My hobbies include programming, golf, video games and building ridiculous toys for my kids, like an indoor toy cannon. I have a few side projects that I tinker with like machine vision, NLP and voice synthesis.


I've been developing software professionally since 1996 and in that time I've experimented with almost every language, platform, framework, process, and ideology our little community has managed to produce. To be honest, most of it is the same buggy, misguided rehash of a formerly failed idea, so for personal projects I usually roll my own just to add to the pile. It helps me define a problem space without relying on the assumptions of others. But for business needs I rely on vetted open source projects because I understand the real value is in the details and support. Fortunately having a steady line of personal projects helps me stomach the minutia that are most business application needs.


I think Agile is the best we have, but zealots ruin it. I think all developers should be full stack developers because integration issues mid-stack are a nightmare (and they coerce you into a paper thin middle-layer that puts stress on the front and back ends.) Git or Hg, doesn't matter as long as it's not CVS or SVN. Meetings suck. All of them should have their primary objectives summarized in the meeting request, and in most cases that snippet is a sufficient replacement for the meeting itself. If your boss needs you in a meeting you get your ass there on-time and pay attention. Estimates are just that, if you want to know when something will launch use a project management methodology and a horoscope to corroborate your own misguided judgement, just don't call a meeting to collate the results.

I prefer spaces over tabs, 4 spaces per tab, and \n for newlines. It's really the only way to go with cross platform, cross-editor, cross-vcs-utility, cross-developer-age development. A tab looks different depending on the environment, and in certain cases like svn on a win32 console, you don't have an option to change the 8 characters of whitespace. Senior (as in age) developers hate two space indents. And while \n is not notepad-friendly, virtually every other application on Windows will know what to do with it. I'm typically pragmatic about all of my preferences, which makes changing them pretty easy too.


In true polyglot form I run a highly customized version of Windows on a 17" Quad Core HP Envy. I use a Win32 port of Linux command line utilities, and a trove of batch, ps, and shell scripts to normalize the two environments otherwise. I run Ubuntu in a VM for Linux development, and keep a Windows desktop for the business-compatibility of Microsoft Office products. I have a mac mini for iOS development but I'm a strong proponent for native-wrapped or PWA applications. I use VSCode with vim key bindings. I have about 6 Microsoft Natural keyboards around the house just in case they ever stop manufacturing them - all of them still work perfectly.

I run this server on a ridiculously old P4 desktop with a whopping 4gb of memory. And even though I had to disable content caching in my CMS, page load speeds still keep up under moderate load. Needless to say, Node.js does very well for itself.


I'm hesitantly a libertarian, but not a 70's libertarian, or a sexist libertarian, or an anarchist libertarian, or an isolationist libertarian, or a tea party libertarian. Just a rational, centric libertarian. But I've found that I dislike enough people who call themselves libertarian, and found so many others who are not libertarian, that share a somewhat justified and negative opinion of the group as a whole, that I'm eagerly awaiting a new group that defines my political viewpoints.

Random bits

I was born in northern California, and moved to Texas in the early 90's. I've also lived in Arizona, coincidentally in the same area as my wife's extended family.

I'm married, to Elli Pope, and we have a daughter Evenlyn, and a son Keegan.

My favorite language is JavaScript, and yet I despise the ES5/ES6 language direction. Most of the "features" violate a separation of concerns. If they can be easily coded in the language they should not be a part of the language (|filter|etc for example);

I think code minification is almost utterly useless anymore, and doing so at the cost of sensible code debugging is down right mean. We have enough bandwidth, enough alternative optimizations, and enough gzip support to consider this practice archaic. That being said, I can still debug minified versions of jQuery surprisingly well.

My first programming language was QBasic - I started with tweaking nibbles.bas and gorillas.bas on my parent's 486dx100 and our roommate's Pentium 90 where the bananas moved a lot faster. My crowning achievement was a really poorly developed 3D FPS. Then Eric Schulz introduced me to Visual Basic 3.0 and I fell in love with the IDE and the GUI (conceptually speaking...)

I wrote my first "mobile app" on the TI-82 graphing calculator back in 1994. My crowning achievements were a note-taking/cheat sheet app, a Wall Street sim game, and a faux-3D flight simulator. I was extremely jealous of the TI-93's keyboard :*(

I have a twitter account and a Facebook account - I rarely use the former and I only use the latter for development purposes and the occasional picture post of my children for family members who don't know about my site.