Michael K. looks like a good fit?

We can organize an interview with Aldin or any of our 25,000 available candidates within 48 hours. How would you like to proceed?

Schedule Interview Now

Michael K. Backend, Web and API Development

My name is Michael K. and I have over 4 years of experience in the tech industry. I specialize in the following technologies: JavaScript, Web Development, Microsoft SQL Server, Progressive Web App, .NET Core, etc.. I hold a degree in Bachelor of Science (BS). Some of the notable projects I’ve worked on include: Cloud Drive Integrations, Eventbrite Integration, Authentication Sources, Retention Policy Management System, Data Transfer, etc.. I am based in Aurora, United States. I've successfully completed 6 projects while developing at Softaims.

I employ a methodical and structured approach to solution development, prioritizing deep domain understanding before execution. I excel at systems analysis, creating precise technical specifications, and ensuring that the final solution perfectly maps to the complex business logic it is meant to serve.

My tenure at Softaims has reinforced the importance of careful planning and risk mitigation. I am skilled at breaking down massive, ambiguous problems into manageable, iterative development tasks, ensuring consistent progress and predictable delivery schedules.

I strive for clarity and simplicity in both my technical outputs and my communication. I believe that the most powerful solutions are often the simplest ones, and I am committed to finding those elegant answers for our clients.

Main technologies

  • Backend, Web and API Development

    4 years

  • JavaScript

    3 Years

  • Web Development

    3 Years

  • Microsoft SQL Server

    2 Years

Additional skills

  • JavaScript
  • Web Development
  • Microsoft SQL Server
  • Progressive Web App
  • .NET Core
  • C#
  • API Development
  • Database Design
  • Data Migration
  • Prototyping

Direct hire

Potentially possible

Previous Company

Microsoft

Ready to get matched with vetted developers fast?

Let's get started today!

Hire Remote Developer

Experience Highlights

Cloud Drive Integrations

Document management has been an unorganized process for many of my clients. They often faced a need to have documents, like policies and procedures, displayed on their company portal, allow access to some users to edit the files from anywhere, and track the history of edits and changes to the documents. Years ago, I approached this problem by forcing administrators to upload files into a CMS. The files were accessible to the whole company by downloading those files from their web portal. The CMS would store the versions of the file along with meta data about the file in the database. This approach worked for a while, but it became problematic when online cloud drive systems like Microsoft Office 365, Google Drive, and Dropbox allowed more advanced editing techniques. My client wanted the benefits of the company portal, but also wanted to store their files once and gain access to features like collaboration. To facilitate this goal, I designed and built a set of tools within the CMS that would support files that live in a cloud drive system as opposed to being uploaded to a server. I started with an integration with Microsoft Office 365 but used abstraction and interfaces to design a system that would allow for other cloud drive integrations in the future with much less work, and fewer UX changes. The first necessary tool was a framework for authorizations. To support this, I created an administrative interface that would guide company admins through the process of registering an application with an identity platform and passing that registration information to the CMS. I then built the user experience that referenced the identity registration to authenticate company portal users with their company's cloud drive account. Once the user's Microsoft account was associated with the CMS, I then created interfaces for selecting, previewing, and even editing documents on the company web portals. This project has led to a completely new way for companies to manage their documents and web site together. Files are no longer duplicated, the users and administrators have access to more information related to the documents, and new ways to edit those documents on the web. The biggest benefit is that the company's employees can utilize all the features of Microsoft Office 365 alongside their web portal and CMS.

Eventbrite Integration

The client was a large health system using an ASP.NET CMS to manage events and post them to their hospital web sites. They wanted to continue to use their CMS for designing and displaying events on their web site, but they also wanted some of the advanced features provided by the Eventbrite platform for event creation and booking. To overcome this problem, I started by setting up a Webhook in the Eventbrite platform that would be triggered every time an event was created or updated in Eventbrite. This webhook would push the event-id from Eventbrite to a new RESTful API I created using ASP.NET Web API within the CMS. The CMS then took the event-id and called back to the Eventbrite API to retrieve the details of the event and duplicate the event within the CMS. Over time the hospital started using Eventbrite for all their events but was able to continue using their CMS and web site without manually duplicating any data. Each time an administrator creates, updates, or deletes an event within Eventbrite the data is automatically replicated within the CMS within seconds. Both the event administrators and the web site administrators are incredibly happy with this implementation because they can focus on their portion of the project and don't have to worry about the other.

Authentication Sources

The client I was working with has a home-grown content management system (CMS) that they use to build and sell company portals. These portals are typically used by medium to large corporations for document management and web-based process automation. End users log into the portal and view their company dashboard. Earlier, they required users to create an account within their CMS to gain access to the portal. Companies would often import many user accounts into the system and end users would be required to maintain their accounts in the CMS, and the source they imported them from separately. Because many of these companies used Active Directory (AD) the goal was to log users in from AD directly without creating a new account in the CMS. Additionally, all existing features of the CMS had to work seamlessly regardless of the source of the end user, and they needed the ability to add additional sources as they acquired new customers whose end-users may not be in AD. I began by designing database tables that could track virtual users and integrating them directly into their CMS. Then I created an administration UI to create new authentication sources, they called them global logins, and enable/order them within the CMS. Initially, the system only supported two authentication sources: their CMS and AD. When authentication occurred successfully, if the source was virtual, the system would create a virtual user by mapping fields in the source user to a new CMS user. The administration UI was used to determine how mapping was handled, and all existing and new features worked regardless of the authentication source. Over time this system was widely adopted, and many new authentication sources were added. SAML and OAuth/Open ID are the most reusable sources added, and an option for custom sources was also created. Custom sources became quite popular for companies with an authentication that was completely unique or a slight variation of an existing authentication source. Abstraction was used to quickly deploy a copy of a SAML authentication source, for example, with a few modifications. Most the client's medium and large companies now utilize single sign-on as opposed to the built-in CMS's user accounts.

Retention Policy Management System

Berkley Technology Services wanted a system that would go out to other systems periodically, look for old documents, report on them, and delete or archive them. I designed a system where several different storage paths could be configured and used abstraction to ensure that new storage path types could be added quickly and easily. When a new policy is created you schedule the execution of that policy, select any number of storage paths to scan, configure the action to complete if the document is expired, and determine how the action will be recorded for reporting purposes. Some policies report on expired documents by sending emails, and others act and delete documents immediately. A reporting feature can be used to view the progress of the scans at any point in time. It's now active and configured with seven different storage paths.

Data Transfer

The goal for the project was to make it easier to migrate new clients from their old web site provider into a new home-grown content management system. They wanted a tool that would allow non-developers to connect to an external data source and transfer data into their system. Another benefit would be to be able to transfer data out of their CMS and into other systems on a schedule. I designed a system based upon interfaces for a transfer source and destination. The GUI allows administrators to select a source and destination and provided options to map source fields into destination fields and the ability to modify that data on the way. It was deployed with only a few sources, but the abstraction of interfaces allowed developers to easily build new sources and destinations without concern for the GUI. Currently, it consists of over thirty sources and destinations. It is used to migrate new clients into the system, and they've allowed the client to use the tool themselves as an upsell. It's also often used with the scheduling features to keep data synchronized across disparate systems. It's considered one of the most valuable tools the CMS has to offer.

Education

  • Kent State University

    Bachelor of Science (BS) in Computer science

    1995-01-01-1999-01-01

Languages

  • English

Personal Accounts