Michael Sendker

Full stack web developer. Python generalist. Specialized in GatsbyJS and Flask/SQLAlchemy.

What I Can Do

I consider myself principally a Python developer. I have spent the past three years developing a diverse range of software in Python, from ETL pipelines to password generators to combinatoric optimizers. But by far most of my time has been spent developing a single web application in the pursuit of my obsession.

Consisting of ≈14,000 lines of code in Python, Flask, and SQLAlchemy, anno.wiki is my pet project to supply the world with definitive, collaborative, and exhaustive annotations to all the world's great literature.

In addition, since my childhood I have developed simple websites and portfolio sites. Most recently I have spent a lot of time writing ReactJS and GatsbyJS, in which this site is built.

Recently, I have begun to explore ML, and am taking several MOOCs on statistics and data science.

A semi-exhaustive list of my skills is found below:

  • Python: Flask, SQLAlchemy, pytest, WTForms, Talisman, BeautifulSoup4, Requests, Matplotlib, Seaborn, NumPy, pandas, Scikit-Learn
  • Javascript: extensive experience with vanilla JS, GatsbyJS, React, some JQuery
  • AWS: EC2, Lambda, DynamoDB
  • Heroku
  • MariaDB/MySQL
  • Elasticsearch
  • Sass/CSS3
  • Linux: My principle distribution of choice is Arch, but I have worked with Ubuntu and Debian.
  • Bash, SSH, Taskwarrior, passwordstore, and a variety of other cli tools.
  • Vim/Neovim
  • I have experience working with GPG keys, SSH keys, and Yubikeys.
  • I have dabbled in Java, C, and Lisp. I am interested in learning Ruby and Go.
  • I am fluent in French and am currently learning Spanish.

What I've Done

  • Intertextual Canon Cloud (anno.wiki)
    • I designed, developed, launched, and continue to maintain the web application at anno.wiki solo.
    • Primarily coded in Flask/SQLAlchemy
    • Wrote many ETL data pipeline scripts for processing Project Gutenberg text files into custom JSON formats
    • Heroku for platform
    • MariaDB for database
    • Elasticsearch for search
    • Vanilla JavaScript for AJAX and progressive enhancements
    • Talisman for CSRF security
    • pytest for testing
    • WTForms for forms
  • Language Map
    • Extensive data gathering and web scraping mission detailed here
    • BeautifulSoup4, requests, PubProxy, scrapestack
    • gspread, Google Sheets API
    • pandas, csv, json
    • ReactJS
    • React Simple Maps
    • Material-UI
    • Hosted on Netlify
  • Letters of John and Abigail Adams Twitterbot
    • Twitter handle @john_and_abbie
    • Bot to tweet the corpus of letters between John and Abigail Adams
    • Data scraped from NARA's The Adams Papers using requests and BeautifulSoup4
    • Built using Tweepy
    • Hosted as a lambda function on AWS Lambda
    • Use AWS DynamoDB to track place in corpus
    • Use Netlify to host the letters as static text files
    • urllib3 to access the static text files
    • Boto3 to access the DynamoDB tracking
  • standingwater.io & blog.standingwater.io
    • GatsbyJS blog built from the default starter.
    • GatsbyJS portfolio site built from modified HTML5 Up template Dimension, ported to Gatsby as gatsby-dimension-starter by codebushi, and modularized and improved by me.
  • glendalepainting.com
    • GatsbyJS static site
    • react-spring for parallax animation
    • react-reveal for transition animations
    • Deployed using Netlify
  • vote.py
    • Automated Python script to encourage and remind people to register to vote.
    • Deployed using AWS EC2 instance to enable continuous service.
    • Integrated Twilio as texting client.
    • Dynamic scheduling using datetime and sched
  • Minimal Pairs Scraping Project
    • Generated an Anki deck for recognizing phonemes difficult to hear for an American English speaker using “minimal pairs,” words in French which differ by only one phoneme
    • Used Requests for automated downloading of the audio files
    • Used BeautifulSoup4, requests for scraping the list of minimal pairs in an IPython session
  • gobble.py
    • Python script using the secrets module from the Standard Library to generate a password including an English word from the Electronic Freedom Foundation's Diceware list in order to circumvent the "gobbledy-gook" social engineering vulnerability.
  • teamup.py
    • Script for programatically generating teams from individuals based on their skill level. The purpose is to minimize variance between the most skilled and least skilled team. Takes a yaml file as input.

Who I Am

I've always been interested in computers, developing my first website in just HTML and CSS at age 13, but was more pulled by the liberal arts. I majored in philosophy and classics at Florida State University. I only became more interested in programming as part of my developing obsession with literature.

As I embarked on a personal study of the tragedies of Shakespeare and the King James Bible, I became upset at the lack of definitive and exhaustive resources for deep reading in literature. Annotations on any classical text are scattered among a smattering of academic and popular books with no consistency in quality and content even within one text. They often focused on pedantic textual issues irrelevant to my interest in a deeper grasp of authorial meaning and the text's place in cultural history. So I decided to write my own application for that: a collaborative wiki for annotating classical literature: anno.wiki.

As a result of that experience I delved far deeper into programming and computers than I expected. I studied computer security and calculus. I studied C and Lisp through Structure and Interpretation of Computer Programs. I delved into Linux ricing and React. I began to recognize the High Culture of Open Source.

I continue to learn, and am currently studying the following:

  • UM's Statistics with Python Specialization
  • Udemy's Become a Probability & Statistics Master
  • Kaggle's Machine Learning Mini-Courses
  • Donovan and Kernighan's The Go Programming Language

In my spare time I enjoy literature (particularly William Faulkner and Cormac McCarthy), wine, and running.

Contact

© 2020 StandingWater