I am a backend Python/Django developer and all around fun person.
I am a Python developer focusing mostly on Django, business logic, APIs, and 'vanilla'. I leverage over 16 years experience as a developer (full-stack/back-end), produce high quality code, and deliver long shelf life products where SDLC matters. I prefer to work in Python but do make exceptions for small teams as my experience, language count, and rapid skill acquisition delivers unparalleled value. Considerable leadership experience included, but I chase knowledge over titles knowing that I need to code to be happy.
I am generally a private person advocating for responsible use of data in a fair and equitable regulatory ecosystem. Finding solutions to problems continues in my free time via work in electrical and mechanical engineering, CAD design, audio and video production (I edit/produce a podcast), and a passion for small marginally autonomous devices. Most of my down time is spent doing R&D or learning a new skill. Right now Elixir has caught my attention and self-directed education is beginning to focus on this powerful language. I really do love technology!
Slack Apps: Custom integrations and bots of all types. Several freestanding "bot scripts" finding and reporting data 24/7, fully integrated chat-bots running off a Raspberry Pi (on my desk), weather applications delivering on demand aeronautical data via zipcode. One such app, a service I have run for quite sometime is Interslack. Matching user requests for a channel or YouTube user where new videos are delivered to Slack or Discord, try it, it's free. Several other Slack integrations are out there, chat apps that can query and report on infrastructure (embedded agents), using Slack as part of authentication procedures, and even early attempts to control robotic cameras.
Shopify ETL: One of our stores needed to move. validate, and audit thousands of products. From this work we published an ETL (Extract, Transform, and Load) script. Using this Python library creates a foundation for custom data needs in the Shopify API. As I am no stranger to Shopify, e-commerce and selling on line, this work underscores the intimate relationship I have with the Shopify API, all of the gotchas, and how to use their cloud service to achieve spectacular results. Note: This is a little out of date being on Python 2.7x.
"That Cambridge Analytica App" No, this is not link bait. In 2013 I was contracted to build a prototype of the same basic app for an organization quite similar to the RNC. The application worked, scraped Facebook data when authorized, ran copious math against the data, and created suggestions per a library of algorithms chosen and used on the fly. Unlike others, I followed the rules such as expiring data, created safeguards against TOS violations, and resisted the urge to normalize data (commingling). The success of the application and the underlying suggestion engine was enough for me to leave Facebook and redesign the footprint I leave on the web.
Multi-vendor App: Shopify application allowing a store to be transformed into Etsy. Running from 2014 to 2019, originally built on Flask. Version 2 is benifited greatly from a Django core with the internals at about 20kloc (thousand lines of code). The queue is an engineering masterpiece. Using RabbitMQ a product promotion from app to store accesses 4 different APIs (services) to create the product, water mark the image, add the product to our email delivery system, and also manages all the files in a staging system on in the cloud.
Besides Python I am usually hanging out in places like...
SaaS is everywhere but Heroku provides solid deployments, CI integration, and Elements allow me to learn, test, use, and scale the best of 3rd party services. Still, I am no dullard with dev-ops (infrastructure), but I see infra work as a separate field that requires career level dedication to succeed, just like coding. For my apps I like to code and not wrestle infrastructure. On the job I seem to always have an AWS console open and Boto3 in use.
It feels like I have tried all of the frameworks, but Django is the only one that had the build, tooling, and foresight to be a real contender. I read the The Django Book (paper version) twice as I was learning the framework way back in 2012 and NEVER encountered an app written so intelligently. I am not a fanboi, I am a guy with the same problems as other devs who need a good intelligent framework to build upon.
I am fascinated by queue systems and RabbitMQ in particular. Often Celery is involved, but raw (pure) queues are not out of the question, just harder. Queue systems allow all of us to do more, but beyond the power and added value I am fascinated with ErLang and Elixir (currently studying). Elixir is where I see the future going and I am 100% on board!
"Sometimes you have to write 2000 lines of code to know what 1500 lines to discard."
Software development exists on the screen and in real life...
What is the (current) perfect stack? Currently Heroku, Postgres, Python 3.x, Django LTS (current please), RabbitMQ, Celery (as needed), JQ, HTML5, Django REST Framework (as needed), Wagtail (CMS upgrade) BASH deployment, Github (GitLab is just not ready yet),
What does your dev environment look like? Working in office, remote, on location is usually very similar. Current IDE is PyCharm. PIPENV. OSX via 15" MBP. Postico (PGSQL), SequelPro (MySQL), Studio3T (Mongo/DDB) native terminal (no mods), GIT Tower (perform better without command line), single laptop screen, legacy Apple Bluetooth keyboard, Bluetooth multi-touch track pad, AIAIAI TM-2 Headphones.
Unicode thoughts? Like it, fewer errors and reduced concern on character based exceptions.
Do you have some code examples? My best work is for other companies and is their property. Some work is visible on GitHub, but I would prefer to discuss a project or position's needs and deliver selected examples from my archive.
Wagtail and Django REST (DRF), heard of it? Very much! I have worked on Django REST Framework multiple times and it is amazing, especially with Swagger integration. Wagtail has been on my radar forever and I jumped in officially in 2019 once I saw a major Django shop add to their core offerings. Wordpress is not looking too good for the future and delivering content is a problem that will never go away, I am betting on Wagtail for sure!
Impostor syndrome, real or myth? Very much real and a legitimate struggle for me and most programmers I know. Yet all the problems still get solved, code is delivered, and life moves on...
Oxford comma? Of course. Anything else conflicts with PEP8 and occasionally adds semantic ambiguity.
What do you like to do away from the screen? Spend time with my wife, electronic engineering, build stuff, and fetch with my Welsh terrier.
What are your favorite books? I mostly read programming books, but also enjoy derivative works from Burroughs and Gysin cut-up experiments. I will never forget Anthony Bourdain's writing, he changed my life and he is very missed.
How do you feel about standardized tests? Generally the single most painful part of my professional work. I never tested well and found that these tests represented my potential in a negative fashion. The picture painted is usually wrong, I am not a comp-sci grad, they do well on these tests, not me.
What are your favorite movies? The list is easy: Waking Life, Big Lebowski, and Brazil.
What are your favorite albums? All I need are three: Paul's Boutique by Beastie Boys, Little Sunflower by Milt Jackson, and TNT by Tortoise.
What is your favorite quote? "When the going gets weird, the weird turn pro." --Hunter S Thompson
Simplicity and elegance are expensive up front but a better investment in the long run.
Communication occurs on many channels. Instant message, phone, team platforms, project management software, video services, and email (the best place to begin).
marc [at] datamafia [dot] com