Marc Puig, Developer in Barcelona, Spain
Marc is available for hire
Hire Marc

Marc Puig

Verified Expert  in Engineering

Python Developer

Barcelona, Spain
Toptal Member Since
July 1, 2020

Marc is a product-oriented software engineer/architect and entrepreneur who loves to own features from conception to delivery and build systems from front end to back end. He has over 15 years of experience building and leading multiple engineering teams on different startups. Marc is also passionate about developing, motivating, mentoring, and coaching engineers and managers.


Swoop Funding
Jira, Git, SQLAlchemy, PostgreSQL, Python 3, Python, Functional Testing...
Jira, Google Cloud Datastore, Google Cloud, Git, Stripe API, Stripe, Shopify...
Git, GIS, Digital Elevation Models, Satellite Images, Stripe API, Stripe...




Preferred Environment

Python 3, Python, Slack, GitHub, PyCharm, Terminal, MacOS

The most amazing...

...project I have developed is a weather forecast system, on top of Google Maps, based on NOAA GRIB files, which was able to return the following 15-day forecast.

Work Experience

Senior Software Engineer

2020 - 2020
Swoop Funding
  • Developed a robust and high-performance API in Python, based on fastAPI framework, running on Google Cloud Platform (GCP).
  • Defined and implemented database migrations in such a way that a rolling upgrade may be accomplished within the confines of a single release.
  • Implemented the GitHub actions workflow for CI/CD using Docker, unit testing, functional testing, and integration testing.
Technologies: Jira, Git, SQLAlchemy, PostgreSQL, Python 3, Python, Functional Testing, Test-driven Development (TDD), API Integration, FastAPI, Google Cloud Platform (GCP), APIs, API Development, Unit Testing, Integration Testing, E2E Testing, Docker


2020 - 2020
  • Planned, supervised, and coordinated the product and development teams.
  • Supported the CEO on the operations and business strategy by defining a consistent product roadmap.
  • Designed and managed the implementation of features, speeding up the average time taken to prepare a new demo from two days to less than two hours.
Technologies: Jira, Google Cloud Datastore, Google Cloud, Git, Stripe API, Stripe, Shopify, Cloud Firestore, Docker, JavaScript, Amazon Web Services (AWS), MySQL, MongoDB, PHP 7, AngularJS


2019 - 2020
  • Developed the pipeline to create a 3D mesh for a given geographical area, given a GPS track, obtaining elevations from DEM files, and rendering using Three.js.
  • Implemented the merge of the 3D relief mesh with satellite imagery to create a realistic 3D view of the mountains, showing also the route in 3D.
  • Integrated the Stripe payments to purchase the subscription.
Technologies: Git, GIS, Digital Elevation Models, Satellite Images, Stripe API, Stripe, PostgreSQL, Full-stack, Python 3, Python, PostGIS, 3D Maps, React, Three.js, Django

Lead Developer at Habeats

2019 - 2020
  • Led the development team for an EU-funded digital therapeutic project called Live Incite.
  • Managed development processes based on Agile Methodology, which led to us successfully passing different elimination phases and delivering on the expected date.
  • Implemented the back and front ends based on domain-driven design. For the back end, we implemented a REST API using Python and Flask and the front end in React, TypeScript, and React Native with a testing coverage of above 90%.
  • Managed the collaboration with an external data science group from a university, with weekly periodic meetings.
  • Implemented an automatic CI/CD build process using AWS CodePipeline.
Technologies: Git, PostgreSQL, Full-stack, Python 3, Python, Integration Testing, E2E Testing, Unit Testing, Domain-driven Design (DDD), Continuous Integration (CI), Continuous Delivery (CD), AWS CodeDeploy, AWS CodeBuild, SQLite, API Development, APIs, CQRS, AWS CodePipeline, Amazon Web Services (AWS), TypeScript, React Native, React, Flask

CTO | Lead Developer

2015 - 2019
  • Led the development of Citibeats, a text analytics platform based on NLP and ML, from its inception (2016) to the first real customers like FSD (Kenya), NTTData (Japan), and different government organizations (UK and Spain).
  • Introduced Scrum in different teams, which improved overall productivity.
  • Coordinated different teams including software engineering, infrastructure, and data science to achieve a robust and useful product.
  • Managed the collaboration with the CSIC AI Research team (the Spanish National Research Council) for more than one year and a half, obtaining a core IP for the company.
  • Developed a pipeline to gather text from external sources, using social network APIs or scraping websites.
Technologies: Jupyter, NumPy, Pandas, Agile, Git, GIS, PostgreSQL, Full-stack, Python, Jupyter Notebook, Stanford NLP, SpaCy, Web Scraping, Scraping, Twitter API, Data Science, Continuous Integration (CI), Continuous Delivery (CD), Jenkins, Redis, APIs, Amazon Web Services (AWS), Docker, Angular, Django, Text Analytics, Artificial Intelligence (AI), Graphs, Generative Pre-trained Transformers (GPT), Natural Language Processing (NLP), GPT

CTO | Lead Developer

2014 - 2015
  • Led product engineering and infrastructure towards big data, creating the product from scratch and transforming it into a commercial version in less than six months.
  • Developed a real-time trigger system based on a user's location. Our back-end system based on Node.js and Elasticsearch was able to ingest thousands of inputs per second from wifi routers via our private API.
  • Created unique experiences for visitors based on aggregated data analysis while managing databases with more than 1 billion registers. Mobile apps were updated, in real-time, using WebSockets and MQTT, from our back-end system.
Technologies: Git, GIS, Full-stack, Python, API Integration, Location Tracking, Location Services, Bluetooth, API Development, APIs, REST APIs, Fluentd, Elasticsearch, MongoDB, MQTT, Node-RED, Node.js

CTO | Lead Developer

2013 - 2015
  • Implemented the whole pipeline to create offline guides by converting the previous manual and tedious process to an automated one, using Python. The process to create an offline guide was significantly shortened from two weeks to two days.
  • Designed and implemented the TrackBook bundle system by packaging all the needed information to navigate and discover routes using mobile in an offline mode, using Python.
  • Managed the outsourced web and mobile app development teams.
Technologies: GIS, Digital Elevation Models, Satellite Images, PostgreSQL, Python, WebSockets, Location Services, OpenStreetMap, GDAL/OGR, GDAL, Mapnik, PostGIS, PHP, Django

Founder | CTO

2008 - 2013
  • Designed and implemented the pipeline to integrate nautic charts from different sources (NOAA, British Admiralty, New Zealand) and achieved worldwide coverage that could be used in offline mode.
  • Designed and implemented the architecture of the whole platform, from systems in AWS and back-end servers to API and front ends (web and mobile), based on Python and Django.
  • Developed a weather forecasting system using NOAA data. Every day the system creates a 15-day weather forecast ready to be downloaded in the BlooSee app and also ready to be used in an offline mode, at the same time with the nautical charts.
Technologies: GIS, Digital Elevation Models, Satellite Images, PostgreSQL, Full-stack, Python, Web Scraping, Amazon Web Services (AWS), Objective-C, GDAL/OGR, GDAL, PostGIS, Django


2006 - 2009
  • Developed the first search engine in Spain (2006) based mainly on geographical search on top of maps and geographical concepts.
  • Served more than 5,000 recurrent customers in Spain (~70% of the Spanish rural lodges at that time).
  • Delivered the product in less than two months from the initial idea to the first customer, thanks to Django and PostGIS.
Technologies: GIS, Web Scraping, Location Services, Google Maps API, Symfony, PHP


2001 - 2004
Visual Century Research
  • Developed state-of-the-art algorithms to classify analogic video automatically.
  • Created a windows platform for broadcast companies to manage the digital assets, with a full-text search based on extracted data.
  • Implemented several plugins to analyze video: OCR, speech-to-text, face identification, advertisement detection, etc.
Technologies: Microsoft Visual C++, C++, Video Editing, Video Analysis, Image Processing, Computer Vision, Active Server Pages (ASP)

SpaCy Lookup Plugin

SpaCy is a free, open-source library for advanced natural language processing (NLP) in Python. SpaCy is designed specifically for production use and helps to build applications that process and “understand” large volumes of text. It can be used to build information extraction or natural language understanding systems or to pre-process text for deep learning.
The SpaCy Lookup plugin is an extension and pipeline component for SpaCy and it works as a powerful entity matcher for very large dictionaries, using the FlashText module. The NER extraction done by SpaCy is based on machine learning models, but sometimes the projects need to work on concrete and well-defined, dictionaries. If those dictionaries are small, the default matching engine that SpaCy provides is pretty good, but if the dictionary has millions of words, then it takes too long. And here is where the Lookup plugin can be the difference. The plugin uses a text-matching algorithm based on FlashText ( to look up in the data provided by different dictionaries at a blazing speed.


Python, Python 3, TypeScript, JavaScript, Clojure, Active Server Pages (ASP), C++, PHP 7, PHP, Objective-C, TypeScript 3


Django, Flask, React Native, AngularJS, Angular, Symfony


API Development, Twitter API, REST APIs, Google Maps API, React, SpaCy, Node.js, GDAL, GDAL/OGR, SQLAlchemy, Pandas, NumPy, Stanford NLP, Three.js, Stripe API, Stripe, Vue


PyCharm, Terminal, GitHub, Jupyter, WebStorm, Postman, Slack, AWS CodeBuild, AWS CodeDeploy, GIS, Git, Terraform, Microsoft Visual C++, Jenkins, Node-RED, MQTT, Fluentd, Jira


MacOS, Jupyter Notebook, Google Cloud Platform (GCP), Docker, Amazon Web Services (AWS), Kubernetes, Shopify, Azure


FastAPI, API Integration, Text Analytics, Web Scraping, APIs, Natural Language Processing (NLP), Domain-driven Design (DDD), Scraping, WebSockets, Integration Testing, Full-stack, Computer Vision, Image Processing, AWS CodePipeline, Graphs, Artificial Intelligence (AI), Digital Elevation Models, OpenStreetMap, GPT, Generative Pre-trained Transformers (GPT), Machine Learning, Email, Video Analysis, Video Editing, Bluetooth, Location Services, Location Tracking, Mapnik, 3D Maps, Satellite Images


Test-driven Development (TDD), Unit Testing, Functional Testing, CQRS, Continuous Delivery (CD), Continuous Integration (CI), Data Science, E2E Testing, Agile


PostgreSQL, PostGIS, Elasticsearch, MySQL, SQLite, Redis, Cloud Firestore, MongoDB, Google Cloud, Google Cloud Datastore

2018 - 2018

Nanodegree in Natural Language Processing

Udacity - Online

2016 - 2017

Nanodegree in Self-driving Car

Udacity - Online

1993 - 2000

BSc and MSc Dual Degree in Computer Science Engineering

Universitat Autònoma de Barcelona - Barcelona, Spain


Google Cloud Platform: Securing and Integrating Components of your Application



Google Cloud Platform: App Deployment, Debugging, and Performance



Google Cloud Platform — Fundamentals: Core Infrastructure



Developing Applications with Google Cloud Platform Specialization



Machine Learning


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.


Share your needs

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

Choose your talent

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

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