Marcus Pope

Husband, Father, Inventor, Programmer Austin, TX - °

Profile

About Me ◔_◔

I'm a software developer and this is my website — we're both located in Austin, TX. 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've been slowly molding over the last decade, and I'm currently tinkering with machine vision, NLP and voice synthesis.

Career

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 usualy 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.

Technology

These days I've all but given up on Java, .Net, Perl and Ruby. I don't typically work in domains that require strictly typed languages, and I'm not a member of the "everything needs to be strict" church. Python is about to join the group which leaves me with JavaScript & PHP as my primary languages. I'd still work in any language for the right opportunity but I suspect the right opportunity would have already picked a better platform... nerd slam! And if node.js keeps doing what it's doing I'll happily leave PHP behind too.

Ideology

I think Agile is the best we have, but zeolots 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 coallate 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.

Hardware

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 dekstop for the business-compatibility of Microsoft Office products. I have a couple macs for iOS development but I'm a strong proponent for native-wrapped html applications. I use KomodoIDE for the vim key bindings, and its almost ubiquitous code debugger. I personally perfer Mercurial but have used Git professionally since 2009. 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.

Politics

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 so many 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. I'm sure I'll get into the details in due time, especially with elections around the corner.

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 4yo daughter Evenlyn, and 3yo 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 (Array.prototype.map|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 acheivement 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 acheivements were a note-taking/cheat sheet app, a drugwars clone, 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.