System Architect | Full-stack Developer2013 - PRESENTIteraFlow
Technologies: Visual Studio Team Services (VSTS), Office 365 API, Azure Queues, Azure Blobs, Azure Web Jobs, Azure Websites, Azure Active Directory, Bootstrap 3, Angular, AngularJS, TypeScript, Azure Functions, Microsoft SQL Server, Entity Framework Core, Web API, ASP.NET Core
- Architected and developed a framework based on serverless computing, messaging, DDD, CQRS, ES, Hypermedia-driven RESTful APIs, and implement 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 in order to implement computational intensive tasks with rear-but-very-high peaks.
- Designed and implemented a messaging mechanism base 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.
- Implemented the authentication in ASP.NET Web API based on OWIN 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 OAuth 2 implicit grant flow in an AngularJS application and authenticated users against the Azure Active Directory.
- Architected and developed a UI framework (based on AngularJS, TypeScript, and Bootstrap 3) that was reused between several business processes automation solutions. The AngularJS app consumes hypermedia that reached the RESTful API and uses the retrieved links and metadata to render the page content, the navigation links, and the actions that the user is authorized to perform. This approach enables the rapid development of new features and a consistent UI across the entire application.
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, 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.