System Architect | Full-stack Developer2013 - PRESENTIteraFlow
Technologies: Visual Studio Team Services (VSTS), Office 365 API, Azure Queue, Azure Blobs, Azure WebJobs, Azure Websites, Azure Active Directory, Angular, AngularJS, TypeScript, Azure Functions, Microsoft SQL Server, Entity Framework Core, Web API, ASP.NET Core, Domain-driven Design (DDD), Bootstrap
- Architected and developed a framework based on serverless computing, messaging, DDD, CQRS, ES, Hypermedia-driven RESTful APIs, and implemented it in a few corporate applications for business process automation.
- Used serverless computing with Azure Functions and a consumption plan which supported on-demand horizontal scaling to implement compute-intensive tasks with rare but very high peaks.
- Designed and implemented a messaging mechanism based on Azure Blobs and Queues for communication between the ASP.NET Web API hosted on an Azure web app and the Azure Function/Azure Job apps.
- Architected and developed UI libraries (Angular and Bootstrap) that enable rapid development of new features and a consistent UI across the entire application. The libraries were published as npm packages and consumed in several solutions.
- Implemented the authentication in ASP.NET Core and Windows Azure Active Directory Bearer Authentication.
- Installed the aggregate root level distributed optimistic locking based on Azure Blob leases to ensure data integrity.
- Set up an Azure environment and multi-tenant Azure web app that authenticates against clients Azure active directories and enables a single sign-on with clients of Office 365 tenant.
- Used ADAL.JS to implement an OAuth 2 implicit grant flow in an AngularJS application and authenticated users against the Azure Active Directory.
System Architect | Full-stack Developer2019 - 2020Freelance
Technologies: Angular, .NET, Architecture, REST API Architecture, Web Architecture, Bootstrap, ASP.NET Core, Entity Framework Core
- Architected and implemented the MVP of a web-based SaaS platform for tracking inventory items via RFID codes.
- Designed and developed a back-end API that collects tracking information, processes it, and then exposes a variety of API endpoints to show different analyses and reports as well as manage inventory, users, etc.
- Designed and developed a web-based Angular and Bootstrap-based single-page application with a responsive design.
- Implemented support multitenancy and impersonation of the SaaS provider users to act on behalf of different clients at the API and back-end levels.
Lead Developer2011 - 2013IGSoft
Technologies: TeamCity, NUnit, NLog, Moq, Json.NET, PostSharp, Validation, T4, Modeling, Visualization, jQuery, Kendo UI, Knockout.js, Unity (IoC Container), CSLA, ASP.NET MVC, ASP.NET Web API, Microsoft SQL Server, Entity Framework Core, C#
- Led a team of 4-6 developers who were responsible for the architecture and development of an online gambling back office system which manages all the internal processes related to running such a business; also the integrations with external systems and reporting.
- Implemented the UI of the system using Knockout.js, Kendo UI, and the bridge library, Kendo-Knockout.js.
- Installed a data access layer for CSLA business objects based on repository pattern and Entity Framework.
- Developed an ASP.NET MVC Model Binder for CSLA business objects.
- Designed and implemented a DSL that was based on the Visual Studio Modeling SDK for defining metadata for modules, entities, and entity associations; also implemented T4 templates to generate entities and other classes from them.
Software Architect | Lead Developer2010 - 2013alex+von
Technologies: jQuery, Bootstrap, Moq, NUnit, T4, Unity (IoC Container), IIS, Facebook API, PayPal API, NopCommerce, OAuth, LINQ, ADO.NET, Microsoft SQL Server, Windows Communication Framework (WCF), ASP.NET MVC 4
- Architected, developed, and maintained the .NET-and-nopCommerce-based direct selling web platform for a California-based startup—automating the business processes and provided much-needed reports to drive the company forward.
- Designed and developed a customizable incentive program engine that supported stages, challenges, and achievements; and that was also available for each consultant who met the eligibility criteria.
- Designed and developed a notifications engine that supports custom templates with contextual placeholders for different events in the system as well as different notification channels like email, within the site, and SMS.
- Implemented a single sign-on between the nopCommerce app and direct-selling platform apps based on WCF and form authentication.
- Implemented two-way communication and data synchronization between nopCommerce and a direct-selling platform engine; using WCF web services with WSHttpBinding.
- Implemented customizations on top of a default nopCommerce implementation for a functional web design perspective that included vendor-based order splitting, additional checkout steps, and bonuses.
Senior Software Engineer2009 - 2010Mirchev Ideas
Technologies: Unity (IoC Container), DevExpress, Windows Presentation Foundation (WPF), Microsoft SQL Server, MySQL, MSMQ, Windows Communication Framework (WCF), Ajax, ASP.NET
- Implemented, redesigned, optimized, and refactored a documents module which automates all the operational processes as well as the reporting, store, and discounts modules in a custom ERP system for a client in the auto-parts-and-auto-services industry. The work included an implementation of missed requirements, removal of unnecessary couplings, dealing with extensibility and reliability issues, and more.
- Redesigned the business layer of an ASP.NET-based invoice processing and approval system. The concept of a unit of work was added by using Unity IoC Interception. Some repeated data access logic was abstracted into reusable methods and the code was significantly simplified.
- Implemented WCF with MSMQ endpoints for communication between a WPF-based player-vs-player RPG game and the game servers.
Senior Software Engineer2007 - 2009Software Technologies
Technologies: FinalBuilder, TeamCity, NLog, NUnit, Unity (IoC Container), PostSharp, NHibernate, CSLA, Windows Communication Framework (WCF), Microsoft SQL Server, Telerik, Ajax, ASP.NET
- Contributed to the development of the OOA and OOD of an ASP.NET-based online booking system for hotel rooms, car rentals, and tickets; it integrates booking items from several suppliers and provides best possible offers for the user.
- Designed, developed, and unit-tested a booking engine prototype that simultaneously checks the best possibly hotels prices from different sources based on a chosen criteria.
- Implemented user management and security in an ASP.NET app based on membership and forms authentication using NHibernate.
- Implemented an engine for localizing an ASP.NET website by using a live on-page localization editor and storing the localization texts in a database utilizing a custom virtual path provider.
Software Engineer2005 - 2007Gugga (recently acquired by Wacom)
Technologies: ActionScript 2, Microsoft SQL Server, ADO.NET, Telerik, Ajax, ASP.NET
- Developed the core components, business logic, and the data access layer of a public interface and back-office module for an intranet content management system for the Bacardi company. Used extensively Telerik ASP.NET controls, especially the grid, editor, and upload components.
- Extended the business logic in the training system for Panasonic resellers.
- Developed tough B2C and B2B marketing applications based on .NET and Flash/ActionScript 2.0 for clients like Mazda, Bacardi, and Dewars. Had a leading role in two of the projects.
- Participated in the development of an ActionScript 2.0 based framework for building rich internet applications.
.NET Developer2004 - 2005Skyware Group
Technologies: Crystal Reports, SQL Server 2000, Windows Forms, VB.NET
- Migrated the registration module of a laboratory information system (still used in more than 30 laboratories in Bulgaria) from VB6 to a VB.NET Windows Forms application.
- Integrated fiscal and barcode printers.
- Implemented reporting using Crystal Reports.
- Implemented an ASP.NET-based web app for checking and printing patient results online.