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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.