Ian Cropper

i make internets

DEVeloper, tutor, Conversationalist

Summary

I've been in this industry since 2011.

Veteran engineer with emphasis on the front-end, but spanning the whole stack. My approach to execution is to give the code, process, and people their respective dues with solid individual contributions,  making work visible, and proactively unblocking others.
I believe in over communicating, that process and priorities change when focusing on the outcomes, and I can diffuse nearly any contentious issue.

I believe in the use of patterns, code reviews, mentorship, well-researched 3rd-party libraries, the persistent pursuit of knowledge, good music to code to, good culture within teams, and that a 10 minute walk will solve nearly every problem (coding or otherwise).


Experience

Trainingpeaks
Senior front-end Developer

July 2019 - Present

  • Tech lead on delivering a new payment solution to democratize our marketplace

  • Leading the integration of Stripe with a modernized checkout experience capable of processing payments for a true marketplace where users are the sellers

  • Lead the technical release of a new pricing initiative that failed after the first day from an early poor assumption, but was able to rally an immediate & long-term fix, demonstrate hussle, and display proper engineering practices with documentation, communication, and ceremonies.

  • Rebuilt our entire site navigation (across multiple projects & sites) in order to drive traffic to purchase TrainingPlans with immense success

  • Identified and mitigated bottlenecks in our publisher/creator process by working directly with users themselves.

  • Managed creation of company-wide style-guide/component library for site consistency

  • Introduced and built end-to-end testing using Cypress and integrated it into CI/CD flow

traingpeaks-logo.png

MapLarge LLC
Front-End Developer

 
MapLarge-Logo-3-19-2014.png

September 2017 - June 2019

  • Fully remote position that required self-discipline and initiative to communicate with team members across the country and deliver results.

  • Reduced potential bugs in our data-bound proprietary front-end framework by increasing type dependencies and building automated testing pages.

  • Managed a team of developers in a timezone 11 hours away to build out a modernized refresh of our proprietary suite of components.

  • Built out a style/usage guide for our internal developers to better familiarize them with our framework and speed up the on-boarding process.

  • Added features and debugged several client projects including Shell, UPS, and the military.

Self-employed
Programming tutor

September 2016 - July 2019

  • When I was learning how to code, I always appreciated someone who was willing to sit down for a bit and walk through concepts I wasn't understanding. Years later, I know I'm a good programmer and I like teaching so I decided to advertise myself as a programming tutor to help people who have the drive but lack the support.

  • I tutor several students across the front-range. The majority of students come from coding boot camps and are needing someone to explain the concepts they cover from class a little slower.

  • I've helped tutor students with JavaScript, Angular, D3.js, Node.js, Python, Java, environment and machine setup/configuration, Mac issues, PC issues, admin issues, as well as general programming concepts such as functional vs object-oriented programming, let vs const vs var, closures, scope, algorithms and data structures, BigO and time-complexity, etc....

logo-homeaway.png

Homeaway
Full stack Developer

November 2016 - September 2017

  • Built fully functional Feature Toggle service and Feature toggle client as a NuGet package from scratch to implement dark launches and speed up release time. This allowed us to speed up our release schedule by weeks by only releasing new features to a subset of users.

  • Resolve bugs as they come in from users and push fixes to prod

  • Agile workflow

Markit On Demand
Web Developer

June 2013 - November 2016

IHSMarkit_logo.png
  • Tech-Lead for multiple projects including new builds, site additions, and redesigns requiring skills in managing people, mitigating time-loss, and creating estimates on top of writing the code

  • In charge of organizing team tech presentations to discuss the advantages or issues with new technologies on the horizon that may prove useful to implement into our process

  • Tech Lead for multiple projects including new builds, site additions, and redesigns requiring skills in management, mitigating time-loss, creating estimates, on top of writing the code

  • Build sites that get thousands of hits per day and some that process millions of dollars requiring carefully implemented code scalable code and error handling

  • Routinely deliver projects on time, the most recent being scheduled for 12 weeks and was finished 3 weeks early

  • Promoted to Assistant Vice-President

AVANTAR
MOBILE APP DEVELOPER

April 2012 – Sept 2012

  • Pushed several significant milestone updates that fixed bugs increased functionality

  • In charge of debugging / updating the official “Yellow Pages” and “White and Yellow Pages” app for Android

  • Migrated the White and Yellow Pages app code from one environment to another requiring both code and config updates.

  • Built in many new RESTful calls to the backend API.

Brigham Young University
Web Developer

November 2011 – April 2013

  • Developed an accountability web-site / system for managers

  • Helped implement Agile as a workflow

  • Primarily focused on front-end development with jQuery, JavaScript, HTML, and Angular


Skills

Expert

  • JavaScript (ECMA 6)

  • NodeJS

  • TypeScript

  • React

  • CypressJS

  • Git

  • C#/.Net

  • HTML

  • CSS/LESS/SASS

  • Social Media Integration

Proficient

  • AWS

  • Elastic Search

  • D3

  • Machine Learning/Data Mining

  • Java

  • Python

  • SQL

Experience

  • Scala

  • Angular

  • Windows Phone

  • C++

  • SOAP


Education

Brigham Young University

Bachelor of Science: Computer Science

RELEVANT COURSES

  • Machine Learning and Data mining

  • Algorithm Analysis

  • Software Design and Testing

  • Graphics and Computer Animation

  • Data Structures

  • Artificial Intelligence

  • Computer Networking

  • Internet & Network Programming

GROUPS

Association for Computing Machinery (ACM) : Webmaster

  • Increased attendance in meetings from an average of 15 attendees to over 100

  • Organized logistics, problems, and prizes for several extramural coding competitions

  • Regularly participated in “weekend of code”, a group effort over weekends to use our coding ability for charity events including creating websites for non-profit organizations


PROJECTS

Feature Toggle

I was asked to create a way in which my team could release into prod, changes to our apps without them being visible to the user. This was accomplished by creating a centralized UI and backend, and a client nuget package that would be included in our different apps. This allowed a developer, for example, to push code that depended on other teams into prod and later, use the UI to toggle the functionality on, once the dependent work was completed.

Since the project went live, we have drastically increased the frequency of our releases, and have done so without fear of customer dissatisfaction.

Tags: SQL, C#, JavaScript, Nuget, Linq, bootstrap, UX, IOC, Dependency Injection, Knockout

Trump Volume

I was curious one day to see how much press mentions Trump was receiving, so I built a little app that scrapes and tracks the number of times "Trump" appears on the front page of 15 different major news sites.

Tags: NodeJS, MongoDB, Scraping, High-Charts, JavaScript, Bootstrap

DOWECAREANYMORE.ORG 

After the shooting in Roseburg, Oregon (just a 1.5 hour drive from where I grew up) I decided to create a website that streams tweets with gun-violence related hashtags, averages the count over 20 minutes and displays the number of tweets in a graph that helps people to see how quickly such tragedies are forgotten about.

Tags: NodeJS, MongoDB, TwitterAPI, JavaScript, Bootstrap, PureCSS, Web Sockets, Streaming

CHARLES SCHWAB - FIXED INCOME ANNUITY CALCULATOR

Created a site that gets loaded into Schwab's public facing site that collects basic user data and provides an estimated annuity payout amount. Or, the site can create an estimate of a deposit needed in order to obtain a specified monthly amount.

Tags: C#, SOAP, HTML, LESS, JavaScript, XML Parsing

SOCIO-NOMICS

A rudimentary attempt at predicting stock performance using real-time data from Twitter, news sources, and blogs. This program performs sentiment analysis on the text from the different data sources, compares it with current stock prices, stock price momentum using a Kalman-filter, and outputs a prediction of price direction and magnitude of change. I'm no Carl Icahn yet, but I'm getting there.

Tags: Machine Learning, Data Mining, Sentiment Analysis, Natural Language Processing, Twitter API, NodeJS, MongoDB, Financial Analysis

DINGO

A video streaming app that allows users to geo-tag photos and video. The idea was to create a geographical network rather than a social network. Anyone can open up the app and see the riots in Baltimore, the beaches of Italy, or a political party's convention.

Tags: Java, MongoDB, NodeJS, Amazon SW3, Amazon Elastic Transcoder, JWPlayer API, AndroidSDK, Web Sockets

TCP / NETWORK SIMULATOR

Simulates the delays and behaviors associated with sending data packets over the web. Network conditions considered were race conditions, packet loss, load, bandwidth, etc.... The program simulated the network layer and up.

Tags: Python, TCP, UDP, IP