Marcel P.

About Me

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.

Frontend

Backend

Database

QA & Testing

Other

Work history

Renfield Software
CEO/CTO
2019 - Present (6 years)
Remote
  • 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.

C#.NET.NET CoreNUnitMoqWindows TelerikETLETL Implementation & DesignEntity FrameworkReactive ProgrammingJSONReSharperReactive ExtensionsC#.NET WinForms Windows Forms (WinForms) Technical Leadership OAuth 2 Amazon Web Services (AWS)
Grab
Developer
2018 - 2020 (2 years)
Remote
  • 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).

DeCare Systems Ireland
Programmer
2013 - 2014 (1 year)
Remote
  • 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.

ASP.NET MVCC#.NETMicrosoft SQL Server jQueryCSSHTMLASP.NETASP.NET Web APIAlgorithmsSQLREST APIs Web ServicesAgile software developmentAPIsDesktop App Development MultithreadingModel View Controller (MVC) C#.NET DatabasesMoqWindows Entity FrameworkJSONOAuth 2
MicroBilt
Branch Manager and Lead Developer
1999 - 2013 (14 years)
Remote
  • 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.

DelphiWindows Communication Framework (WCF) C#.NETMicrosoft SQL Server jQueryCSSHTMLASP.NET MVCASP.NETASP.NET Web APIAlgorithmsCTO SQLLeadershipManagementREST APIs Agile software developmentAPIsDesktop App Development WCF Web Services MultithreadingWeb APIModel View Controller (MVC) C#.NET DatabasesC#.NET WinForms Windows ETLETL Implementation & DesignWindows Forms (WinForms) Technical Leadership
Orion180
Senior .NET Developer
Present (2025 years)
Remote
  • 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.

Windows Forms (WinForms) Web APISQLC#.NETMicrosoft SQL Server jQueryCSSHTMLASP.NET MVCASP.NETASP.NET Web APIASP.NET CoreASP.NET Web Services AlgorithmsCTO LeadershipManagementREST APIs Web ServicesAgile software developmentAPIsTelerik WebForms Controls Telerik for WinForms Desktop App Development NATSTelerik Kendo UI MultithreadingModel View Controller (MVC) C#.NET DatabasesC#.NET WinForms .NET CoreNUnitMoqWindows TelerikETLETL Implementation & DesignEntity FrameworkiText iTextSharp Reactive ProgrammingJSONReSharperReactive ExtensionsOAuth 2
Quadrant.io (Investormill, Inc.)
Developer
Present (2025 years)
Remote
  • 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.

Bank of America Merrill Lynch
Python and Java Developer
Present (2025 years)
Remote
  • 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.

JavaPythonAlgorithmsDatabasesWindows Technical Leadership

Showcase

Simple MVC View Engine
  • A minimalist ASP.NET MVC engine focused on removing logic from views.

  • Supports only 'if', 'foreach', and 'include' statements.

  • Developed using TDD, Linq, reflection, and a dedicated parser.

Fail-over Mechanism
  • Implement a fail-over mechanism involving sequential attempts to execute multiple actions.

  • The implementation utilizes a fail-over algorithm as described in the provided resource.

  • The text focuses on a mechanism for achieving success through a series of attempts.

Excel File Comparison
  • A C# console application for comparing two Excel files.

  • Developed using TDD and available on GitHub.

  • The project's purpose is to facilitate Excel file comparison.

TDD Book
  • This is a C# book focused on the TDD (Test-Driven Development) process.

  • The book develops an expression evaluator using C# and TDD.

  • The evaluator is designed to be a piece-by-piece, modular component.

Professional Development – Algorithms: Design and Analysis
  • Completed Coursera algorithms courses in 2013 with high performance (97% on the first course and 74% on the second).

  • The courses were designed and facilitated by Prof. Tim Roughgarden of Stanford University.

  • The courses involved approximately 100 hours of training.

Dynamic Master/Detail Forms with Knockout
  • Develops a dynamic form using MVC 4+ and Knockout.

  • Ensures correct POST submission by generating the right form IDs.

  • Focuses on creating a form that dynamically updates with the correct IDs.

Education

Triplebyte Certified Generalist Software Engineer - 2020
Triplebyte Certified Generalist Software Engineer - 2020
Triplebyte