Marcel Popescu, Developer in Târgoviște, Romania
Marcel is available for hire
Hire Marcel

Marcel Popescu

Verified Expert  in Engineering

.NET Developer

Location
Târgoviște, Romania
Toptal Member Since
September 15, 2014

Marcel is a senior developer with over 20 years of experience. He prefers back-end development, is great with algorithms, and prides himself on well-designed code. He has written an introductory book on TDD and is currently mentoring several junior programmers.

Portfolio

Renfield Software
C#, .NET, .NET Core, NUnit, Moq, Windows, Telerik, ETL...
New Potato Creek Holdings LLC
C#, Windows, OAuth, T-SQL (Transact-SQL)
Orion180
Windows Forms (WinForms), Web API, SQL, C#, .NET, Microsoft SQL Server, jQuery...

Experience

Availability

Full-time

Preferred Environment

Visual Studio

The most amazing...

...program I've written automates an error-prone, three-day-long manual database replication down to a two-minute console app.

Work Experience

CEO/CTO

2019 - PRESENT
Renfield Software
  • Developed a Web API portal interfacing between restaurants and delivery services.
  • Developed a WinForms (desktop) application for transcribing and translating videos, using various AWS services, to help some of our employees who were not very proficient with spoken English.
  • Wrote an inventory application for mobile phones, allowing users to record inventory levels by going into the warehouse and scanning the product labels. A report would then be generated and sent to the configured recipients.
Technologies: C#, .NET, .NET Core, NUnit, Moq, Windows, Telerik, ETL, ETL Implementation & Design, Entity Framework, Reactive Programming, JSON, ReSharper, Reactive Extensions, C#.NET WinForms, Windows Forms (WinForms), Technical Leadership, OAuth 2, Amazon Web Services (AWS), Windows Desktop, Windows App Development, OAuth, T-SQL (Transact-SQL)

Windows 10 Application Developer

2023 - 2024
New Potato Creek Holdings LLC
  • Built a web application allowing company users to subscribe to a notification (configurable between immediate/hourly summary/daily summary) regarding locations that have not received updates recently.
  • Developed a desktop application (used with kiosks) allowing customers to upgrade their subscription level when entering the car wash.
  • Helped create an AWS VM and deployed the web application to it, ensuring it could not compromise the internal company network while still accessing specific queries from the SQL server.
Technologies: C#, Windows, OAuth, T-SQL (Transact-SQL)

Senior .NET Developer

2021 - 2021
Orion180
  • Worked on an insurance application/MVC site, primarily on the rating engine, the part of the application responsible for calculating the insurance premium.
  • Started working on integrating the application with third parties, as a provider of insurance quotes.
  • Added reliable, automated tests to ensure that the hundreds of criteria used in calculating the insurance premium worked as expected.
Technologies: Windows Forms (WinForms), Web API, SQL, C#, .NET, Microsoft SQL Server, jQuery, CSS, HTML, ASP.NET MVC, ASP.NET, ASP.NET Web API, ASP.NET Core, ASP.NET Web Services, Algorithms, CTO, Leadership, Management, REST APIs, Web Services, Agile Software Development, APIs, Telerik WebForms Controls, Telerik for WinForms, Desktop App Development, NATS, Telerik Kendo UI, Multithreading, Model View Controller (MVC), C#.NET, Databases, C#.NET WinForms, .NET Core, NUnit, Moq, Windows, Telerik, ETL, ETL Implementation & Design, Entity Framework, iText, iTextSharp, Reactive Programming, JSON, ReSharper, Reactive Extensions, OAuth 2, .NET 4, T-SQL (Transact-SQL)

Developer

2018 - 2020
Grab (via Toptal)
  • Worked on a responsive Kiosk project supporting multiple restaurants (with different CSS/theming).
  • Developed a responsive web site for ordering at airports or train stations.
  • Improved the quality of the existing code, adding unit tests, and UI tests (using Selenium).
Technologies: Model View Controller (MVC), Web Forms, C#, .NET, JavaScript, Microsoft Azure, Azure, Microsoft SQL Server, jQuery, CSS, HTML, ASP.NET MVC, ASP.NET, ASP.NET Web API, ASP.NET Core, ASP.NET Web Services, Algorithms, SQL, REST APIs, Web Services, Agile Software Development, APIs, Multithreading, Web API, C#.NET, Databases, NUnit, Moq, Windows, TypeScript, Entity Framework, JSON, ReSharper, OAuth 2, .NET 4, OAuth, T-SQL (Transact-SQL)

Developer

2016 - 2016
Quadrant.io (Investormill, Inc.)
  • Built high-speed processing of large data files (up to 10 GB).
  • Wrote code to split a file in chunks with the additional requirement that the split happens on a line end (since they were line-oriented text files).
  • Facilitated multithreaded processing of large files without running out of memory.
  • Processed the data while downloading it so that processing was over in 1m 33s for a file where the download alone took around 1m 27s.
  • Made extensive use of unit tests.
Technologies: ZIP, Web, LINQ, Multithreading, Test-driven Development (TDD), C#, .NET, Algorithms, SQL, C#.NET, Windows, ETL, ETL Implementation & Design, Entity Framework, Reactive Programming, ReSharper, Reactive Extensions, T-SQL (Transact-SQL)

Python and Java Developer

2015 - 2015
Bank of America Merrill Lynch
  • Transitioned two internal projects from using SIC codes to NAICS, one written in Python and one in Java. The projects had an original estimate of six months. We managed to finish them in three.
  • Generated new aggregation reports based on risk industry groups and sectors (based on the newly added NAICS codes).
  • Added new permissions to enable finer control on who is allowed to make specific changes in the Java project UI.
  • Optimized a query that was taking a couple of minutes on the DEV server down to ten seconds by using a combination of temporary tables and JOINs (we were not allowed to change the existing tables, not even to add indexes).
  • Advised the rest of the team on design and testing issues.
Technologies: Java, Python, Algorithms, Databases, Windows, Technical Leadership, T-SQL (Transact-SQL)

Programmer

2013 - 2014
DeCare Systems Ireland
  • Automated data replication from staging to production, changing a three-day, error-prone manual process to a two-minute automated one using SQL Server Data tools.
  • Worked on the Avon shop for the Australia/New Zealand region, changing the existing workflow to support direct delivery and direct payment on the website. The front end is a C# MVC 5 application, and the back end is mostly WCF services.
  • Integrated PayPal Express for the Avon Australia and New Zealand websites. This involved changes on both the client and the server sides.
  • Uploaded media files to a CDN (content distribution network) service to improve response times and reduce pressure on our servers. I also had to use low-level Win32 APIs for paths longer than 260 chars.
  • Rewrote an application to reflect the Avon UK branch's change of shipping company, which was hard-coded into their previous VB6 app. This required abstracting details about the label printer due to its unavailability at the start of the project.
  • Added a health monitoring system to a complex network of WCF services. Since many web services were written in C# 3.0, this project didn't use technologies besides WCF and a JSON parser.
Technologies: ASP.NET MVC, C#, .NET, Microsoft SQL Server, jQuery, CSS, HTML, ASP.NET, ASP.NET Web API, Algorithms, SQL, REST APIs, Web Services, Agile Software Development, APIs, Desktop App Development, Multithreading, Model View Controller (MVC), C#.NET, Databases, Moq, Windows, Entity Framework, JSON, OAuth 2, .NET 4, T-SQL (Transact-SQL)

Branch Manager and Lead Developer

1999 - 2013
MicroBilt
  • Switched the company's back-end applications in Delphi 5 to C#.
  • Reduced writing WCF services to about a week through practical experience, assisted by my CodeSmith template written to get the common parts out of the way, and allow everyone on the team to focus on what was new in each application.
  • Wrote the back-end application to create an in-house credit service for people who didn’t have a good standard credit report in a six-month project.
  • Wrote Enhanced People Search, which uses a combination of data sources to create a comprehensive history of a person. We had to do a lot of optimizations on this service due to a large amount of computation involved.
  • Developed the ID authentication service as a fraud-prevention measure using historical information databases to determine whether a person actually was who they claimed to be.
Technologies: Delphi, Windows Communication Foundation (WCF), C#, .NET, Microsoft SQL Server, jQuery, CSS, HTML, ASP.NET MVC, ASP.NET, ASP.NET Web API, Algorithms, CTO, SQL, Leadership, Management, REST APIs, Agile Software Development, APIs, Desktop App Development, WCF Web Services, Multithreading, Web API, Model View Controller (MVC), C#.NET, Databases, C#.NET WinForms, Windows, ETL, ETL Implementation & Design, Windows Forms (WinForms), Technical Leadership, .NET 4, Windows Desktop, Windows App Development, T-SQL (Transact-SQL)

Simple MVC View Engine

https://github.com/mdpopescu/public/tree/master/SimpleViewEngine
A minimalistic engine for ASP.NET MVC that enforces the removal of logic from the views. Only "if," "foreach," and "include" are supported, so all data must be placed in the model instead of being retrieved by the view when it is rendered.

The code was developed using TDD and uses Linq and reflection plus a dedicated parser. The engine can also be used independently of MVC (but alternative projects like SmartFormat might be simpler to use in those cases).

Fail-over Mechanism

https://github.com/mdpopescu/public/tree/master/Failover
An implementation of a fail-over mechanism, where several actions are sequentially attempted until one succeeds.

Additional information can be found at http://mdpopescu.blogspot.ro/2013/06/fail-over-algorithm.html.

Excel File Comparison

http://mdpopescu.blogspot.com/2013/06/comparing-excel-files-take-two.html
An article presenting a console application for comparing two Excel files. The project was developed in C# using TDD and is available on GitHub.

TDD Book

This is my "TDD by Example" book, where I develop an expression evaluator (a class that can evaluate expressions like 2 + 3 * 5 - x), piece by piece using C# and TDD.

Professional Development – Algorithms: Design and Analysis

https://www.coursera.org/course/algo
Completed Coursera's "Algorithms: Design and Analysis" courses in 2013 with a score of 97% on the first course and 74% on the second. The courses comprise approximately 100 hours of training and are designed and facilitated by Prof. Tim Roughgarden of Stanford University.

Dynamic Master/Detail Forms with Knockout

http://mdpopescu.blogspot.com/2013/07/posting-dynamic-master-detail-forms.html
The article presents an interesting dilemma: Create a dynamic form, using MVC 4+ and Knockout, that nevertheless gets POSTed correctly, by generating the right form IDs.

Languages

C#.NET, C#, T-SQL (Transact-SQL), TypeScript, HTML5, JavaScript, HTML, Delphi, SQL, Python, Java, CSS

Frameworks

ASP.NET Web API, ASP.NET MVC, .NET, .NET Core, ASP.NET, ASP.NET Core, .NET 4, ASP.NET Web Services, Knockout (Knockout.js), OAuth 2, NUnit, gRPC, Telerik Kendo UI, Bootstrap

Libraries/APIs

LINQ, Moq, Windows Forms (WinForms), SignalR, NetDocuments API, Dropbox API, Reactive Extensions, jQuery, Entity Framework, REST APIs, iText, iTextSharp, Web API, Twilio API

Tools

C#.NET WinForms, Git, ReSharper, Visual Studio, Microsoft Team Foundation Server, GitHub

Paradigms

Desktop App Development, Agile Software Development, Test-driven Development (TDD), Windows App Development, Reactive Programming, ETL, ETL Implementation & Design, Management, Model View Controller (MVC)

Platforms

Windows, Windows Desktop, Telerik, Web, Azure, Amazon Web Services (AWS)

Other

Web Services, Algorithms, APIs, WCF Web Services, Telerik WebForms Controls, Multithreading, Telerik for WinForms, OAuth, CTO, Leadership, Technical Leadership, NATS, Windows Communication Foundation (WCF), ZIP, Tesseract, Microsoft Azure

Storage

Databases, Microsoft SQL Server, JSON, Web Forms

SEPTEMBER 2013 - PRESENT

Algorithms: Design and Analysis

Coursera

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring