Role: AppDev Team - Senior Software Engineer and Front-end Architect
I returned to my previous team to impart my experience gained while on the Canopy team and bring their aging front-end architecture into modernity.
- Skills used: Angular 7 to 13, RxJS, Highcharts, Reactive and Functional Programming, JSONata, .NET Core Framework, C#, ASP.NET Core Web API, WebPack, Angular CLI, Gulp, Node.js/NPM, Angular Material UI Framework, SASS/CSS, Kendo UI for Angular, Azure and Azure Pipelines..
- Continued work on previous dashboard framework and architecture to support new data-driven visualization widgets including gauges, charts, and maps.
- Worked with the BI team to design and implement a number of new data-driven visualization widgets, including cartesian-style graphs and charts, geographical and numeric heatmaps, gauges, and expression-based card carousel. The dashboard framework and widgets are tailored to drive the discovery of insights relating to retail marketing and distribution.
- Designed and implemented an expression-based action command framework to facilitate the building of customizable, interactive dashboard experience for customers and employees. This allowed widgets to link to reports and other dashboards, creating a pathway for drill-downs and dynamic filtering.
- Designed and implemented a web-based visual dashboard designer that enabled users to build dashboards for the newly developed framework.
- Appointed to roles of front-end architect, product owner, and lead engineer of a team tasked with continuing the development of a new front-end framework and component-set (with documentation) for rapidly building new applications and modernizing existing applications. This framework and component-set was based on a “skunk-works” project I started on my own initiative after experiencing and observing the pains and inhibitions of an antiquated architecture with a large amount of technical debt. The framework was based on Angular and Angular Material with emphasis on not re-creating the wheel and only attempting to fill the gaps of functionality that were required by our planned applications. This involved either implementing the components in-house, or integrating existing open-source and paid third-party components using the integration facilities of our new framework.
- Designed and implemented a multi-layered containerized development environment for Angular front-end applications, using Docker on WSL2. The container was designed to create a consistent environment for all front-end developers and to reduce the onboarding time for new developers. The containerized environment was also used along with Azure Pipelines to build and deploy the container image to test and production environments.
- Acted as front-end technical expert and consultant on multiple new projects, including the design of new applications that were to utilize the aforementioned front-end framework..
- Acted as technical expert and lead engineer of a project to modernize our flagship web application, using the newly built framework in addition to Telerik's Kendo UI framework for Angular.
- Acted as technical liaison between teams to close knowledge gaps and troubleshoot issues.
- Created and maintained Azure pipelines for all front-end applications and frameworks.
Role: Canopy Team - Front-end Software Engineer
I was selected to be a part of the R&D team that developed new products including Canopy, an advanced analytics platform for online retail which also served as a comprehensive tool for clients to manage their online presence.
- Skills used: Angular 5, RxJS, NGRX, Highcharts, Reactive and Functional programming, Single Store pattern, .NET Core Framework, C#, ASP.NET Core Web API, Entity Framework Core, Node.js/NPM, WebPack, Angular CLI, Angular Material UI Framework, and SASS/CSS.
- Developed new and improved performance of analytics dashboard components, including various data visualizations. This required working closely with the BI engineers to accommodate the various types of online retail analytics.
- Designed and implemented UI/UX for user input of post-run data filtering for chart visualization. This filtering was applied after the content job had been processed and thus was very fast and efficient, and allowed the user to quickly and easily manipulate the visualizations.
- Worked with the team to develop a set of components and APIs for assembling client-side data queries for transforming data returned by RESTful Web API endpoints, using a URL scheme similar to ODATA. The API provided the ability to express filtering, paging, sorting, grouping, and aggregation of data. The fluent API signature was similar to .NET's LINQ, but callable from TypeScript/JavaScript.
- Helped to establish more advanced features of back-end Web API model bindings to parse and apply queries built by the aforementioned front-end API.
- Implemented front-end unit tests using Gulp, Jasmine, Karma, Angular CLI, and Angular Testing Framework.
Role: AppDev Team - Full-stack Software Engineer
Used Advanced JavaScript techniques and popular web frameworks and technologies, such as Angular, TypeScript, ASP.NET MVC, and Entity Framework to update, enhance, and add features to existing Reporting Studio web application. Reporting Studio was designed to provide retail reporting and analytics for our clients - vendors to Walmart, Target, and other prominent brick and mortar retailers.
- Designed and implemented a dashboard presentation framework to help curate and categorize existing reports and content, making them easier to find. The framework was highly extensible and scalable, facilitating rapid implementation and deployment of new types of content.
- Added functionality to facilitate multiple design surfaces in the AdHoc Report Designer which provided a user friendly way to express advanced dynamic filtering, to be used as a prefilter for the primary data-set produced by the report design on the main surface.
- Added new AdHoc Basic mode, a trimmed down version of the original AdHoc Report Designer. This resulted in increased adoption of that tool by existing clients and increased sales to new clients. The basic mode served as a general purpose report designer and as a segue to the original advanced designer.
- Implemented C# scripting engine and API to provide, with just a few clicks, advanced retailer-specific filtering concepts like “traited vs valid” via the AdHoc Basic mode.
- Employed the module pattern to strengthen the architecture of the AdHoc Report Designer, a user-friendly web-based drag-and-drop reporting design tool.
- Developed advanced map plotting feature for visualizing data points geographically. It supported multiple map browser windows to which data points could be plotted.
- Helped transition front-end JavaScript codebase to TypeScript.
- Implemented front-end build processes (using gulp and node.js), including generation of client-side entities and DTOs to be used for interop with Web APIs.
- Implemented front-end unit tests, using Gulp, Jasmine, Karma, Mocha, and PhantomJS.