- I have a propensity for data. I enjoy gathering, manipulating, and exploring data to uncover insights.
- I have strong UX background. I excel at creating rich data visualizations leveraging stable browser specs and libraries like D3.js and Three.js.
- I am enthralled with Cognitive Neuroscience, Network Neuroscience, Information Theory, and Machine Learning.
Profile
I'm John Martin, a developer with over 13 years of professional programming experience and a background in Discrete Mathematics and Secondary Education.
Experience
- USAA Oct 2020 - PresentData Engineer Deliver quality reporting and data intelligence solutions to support data driven decisions.
- Unicon June 2010 - Sept 2020Senior Developer Lead the development of user experiences for client projects. Architect and implement web applications. Present to the UX developer group on relevant industry topics.
- Arizona State University June 2009 - June 2010Student Success Coordinator Sr. Hired, trained, and supervised tutors and staff for ASU's on campus tutoring centers. Hired, trained, and supervised tutors, residential staff, and instructors for a freshmen summer transition program.
- Crested Butte Academy May 2008 - May 2009Advanced Mathematics Instructor Developed and delivered mathematics curriculum for courses ranging from Algebra to AP Calculus. Provided mentorship for a subset of the students and supported students by supervision in the dormitories and by organizing trips.
- Point X Camp Summers 2002-2006Assistant Camp Director Trained, Supervised, and supported camp staff. Ensured the safety and positive experiences of up to 100 different campers each week. Coached beginners skateboarding group.
Projects
The majority of my work is done for clients and the work remains their property, but here are a few fun side projects worth sharing:
- Grasp Theory Re-imagining the personal content management system. Graph databases and unique user experiences help users see and feel additional information burried in the underlying graph associated with their content.
- Perlin Noise Terrain Generation Interactive demo of how Perlin noise can be used to generate rich 3D terrain.
- Radial Animation library for radial based shapes and logos using SVG and D3.js extensions.
Skills
Mobile
- iOS ( Swift + UIKit )
- iOS ( SwiftUI )
Client Side Technologies
- HTML 5
- CSS 3
- TypeScript
- JavaScript
Client Side Frameworks
- React ( hooks )
- React Three Fiber
- AngularJS
- Angular
UI Best Practices
- WCAG 2.0 AA
- Mobile First / Reponsive
- PWA
Client Side Libraries
- D3.js
- Underscore
- Three.js
- LESS pre-processor
- SASS pre-processor
- Bootstrap 3.x, 4.x
- jQuery
JavaScript Build Tools
- WebPack
- Gulp
- Grunt
App Frameworks
- Electron
- Unity
Design Tools
- Sketch
- Photoshop
- Illustrator
HTTP Server Frameworks
- NodeJS / Express
- Java & Spring Boot
- PHP
- WordPress
Data Engineering
- Python
- Pandas
- NumPy
- TensorFlow
- Apache Spark
- Airflow
- Domino
Persistance
- Snowflake
- SQL
- Hadoop / Hive
- Neo4J
- MongoDB
- Elasticsearch
Dev Ops
- Linux / Command Line
- Docker
- Git
Amazon Web Services
- SageMaker
- IAM
- VPC & Security Groups
- Cloud Formation ( Raw or CDK )
- Terraform
- S3
- CloudFront / Route53
- Cognito
- Lambda
- API Gateway
- Dynamo DB
- Auora
- Athena / Glue
- Cloud Search
- SES
- Code Pipeline / Build
Education
- Arizona State University 2008MA Discrete Mathematics Specialization in Graph Theory and Algebra.
- Arizona State University 2006BA Secondary Education Mathematics Received certificate to teach in Arizona.
Articles
- How do Your Favorite Books Compare in a VR World? May 2019 - Hacker Noon
Visualizing semantic relationships between spatial embeddings.
- How to Make Memorable Mountains with Perlin Noise May 2018 - Medium
Explaining the use of Perlin noise to create terrain that provides good user experience in a 3D envionrment.
- Are You Intuitive? Challenge My Machine January 2017 - Hackernoon
This is a description of successfully training a neural network that can beat Mechanical Turk human participants in a classification task.
- How to Google Your Own Brain September 2016 - Neo4J Guest Blog
Creating a CMS with Neo4j & Elasticsearch, allows generation of Page Rank values that can be used to modify an ElasticSearch query.
Presentations
- A Practical Vision for Connecting Students' Education to Virtual Worlds June 2020 - OLC Innovate™
Giving students ownership of a virtual world provides opportunities for them to navigate a tangible and spatially oriented environment to their individual abstract educational landscapes. Discover a practical vision for making this idea a reality using modern web technology.
- Reduce App Friction! Make Your UI Buttery Smooth! October 2018 - Desert Code Camp
How to leverage modern web technology to make your apps buttery smooth! Leverage CSS transforms, CSS opacity, webworkers, and other techniques to make your app super buttery! We'll utilize the Chrome dev tools to measure the butter factor. This is essential for developers looking to impress clients!
- Introduction to WebGL October 2017 - Digital Flagstaff Meetup
WebGL exposes the GPU to modern browsers. This gives browsers the ability to render performant 2D and 3D graphics. Join us while we explore the basics of WebGL, ThreeJS, CannonJS, and some performance tips.
- Buttery Smooth UX, High Frame Rate Goals September 2017 - Unicon UX Forum
Presentation with code samples that show how changes can be made to a web application to make frame rate optimal. Using the Chrome Dev Tools, one can identify trouble issues and address them with scripting changes, multi-threading, and CSS changes.
- Intoduction to Machine Learning & TensorFlow November 2016 - Unicon UX Forum
Sharing some introductory concepts of neural networks, back propagation, and an example of TensorFlow trying to beat humans in a classification task.
- Introduction to Inpoot & the Gamepad API November 2015 - Desert Code Camp
This talk will discuss the current state of the gamepad api, mouse lock api, and fullscreen api in modern browsers and its applications. We will look at INPOOT as an example that uses these technologies and explore patterns in dealing with user input. We will also discuss the future of the api as it applies to unique user interfaces including HTML5 games. We will explore simple examples of using gamepad and mouse lock inputs as well as more advanced usage in a 3D browser based game. Interactive slides and sample code will be provided for all examples.