Nickolas Fisher, Software Developer in West Chester, PA, United States
Nickolas Fisher

Software Developer in West Chester, PA, United States

Member since May 16, 2019
Nickolas is a developer with over a decade of experience in many languages and platforms. He specializes in large scale enterprise web apps, payment gateways, software architecture, and Windows services. A passionate company owner, Nickolas works with clients from around the globe and has led his team through many successful web, and mobile app development projects.
Nickolas is now available for hire

Portfolio

  • Fishbowl Software
    C#, SQL, MySQL, PostgreSQL, Angular, React, ASP.NET Core, .NET Core, ASP.NET...
  • Spectacles LLC
    Microsoft 365, JavaScript, Microsoft Visual Studio, Office 365, React...
  • BYL Risk Management
    JavaScript, SQL, Web API, Model View Controller (MVC), C#

Experience

Location

West Chester, PA, United States

Availability

Part-time

Preferred Environment

.NET, Windows

The most amazing...

...project I've worked on is an app that calculates the most fuel-efficient directions for buses to take when picking up passengers.

Employment

  • Owner and Lead Architect

    2018 - PRESENT
    Fishbowl Software
    • Headed a multinational team of designers, developers, and testers to coordinate product releases for our clients.
    • Designed and developed an estimator and status app that allows clients to easily see the scope of their application and the current status of it.
    • Led efforts to streamline architectural designs across multiple clients to save time and energy per component.
    • Created boilerplate code across multiple frameworks implementing common design patterns to quickly and efficiently scaffold new applications.
    Technologies: C#, SQL, MySQL, PostgreSQL, Angular, React, ASP.NET Core, .NET Core, ASP.NET, ASP.NET Core MVC, NUnit, Azure PaaS, APIs
  • Microsoft Developer for Office Suite Project

    2022 - 2022
    Spectacles LLC
    • Integrated Okta, Clio, Google, and Microsoft as Identity providers into the core software.
    • Added new features and enhancements to the React application.
    • Oversaw the releases by publishing to an Linux server running apache.
    Technologies: Microsoft 365, JavaScript, Microsoft Visual Studio, Office 365, React, Microsoft Team Foundation Server, appsource, C#
  • Developer

    2008 - 2018
    BYL Risk Management
    • Supported the core software platform, Latitude. Latitude enabled a high degree of customization.
    • Worked on the development and was the lead maintenance on the payment portal.
    • Integrated various payment processors, such as iTransact and First Data, into the payment portal.
    • Designed and developed software to measure metrics on the call staff.
    • Was responsible annually for the PCI audit, working with the auditor and making any changes.
    Technologies: JavaScript, SQL, Web API, Model View Controller (MVC), C#

Experience

  • Spectacles | Word Add-in
    https://appsource.microsoft.com/en-us/product/office/WA200001431?tab=Overview

    Spectacles is a Word add-in that highlights legal terms for the user and easily navigates the definitions. After the prototype for the add-in was completed, I joined this project, but there were some outstanding tasks that needed to be completed before taking the add-in to production. This included adding authentication using Google and Microsoft.

    For authentication, I attempted to use Microsoft's Office-js-helpers library; however, the library is a little buggy and has since been archived. I have since corrected the bugs and enhanced the functionality to allow more Oauth providers to use id_tokens. To accomplish this, I forked their archived repository and made my changes there, which is now public for others to use.

    I was also responsible for overseeing this project through the Microsoft Certification process before it went public. This includes creating the description and uploading the manifest to the Microsoft Partner Center and working with Microsoft to align the project with their requirements.

  • My Toptal Profile in Chatbot Form
    https://profile.fishbowlllc.com/

    I built this bot specifically to reference my Toptal profile. The bot itself is a small web application using Node.js as a server, and Bootstrap for the layout. You can ask this blog about me and my experience.

    The bot is built using Dialogflow for the back end. I monitor it periodically to retain the model based on responses I am seeing from users who visit it.

    It is deployed on a Heroku instance. I manage the subdomain from Plesk on my home server's network and ensure SSL is enabled on the site. If the certificate were to fail, Chrome would not allow access to the microphone.

  • Spectacles | User Management Site
    https://app.spectaclesreader.com/

    Spectacles is a Word add-in that highlights legal terms and makes it easier for users to look up definitions in legal documents. I have highlighted the work on the add-in on another project. This part of the project was to allow users to manage their accounts on a central platform.

    This application served three major roles. First, it allowed users to maintain and update their subscriptions. Second, it synced the subscription details from our system to the system of record. Initially this was done through Microsoft's SaaS platform; however, we migrated to Stripe shortly after entering production. Finally, it provided an API for the Word Add-In to check account details. The Word add-in had a tiered subscription that needed to be checked before allow certain features.

    I was the only developer on the site. My role was designing the database, selecting the design for the site, developing, testing, and deploying the website to Azure. I was also responsible for working with Microsoft to pass validation for the Microsoft SaaS Fulfillment APIs.

  • Blogger for Okta Single-sign Provider
    https://developer.okta.com/blog/authors/nickolas-fisher/

    I wrote articles for Okta, a single sign-on provider, where I taught readers how to create applications in various frameworks and integrate Okta's platform into their use cases.

    These tutorials required me to create an application in a given framework under specified conditions and then write an article about the challenges and procedures to securely integrate Okta with the reader's software.

    I primarily worked in JavaScript (front-end frameworks like React, Vue, Angular, their derivatives, and Node.js) and various C# frameworks like Blazor and ASP.NET Core.

    I also taught users how to deploy Okta-secured websites to platforms such as Firebase, Azure, and Google Cloud.

  • Absolutely Boxing | WordPress Site

    This is a blog site that I developed independently using WordPress and hosted on AWS Lightsail. The site acts as a home platform for Absolutely Boxing.

    The site uses WP Page Bakery for the layout and incorporates plugins such as Yoast SEO, Google Analytics, Advanced Ads, Popup Anything, and Newsletter.

  • QuickBooks and Great Plains Integrations

    Initially, our company was on Great Plains, and then we moved to QuickBooks in 2011. I helped facilitate that migration.

    We created IIF files from our home system and introduced them to QuickBooks. I helped the accounting team troubleshoot errors that came up during the migration and forward flow.

    We migrated back to Great Plains in 2013 and wrote an integration through eConnect. As we already had the IIF files created, we wanted to continue to use them. I wrote an integration in an internal WinForms App (C#, .NET, SQL, ADO.NET) to read the IIF files and import them into Great Plains.

    Later we migrated one of the child companies back to QuickBooks. I needed to integrate into QuickBooks using the QB SDK and added branching to the application to understand if the account needed to be in Great Plains or QuickBooks.

    We then used the Quickbooks web connector to connect the desktop version of Quickbooks to our internal infrastructure that was stored in MsSQL and to pull data from our system into Quickbooks desktop.

  • PCI Testing | Annual Basis

    For four years, I was the point contact and lead developer (and in most cases, the only developer) for our PCI compliance testing.

    This included dealing with our compliance vendor, preparing staff for interviews with the vendor, performing a battery of tests against our public-facing websites, and hardening security deficiencies.

    I worked with a security vendor who would perform penetration testing on our web applications and evaluate our sensitive information network. Remediation procedures included code changes, process changes, writing SQL Agent Jobs and BI suites to remove sensitive data after a certain time. I also sanitized databases, and logs of sensitive information.

  • OneSite and RealPage Integration

    In order to facilitate automated account imports coming from Student Housing clients, I wrote an integration with RealPage's platform.

    RealPage then informed us that we needed to move to a newer RPX platform to support accelerated rent clients. RPX was a REST API that required acknowledging an account had been picked up along with supporting documents for the account.

    The accounts came in XML format which then needed to be converted using XSLT to a format that was friendly for our host system, Latitude. XSLT was used to create a variable record format file.

  • Absolutely Boxing | Command Center

    The command center is an internal web application used to warehouse data, create articles, and manage workflow statuses for the Absolutely Boxing WordPress site.

    The site directly integrates with WordPress to upload images, tags, categories, events, and full articles.

    The application was built with a .NET stack, using Web API and MVC with a Knockout.js-based front end.

    The site also connected with a Python bot that monitors Twitter for the latest gossip from premium sources–generally promoters or boxers themselves. The bot then categorizes the tweet as interesting or uninteresting and creates an alert for the user to review the tweet and write an article for it.

    Other features include a sophisticated workflow to manage article status, data aggregation modules, Hangfire for automation, and NLogger for logging.

  • Enterprise Recovery Data Syncing in MS SQL
    https://www.enterpriserecovery.com/

    In the early days of Enterprise Recovery (ER), we had clients looking at a website connected to an ER Enterprise database and representatives working out of a system that had been in place before ER. We lacked the tools to import and export transactions and accounts into the ER database but had those in the previous system.

    My role was to create a series of database jobs automatically imported to the previous system, then synced that data back to a new one. We also had some functionality to take notes in the ER system, and those needed to be brought back into the old system.

    The challenges here were ensuring the transactions were in sync and the accounts were balanced. If the accounts were out of balance, I wrote a script to categorize the type of error and later wrote a script to correct those that didn't need further research automatically.

    This project was pure SQL using MS SQL and leveraged the SQL Agent for automation. I was also the designer of the database and responsible for its optimization.

  • My Balance Online
    https://cardionet.mybalanceonline.com/

    This was one of my first true C# and MVC projects. The site was designed to solve the problem of allowing clients to pay online automatically.

    I was involved in the initial design and development of the site in a junior capacity. Over the course of the project's lifespan, I came to own this site and was responsible for new features, optimization, security hardening, managing the DNS, and managing the IIS configurations.

    We had several challenges with the site. First and foremost, our customers used different payment vendors (First Data, iTransact, ClearComm). This meant that we needed to integrate with them in different ways without the use of REST API.

    We also needed to separate the sites to prevent sensitive data from being exposed on our internal network's web application level. To accomplish this, we wrote an internal API that restricted the type of data that could be displayed in the web application. We configured a firewall on each level, ran semi-annual pen testing on the site, and annual security hardening.

  • Development of an Accounting API using Node.js

    I was part of a team working with microservice architecture using AWS and Azure for deployment. My role was to design an API that was capable of syncing payments, invoices, and attachments with third-party systems such as QuickBooks and Great Plains.

    The API needed to be extensible to reduce the development time of ongoing integrations that may be required. The API itself was promise-based in Node.js using Express. It was back-ended with an MS SQL database that connected and used the Sequelize ORM.

  • Build of a Simple Web App with Node.js and PostgreSQL
    https://developer.okta.com/blog/2019/11/22/node-postgres-simple-webapp

    I helped Okta write an article for their blog. The article required me to write a simple Node.js application with a PostgreSQL database, then used the Okta single sign-on provider to authenticate users.

  • Component Library for Marketplace Application

    The client's project was split into two different libraries: a web application and a component library. I worked on the component library, enhancing or adding new components. The project was done with React, using Storybook for component development. Some of the common tasks were creating new components, correcting bugs in existing components, or enhancing the functionality of existing components. Testing was done with Jest on each component and there was an expectation that code coverage would be 100%.

  • Convert ThemeForest Template to React Components

    The client had purchased an HTML and TailwindCSS HTML package from ThemeForest and needed it converted into React components. I set up a repository for the HTML theme from the vendor and then converted each of the pages into React components. I built a custom hook that fetched data from the client's API but could be switched to call stubbed data using environment variables. The project used Storybook for component and page development before finalizing the site.

  • Developer for Training-software Tracking

    At QTS, I worked on several different projects. Initially, I was brought in to work on a website that a specific client would use to streamline their internal process. This project was a .Net 4.5 ASP.NET MVC web application using Knockout.js on the front end.

    After completing this project, the client requested that I stay on to help add new features and do maintenance on one of their flagship applications. This is also a .Net 4.5 ASP.NET MVC web application with plain JavaScript on the front end. In this role, I was able to help navigate three successful semi-annual releases. I also assisted in the release process, streamlining their clients' installation process using their MSI installer library.

    My last role was to help design and develop their next-generation application. This was written in .NET 6, an ASP.NET Core web API with an Angular front end. My role was primarily to design and manage their staff. I trained their people on proper design patterns, integration tests, unit tests, and the latest features in .NET 6.

  • React App with ASP.Net Core Web API from MVP To Production

    The client had a working MVP that was doing a pretty good but had some issues that needed to be resolved. The React app needed a little polishing and some organization. I brought in Storybook to help design new components and rearranged the app into a component based paradigm. I then refactored the API calls into a new library that handled the errors and responses in a more streamlined way. Finally I was able to add some new features including a few new visuals with Chart.Js to help enhance the product.

    On the Web API side I added the entities and supporting components for those entities that were needed on the new client end. I also added integrating testing. To accommodate this I used Sqlite to create a new set of migrations and then ran the tests on Azure using Sqlite. Each API Endpoint had its own series of Integration tests.

  • .NET Unit Testing: Spend Upfront to Save Later On (Publication)
    Unit testing sometimes sounds like an unnecessary expense, but it is a powerful, yet simple tool. Unit tests allow you to identify and rectify weaknesses with relatively little effort. In this article, Toptal Software Engineer Nickolas Fisher takes you on a quick tour of unit testing and explains why you can’t have too many unit tests.

Skills

  • Languages

    C#, SQL, JavaScript, HTML, XML, Pug, CSS
  • Frameworks

    .NET Core, ASP.NET MVC, Entity Framework Core, OAuth 2, .NET, ASP.NET Core MVC, JSON Web Tokens (JWT), Express.js, Knockout (Knockout.js), Koa, Sails.js, AngularJS, NUnit, Jest, ASP.NET Core, Angular, Swagger, ASP.NET
  • Libraries/APIs

    jQuery, Web API, OpenID, QuickBooks API, React, AutoMapper, Node.js, Stripe API, Vue, Chart.js
  • Platforms

    Windows, WordPress, Visual Studio 2017, Azure, Firebase, Azure PaaS
  • Storage

    SQL Server 2012, PostgreSQL, MySQL, Azure Websites, Google Cloud, SQL Server DBA
  • Other

    FirstData, Ajax, APIs, qbXML, Harvest, Microsoft SaaS Fulfillment, Storybook, Vite, Microsoft 365, Office 365, appsource, Integration Testing
  • Tools

    Hangfire, Git, Bitbucket, GitHub, VS Code, Azure Active Directory B2C (ADB2C), Jira, Postman, Microsoft Visual Studio, Microsoft Team Foundation Server
  • Paradigms

    Object-relational Mapping (ORM), Dependency Injection, Unit Testing, Model View Controller (MVC), UI Design

Education

  • Bachelor's Degree in Mathematics
    2005 - 2010
    West Chester University - West Chester, PA

To view more profiles

Join Toptal
Share it with others