Miguel Hughes, Developer in Bariloche, Buenos Aires, Argentina
Miguel is available for hire
Hire Miguel

Miguel Hughes

Verified Expert  in Engineering

Software Developer

Location
Bariloche, Buenos Aires, Argentina
Toptal Member Since
December 15, 2016

Miguel has a wide range of experience in various areas and languages, but his strongest language is C#. He enjoys coding just like people enjoy solving puzzles or sudoku magazines. He believes that software development should be fun and exciting. Miguel enjoys learning new skills and is an open, respectful, and polite developer.

Portfolio

Freelance
CSS, React, JavaScript
Mozzo LLC (via Toptal)
Kendo UI, EasyPost, Hangfire, jQuery, Bootstrap, JavaScript, AutoMapper...
Large US Development Studio (via Toptal)
Entity Framework Core, Git, Azure, Postman, C#, Web API, .NET Core

Experience

Availability

Part-time

Preferred Environment

Postman, SmartGit, Sublime Text, Visual Studio

The most amazing...

...project I've worked on is a multi-server, multi-threaded transaction processor. I was one of the designers and we built it from scratch.

Work Experience

Front-end Developer

2020 - 2020
Freelance
  • Built a clone of the popular Slack app: Miguelhughes.github.io/slack-clone. It uses the useState hook to keep the state, the useEffect hook for side effects (scrolling to the bottom of the window upon activation), and only CSS for the layout.
  • Developed a shopping app: Miguelhughes.github.io/shopping-app. Quantities can be updated in from the cart and totals are updated instantly in the rest of the app. The item component is re-used in both views, using the Children feature.
  • Built also a Reddit clone, a Pinterest clone, and a Hacker News clone; more information can be found at Miguelhughes.github.io/react-showcase.
Technologies: CSS, React, JavaScript

.NET Developer for Several eCommerce Projects

2019 - 2020
Mozzo LLC (via Toptal)
  • Implemented a database resource provider to provide customizable and translatable terms from database (i.e., some clients use the term "item" for inventory while others use "material"). More details can be found in my Experience section.
  • Designed and implemented a reusable generic entity importer to add or update rows from Excel files using OpenXML.
  • Sponsored and implemented using table-per-type inheritance in Entity Framework which maps to different tables in SQL server, and actual inheritance in generated entities (using database first approach). More details can be found in my Experience section.
  • Built a JavaScript library that extends JavaScript datatables.net, for doing CRUD operations inline on .NET Core. More details can be found in my Experience section.
  • Added various new CRUD screens using Razor, jQuery, and Telerik Kendo UI Grid to do inline editing or separate add/edit forms for more complicated entities.
  • Implemented three new functionalities with their supporting screens, C# back-end code, entities, database modifications, and so on.
  • Implemented integration with EasyPost API to track package statuses, on a .NET Core web application.
  • Refactored to decouple components, using interfaces where possible, to improve readability and flexibility.
Technologies: Kendo UI, EasyPost, Hangfire, jQuery, Bootstrap, JavaScript, AutoMapper, jQuery DataTables, Entity Framework Core, .NET Core, Microsoft SQL Server, Entity Framework, Razor, ASP.NET MVC, C#

Back-end Developer

2017 - 2018
Large US Development Studio (via Toptal)
  • Ported a large web API solution from the .NET Framework to .NET Core (over 50,000 lines of code).
  • Refactored a core part of the solution from a monolithic architecture and thousands of lines classes to a modern and modular one which uses dependency injection, single responsibility services and features much smaller classes.
  • Implemented event-driven architecture in a section of the solution to publish events to mail, Azure push notifications (mobile), and web front-end notifications; decoupling services with event publishing and resulting in a much more extensible and maintainable code.
  • Leveraged Azure performance and load metrics to troubleshoot and optimize half a dozen critical endpoints that were having high CPU and memory impact. Worked together with team's DBA to optimize SQL queries and indexes, and reduce memory use and round trips to the database.
  • Implemented high-test coverage with Postman with over a hundred tests. Also built numerous CRUD and flow tests for critical entities relying on Postman's js test code and variables.
  • Implemented various MVC filters to address various cross-cutting concerns. This greatly reduced code repeat and cleaned the controller's code. Some of these handle generic exceptions, invalid values in model states, and implement time zone corrections.
  • Advocated the migration of some projects from TFVC to Git; researched and executed how to port the actual history into Git, and implemented a process to migrate additional changes from TFVC to Git to keep them synchronized.
  • Implemented synchronization with a third party web APIs with about a dozen endpoints, which were quite obscure and poorly documented. Managed to find the expected parameters and values through testing and trial and error.
Technologies: Entity Framework Core, Git, Azure, Postman, C#, Web API, .NET Core

C# Developer

2017 - 2017
Tahoe Donner Assocation (via Toptal)
  • Created a console app that mirrors time tracking information from an XML web service to a local SQL server database. The database schema creation and modifications were done with EF code-first migrations.
  • Built an ASP.NET Web Forms app to ensure synchronization between a local database and a third-party golf court reservation system.
  • Authored numerous Postman tests to discover and verify the functionality of a third-party reservation system.
Technologies: Postman, ASP.NET Web Forms, Web Services, Entity Framework, .NET

Web Developer (Contractor)

2012 - 2017
Magicnet
  • Built an MVVC AngularJS back-end app for tourist information' includes a RESTful API that supports the Android front-end.
  • Implemented complete test coverage of the API using Postman.
  • Modified heavily a custom directory engine to support ads, implemented CSV import and export, and integrated it with Google maps.
  • Implemented a membership module on a BigCommerce website, which is very restrictive and only allows HTML editions, via JavaScript and a third-party PHP server.
Technologies: jQuery, CSS, AngularJS, PHP

Web Developer (Contractor)

2013 - 2014
SouthApps
  • Built a large (50+ tables) web-based enterprise resource planning application on ASP.NET MVC and Razor, with minimum code duplication.
  • Implemented a role-based, configurable permissions module that integrated with the rest of the app simply with custom attributes.
  • Built an auditing module also with custom attributes.
  • Constructed a Twitter Bootstrap 3 front end built with unobtrusive validation and minimal round trips that ensure maximum responsiveness even when dealing with large amounts of data.
Technologies: Entity Framework, Ajax, Razor, jQuery, CSS3, HTML5, ASP.NET MVC 4

Back-end Lead | Server Administrator

2012 - 2012
Owzom
  • Learned and leveraged how to use the Photon Socket Server, and did various improvements on the existing code—including performance optimization, troubleshooting and bandwidth usage reduction.
  • Proposed and executed a seamless migration of our three servers from dedicated hosting to cloud hosting (Amazon).
  • Handled all the server administrator tasks including DNS management, designing SQL backup scheme, and testing and applying software updates.
Technologies: Sockets, Photon, .NET, C#, Microsoft SQL Server, Entity Framework

Senior .NET Developer

2008 - 2010
Hexacta
  • Wrote a configurable and extensible rule-based invoicing module that would automatically create an invoice based on the history of an item in the system; with 80% unit test coverage.
  • Established and enforced coding policies and good practices to ensure uniform code from the 15 members.
  • Helped the scrum master analyze and estimate the impact of changes.
  • Was sent to a client's site, from my country in Argentina to Africa, Tanzania, to set up the system we'd built and to train users.
Technologies: .NET, C#, NUnit, Web Forms, T-SQL (Transact-SQL), Microsoft SQL Server, ASP.NET

.NET Developer

2005 - 2008
Acriter S.A.
  • Made major contributions to the design and architecture definition of the system.
  • Developed a multithreaded TCP connector with pluggable parsers that enable reusability for different protocols.
  • Authored a performance counter library to enable any component output performance monitoring in a simple manner.
  • Developed the system's front-end administrator with ASP.NET that allows configuring components and starting and stopping components and the whole system.
  • Implemented a thorough performance tuning on the code and in SQL operations to ensure maximum throughput.
Technologies: Performance, ASP.NET, Windows, Web Services, Microsoft SQL Server, .NET, C#

React Sample Apps

https://miguelhughes.github.io/react-showcase/
This is a landing page for a series of simplified versions that I've built of popular apps and showcases my React and CSS knowledge.

Features:
• Slack clone
• Reddit clone
• Simplified shopping app
• Pinterest clone
• Hacker News clone
• Time-traveling tic-tac-toe game

Mozzo Projects | DataTables.net Extension for CRUD Operations

http://mozzoerp.com/
I built a JavaScript library that extends JavaScript DataTables.net for implementing CRUD operations inline on .NET Core. It saves and updates with no need to reload the table or refresh the page. It also supports text fields, dropdowns, checkboxes, and reuses jQuery validation using the data annotations from underlying objects.

Mozzo Projects | Table-per-type Inheritance Implementation

http://mozzoerp.com/
I sponsored and implemented using table-per-type inheritance in Entity Framework which maps to different tables in SQL server, and actual inheritance in generated entities (using database first approach).

This approach was used for three groups of entities, ten entities in total, and using two levels on one of them. This resulted in much cleaner entities and database and simpler code. It also allowed code generalization for manipulating said entities, taking the object-oriented approach all the way.

Mozzo Projects | Database Resource Provider

http://mozzoerp.com/
I implemented a database resource provider to provide customizable and translatable terms from the database (i.e., some clients use the term "item" for inventory while others use "material"). Usage is very similar to .NET's built-in resources (RESX) files, in that terms can be read simply from a class's property, both in Razor markup and C#.

It even works with data annotations so that it's picked up by HTML EditorFor and validation error messages. This core concept is expanded (first to store in the database instead of fixed files) and also adding additional lookup terms (i.e., client, location), so that terms can be customized for a client's specific needs, and falling to a broader term if a specific one isn't found.

Everything is also cached and searched in memory using a binary search, resulting in an optimal performance but also flexible enough for changing terms on the fly without needing a restart.

E-Land

This is the final product of a project that I mentioned in my employment section (SouthApps).

E-Land is a web-based enterprise resource planning application for farming sites. We designed it to be the central point of information for a large industrialized farm. High-ranking users rely on the app to query various statuses of different elements and get reports, while lower-ranking users use the mobile app to track their daily tasks, report issues, and add vital data.

We used ASP.NET MVC4, HTML5, CSS3, and various jQuery plugins and extensions, data tables, unobtrusive validation, Google maps, and plenty of Ajax. This made it easy to use, blazing-fast, and available everywhere.

Commercial presentation page: E-land.es/en

Demo page:
app.eland.es/demo
user: andrew
pass: 123456

Please use with care as it is used frequently to demo features.

The City

This is the back-end system for a tourist information mobile app. It's built on PHP, AngularJS, and uses Angular Material Design.

On the front-end code, I experimented with an extension between controllers, so even though some of the screens are similar the code is very compact and there is little code duplication.

I also implemented a few directives to reuse components; for example, the categories selector checkboxes and the map pin selector.

User: admin
Password: gto9Q1wjs6

LinkedIn Recommendations

I'm proud of what my colleagues and clients have to say about working with me. Here's a selection:

"I've known Miguel since grade school, and had no hesitations choosing him to lead development of our back-end at Owzom. He did not disappoint. He's an excellent Software Engineer, writes solid code, and cares about implementing the right solution at all times. He has great communication and is super reliable, balancing development and operations with a sensible eye for the product. I'll be looking forward to working with him again in the future."
- Joaquin Estrago (Lead Software Engineer at Redemption Games)

"I met Miguel while doing several interviews with one of our customers to get a new Sr Developer. All of our candidates were having problems until Miguel finally made the cut after several interviews were he had to answer questions ranging from UML to multi-threading on one to one video conferences with our customer.

He showed to be a very resourceful guy who not only knew about the .Net platform but also had ideas that hinted about his solid underlying knowledge of how things work [...] allowing him to present several viable solutions and choose sensibly."
- Federico Delgado (Senior Software Engineer at OpenX)

Tcp Connector

This is one of the components that I built for the transaction processor. The main class is TcpListenerConnector, which waits for incoming connections of remote entities. Once a connection is made, it receives messages, parses its content, and moves it to the next component down the line. It also has a pluggable parser whose function is to determine where one message ends and the next one begins.

Stack Overflow Profile

http://stackoverflow.com/users/1574861/miguel-hughes
I believe Stack Overflow is an excellent resource for developers and I try to contribute whenever I get the opportunity.

Languages

C#.NET, JavaScript, PHP, HTML, SQL, C#, CSS3, CSS, ECMAScript (ES6), JavaScript 6, T-SQL (Transact-SQL), HTML5, UML

Frameworks

ASP.NET MVC, ASP.NET, .NET, .NET Core, ASP.NET Web API, Bootstrap, AngularJS, ASP.NET Core, Entity Framework Core, NUnit, Photon, ASP.NET MVC 4, Razor, ASP.NET Web Forms, Kendo UI, Classic ASP, Unity3D

Libraries/APIs

Sockets, React, Entity Framework, REST APIs, Google Maps API, jQuery, AutoMapper, Log4Net, Web API, jQuery DataTables, EasyPost, LINQ, Photon Server, Google Analytics API, Google Vision API

Tools

Visual Studio, Microsoft Visual Studio, Postman, Git, Google Analytics, Sublime Text, SmartGit, Hangfire, Azure Application Insights

Other

APIs, Transmission Control Protocol (TCP), Multithreading, IIS, Azure WebJobs, Web Services, Ajax, Unit of Work Pattern, Leadership, Performance, Server Administration, Development

Paradigms

Responsive, Responsive Layout, RESTful Development, Scrum, Agile, Agile Software Development, Test-driven Development (TDD), REST

Platforms

Joomla, Amazon EC2, Amazon Web Services (AWS), Blockchain, Azure, Windows

Storage

Microsoft SQL Server, MySQL, Web Forms, Azure Blobs

2000 - 2006

Engineer's Degree in Information Systems (Computer Engineering)

Universidad Tecnológica Nacional - Buenos Aires, Argentina

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