Printable Format

Most browsers support print to file - usually pdf - if you need my resume as a document.

Alexander Fisher

Atlanta, GA // (404) 465-4317

afisher@alexander-fisher.com

Objective A programming position that is challenging and mentally stimulating, where pleasure results from the start of a work day rather than its end.
Skills
Languages Java, C#, AS3, SQL, HTML, ES9 Javascript, Typescript
Engines/Frameworks ASP.NET MVC, Web API, WCF, NodeJS, Express, Flex/Flash, Angular 1, Angular 8/9, Vertx
Tools/Libraries Angular CDK, React, Redux, Docker, RxJava, RxJs, Redux Sagas, Redux Epics, Redux Thunks, Redux Forms, ReactDND, Webpack, Gulp, Grunt, Elastic Search, OpenAPI, Vim, SCSS, Less, Knockout.js, JQuery, Deque Axe Tools
Training Deque Web Accessibility Curriculum
Limited Exposure Helm, Kubernetes
Education
Aug 2007–Jun 2011

The Art Institute of Atlanta, Atlanta, Georgia

Bachelors of Arts in Visual & Game Programming - Summa Cum Laude

Related Experience
Sep 2020–June 2022

OneTrust // Atlanta, GA

UI Developer

// Identified repeated coding mistakes made in pull requests and documented them to improve coding standards

// Created documentation around the testing methodologies Classicist and Mockist, when to use which, why, and how they fit in with action delegation

// Helped and mentored developers on feature work and WCAG compliance

// Updated shared Angular 8/9 component library and Assessment Automation product for WCAG compliance

Nov 2019–March 2020

Zeta Global // Atlanta, GA

Senior Software Engineer

// Supported our .NET and Flash legacy products, creating documentation and packages so anyone else could support them.

// Spearheaded integration of OpenAPI Generator in to our Java services for a Spec First approach. Created a maven package containing our custom tweaks to JavaCodeGenerator and templates for easy use in other projects, documenting general project set up. Used Dredd for automated contract testing where feasible. Vertx RxJava2 clients and models were generated from the spec and services used these to communicate with each other. Routing and request validation were handled by Vertx Web API Contract using the spec.

Sep 2019-Nov 2019

IgnitionOne // Atlanta, GA

Tech Lead

// Took up Scrum Master responsibilities - facilitating daily stand up, doing sprint and release retrospectives, and shielding the team from outside distractions.

// Mentored and ramped up a team on React, Redux, Typescript, Vertx java, and Docker.

Jan 2018–Sep 2019

IgnitionOne // Atlanta, GA

UI Architect

// Did a lot of research on web page performance, using tools like Chrome's Lighthouse to determine page load improvements and suggesting performance budgets for the company.

// Created process for containerizing our static React front ends in an Nginx container, using environment variables to change functionality at runtime rather than build time.

// Refactored our audiences product to have responsive styling using the new style guide.

// Refactored our audiences product away from CSS in JS to use our new custom bootstrap theme and SCSS variables. The goal was to have almost zero custom styling, using only the bootstrap classes.

// Forked Bootstrap to provide a custom theme. Documentation was hosted in a container running on Kubernetes and was used as style guide, giving example layouts, documenting custom class names, and providing code snippets for consuming SCSS variables in both SCSS files and Typescript files.

// Refactored audiences product to use Create React App rather than a highly customized Webpack build. This became feasible when CRA added native support for Typescript. The idea was to use CRA to create new projects rather than forking an unmaintained company boilerplate project.

// Helped and trained a remote team on a React, Redux, and Typescript project.

Aug 2014–Jan 2018

IgnitionOne // Atlanta, GA

Senior Software Engineer

// Refactored Redux middleware in audiences UI to Sagas, eventually settling on Epics so that back end focused developers could use their Reactive knowledge from RxJava in the front end.

// Helped support and add features to the Java Vertx services used by the Audiences UI.

// Helped with rewrite of a Audiences UI as a serverless UI using React, Redux, and Webpack.

// Helped QA automate UI testing with Selenium in a Java environment.

// Created 500 middleware for express that would log errors to graylog and return an error code in the response which could be used to look up the error later in graylog.

// Created common component site which served as the development environment and documentation for shared angular directives and filters. Used Webpack and hot module replacement.

// Integrated swagger codegen in to angular site for its API and created workflow for generating clients for all microservices it depends on.

// Rewrote web service as a WCF service for interacting with google's double click for advertisers API.

// Converted grunt build tasks to gulp to decrease build times in an angular node project. Created tasks for updating tsconfig tracked files based on glob, tslinting, and compiling typescript files.

// Created smart navbar system in typescript that would retain a client context across multiple web apps using the querystring. Smart nav would automatically determine selected navigation node using the browser url.

// Updated dashboard front end to support multiple dashboards and their CRUD operations using typescript.

// Created .NET version of highchart's API so charts for dashboard could be generated on the server and then be serialized in to the proper javascript objects.

// Spearheaded the conversion of dashboard charts from fusioncharts to highcharts to increase page performance.

// Converted widget backend to use async controllers. This improved page load times on the dashboard substantially.

// Converted widgets from client to server rendering after benchmarking client vs server page rendering time.

// Created knockout.js widget subsystem within a .NET jdash dashboard using typescript and inheritance. Widgets needed to react to page controls changing to refresh data and browser resizing to change styling for responsiveness.

Aug 2013–Aug 2014

IgnitionOne // Atlanta, GA

Software Engineer

// Implemented fusionchart visualizations for an SPA analytics rewrite using requirejs and typescript.

// Spearheaded the use of kendoUI for an SPA analytics rewrite to decrease LOE of project.

// Implemented service to share navbar markup, footer markup, and styling across multiple web apps (both SPA and MPA) within our product.

// Evaluated AngularJS, Durandal, and Emberjs as possible MV* frameworks for the rewrite of our front end from flash to html.

// Created C# nuget packages to interface with Media Mind and Google DFA APIs.

// In a scrum environment and with the help of my team, implemented new features in the marketing suite in both the Flex front end and .NET middle tier/backend.

Oct 2012–July 2013

Total Computing Solutions // American Fork, Utah

Front/Back End Web Developer using ASP.NET MVC4 for Campus Webstore

// Worked with my team member to implement connection pooling for our Pick Databases using .NET and Nodejs to increase webstore performance.

// Worked with my team member and a Pick Database engineer to add a new feature called Advanced Faculty Adoptions. This automated the process of faculty adopting books for their classes. My major role was building the section where administrators could approve and edit the submitted adoptions, both singularly and in bulk.

// Leveraged Bootstrap for styling to improve user experience throughout.

// Worked with my team member to build a layered Knockout.js binding system to support partial views. This allowed the partial views to contain the javascript functionality that was associated with them, making them both reusable and much more maintainable compared to a pure JQuery system.

// Worked with my team member to add mobile support using jQuery Mobile and Knockout.js. This was used as a selling point for our software.

// Implemented a link manager with drag and drop ordering using jQueryUI. This would also update the quicklink section of the website in real time to improve the user exerience.

// Worked with my team member to implement javascript detection with view mode switching. This was a stepping stone to ADA compliance.

// Worked with my team member to make the website ADA WCAG compliant since a client required this before using our software. This included text only and noscript versions of the site.

// Built reusable c# library for interacting with Pick db and parsing the xml response. This also included 100% code coverage with both unit and integrated tests to verify the library's stability. The library was built with dependency injection in mind.

// Rewrote some of the existing backend for better maintainability and readability.

Apr 2012–Sep 2012

LIME Marketing // Provo, Utah

Back End Web Developer using Symfony2, PHP, NodeJS, and Twig

// Built NPM packages/libraries to support current and future Node development.

// Wrote back-end API for iOS app Meet Sync with Node.js. This included request schemas and validation against them to improve developer feedback when making malformed requests.

// Worked with my team member to rewrite Cake game server with Node.js for increased performance of the iPhone game, DeadDrop. This included heavy use of raw SQL queries since they perform better then ORM systems in Node.

// Worked with my team member to build the Symfony2 PHP backend for Apealz, an ecommerce website with image manipulation.

Additional Work

All viewable in Demo Reel

// Buddy System: 2 player coop game prototype built around required teamwork.

// Magnedude: Physics puzzle game prototype based on magnets.

// Jun: Third person platforming game prototype. Made with Unreal Dev Kit.

// Blockectomy: Falling puzzle Flash game released on Kongregate / Newgrounds.

// Code Samples: www.alexander-fisher.com/code-samples

// Demo Reel: www.alexander-fisher.com/demo-reel