Marco Martins Castanho, Developer in Lisbon, Portugal
Marco is available for hire
Hire Marco

Marco Martins Castanho

Verified Expert  in Engineering

Scrum Master and Software Developer

Lisbon, Portugal
Toptal Member Since
June 11, 2021

Marco is a software engineer with six years of experience in IT, focusing on both back-end and front-end development. After graduating with an MSc in electrical engineering and computer science, he worked as an IT consultant in Lisbon, Portugal. He accepted the challenge of moving abroad to France to gather experience working in international contexts. Since then, Marco has worked as a software engineer, technical lead, and scrum master on various projects.


The New York Academy of Sciences
Python, Django, React, Back-end, Front-end, JavaScript, TypeScript...
Nova Technology Canada Inc.
Technical Leadership, React, Amazon Web Services (AWS), Django, Python, Fintech...
Agile, Git, JavaScript, TypeScript, Node.js, NestJS, React, SQLite, NATS...




Preferred Environment

Node.js, Python, TypeScript, React, Django, NestJS

The most amazing...

...thing I've developed was an Android app to distribute players in order to balance teams when playing soccer with friends.

Work Experience

Lead Engineer (via Toptal)

2021 - PRESENT
The New York Academy of Sciences
  • Fixed pre-existing issues that were causing malfunction of core features, bringing the innovation and collaboration platform to a stable status.
  • Upgraded the main frameworks using Django and React and the Python language to modern versions. Upgraded many of the project's dependencies and libraries to current versions or replaced them with alternatives.
  • Migrated the extended JavaScript front-end code to smaller and modular TypeScript components, with stricter type and data validations for cleaner and more error-proof code. Enabled linting for code quality automated validations.
  • Refactored the front-end code generally by modernizing it to the current best practice standards, cleaning previously poorly maintained legacy code, organizing the file structure, and creating modular, reusable functional components.
  • Improved back-end test coverage considerably by implementing a large set of tests to the REST endpoints of the project's main features. Also added an automatic test coverage report to keep track of the coverage percentage and covered code.
  • Redesigned a few front-end pages and reusable UI components, improving the UI and UX. Re-implemented the application's internal messaging feature and designed the new UI and UX.
  • Improved the security of the REST APIs for data access in the back end by setting authentication, endpoint, and object-specific permission rules.
  • Implemented new automated background tasks to help the program administrators manage users, send bulk emails to target users, and generate usage reports.
  • Added functionalities to the project's main feature—Team Projects—such as setting milestones, inviting others to join the team, and changing the team leader. Fixed or implemented automatic validation and enforcement of business rules.
  • Investigated, fixed, tested, and deployed solutions to issues. Helped the program managers identify points of improvement. Designed and implemented solutions from a technical, functional, UI, and UX standpoint.
Technologies: Python, Django, React, Back-end, Front-end, JavaScript, TypeScript, Django REST Framework, REST APIs, Web Development, CSS, SCSS, HTML, Scripting, Celery, Full-stack, MySQL, Unit Testing, Front-end Development, Ansible, Amazon Web Services (AWS), Node.js, React Router, React Navigation, Sentry, Full-stack Development, Django ORM, Object-relational Mapping (ORM)

Tech Lead

2023 - 2023
Nova Technology Canada Inc.
  • Designed a solution architecture based on the client's requirements.
  • Estimated the effort to implement the designed solution.
  • Implemented features on both the back and front ends.
  • Interviewed and hired the people who would be the technical team members.
  • Implemented the base skeleton for the Django back end.
Technologies: Technical Leadership, React, Amazon Web Services (AWS), Django, Python, Fintech, Full-stack, TypeScript, React Redux, Node.js, Software Architecture, Business Analysis, Technical Requirements, Team Leadership, Remote Team Leadership, Cross-functional Team Leadership, Full-stack Development, Django ORM

Technical Lead and Scrum Master

2021 - 2021
  • Developed an application for a client's project that allows maintenance operators to configure and maintain electrical closets.
  • Implemented the back end that interacted with the system to get data from the electrical system and applied the changes.
  • Assisted in implementing the web application the operators use to interact with the system.
  • Collaborated with the client, a European multinational company providing energy and digital automation solutions for efficiency and sustainability.
Technologies: Agile, Git, JavaScript, TypeScript, Node.js, NestJS, React, SQLite, NATS, Protobuf, JSON Web Tokens (JWT), REST, Jest, GitLab, GitLab CI/CD, SQL, WebSockets, Back-end, APIs, Unit Testing, RPC, gRPC, Front-end, Front-end Development, Technical Leadership, TypeORM, Full-stack, Team Leadership, Object-relational Mapping (ORM)

Technical Lead

2020 - 2021
  • Managed the handover of a client's web application maintenance project from the previous contracting company.
  • Tracked and fixed bugs on the Python back end and the Angular front end.
  • Studied solutions and sized the cost of improvements in the project requested by the client.
  • Trained new trainees to understand the project and implement requested changes fully.
  • Worked with the client, a French global sporting goods retailer.
Technologies: Python, Google Cloud Platform (GCP), Python 2, Shell, Bash, Bash Script, Bower, Google Cloud, Git, Back-end, Front-end, Angular, Front-end Development, Technical Leadership

Software Engineer

2020 - 2020
  • Developed a mobile application for money transactions.
  • Implemented new screens for the application, both user interface and functionalities.
  • Proposed improvements on both UI and UX to the design team.
Technologies: React Native, Node.js, TypeScript, JavaScript, Git, GitLab, REST, Mobile, Mobile Development, Cross-platform, Digital Payments, Mobile Banking

Software Engineer

2020 - 2020
  • Developed a Node.js application for internal use of the company to help project managers manage clients' projects.
  • Implemented new features on the NestJS back end to plot a project's burndown chart.
  • Improved the project's unit test coverage by writing unit tests for new and existing features.
Technologies: TypeScript, JavaScript, Node.js, NestJS, MongoDB, Jest, REST, REST APIs, Jira, Jira REST API, Git, GitLab, NoSQL, Back-end, Docker, Docker Compose, APIs, Unit Testing, Architecture, Express.js, MERN Stack

Technical Lead

2020 - 2020
  • Studied the request for proposals from a potential client to apply for a client project regarding automation of login in multiple applications running in cars infotainment systems.
  • Studied possible solutions to implement the automated login in Android systems.
  • Wrote a report detailing the technical solution presented to the potential client as part of the technical and financial proposition.
  • Worked with the client, a French global automotive supplier of car audio, automotive navigation systems, and visual and communication equipment.
Technologies: Android, Web Security

Software Engineer

2018 - 2020
  • Maintained an application's back-end nodes in Python and C++ to book train tickets in multiple providers.
  • Implemented new back-end nodes in Python for storing data in MongoDB and made them accessible through a REST API.
  • Performed a functional and technical analysis of new features to be implemented in the Python back ends.
Technologies: Agile, Scrum, Python, REST, SQL, MongoDB, JSON, Test-driven Development (TDD), C++, Git, Jira, Confluence, Bitbucket, Bash Script, NoSQL, Python 2, Python 3, Back-end, Flask, REST APIs, Python API, SOAP, XML, Unit Testing, Architecture, JavaScript, Technical Leadership, Testing

Test Automation Engineer

2016 - 2018
  • Implemented scripts to automate the Session Initiation Protocol (SIP) application server testing, focusing on load testing.
  • Executed performance tests on the SIP server and wrote performance test reports.
  • Maintained the testing environments for automated and functional testing teams, such as managing the state of environments, installing and migrating new releases, and managing database seeding.
  • Created tools to help the functional testing team automate configuration processes.
Technologies: C++, Microsoft SQL Server, Java, Session Initiation Protocol (SIP), Python, Ruby, Git, Shell, Bash, Bash Script, SQL, Python 3, PostgreSQL, Scraping, Testing, Selenium

Junior Developer

2015 - 2016
  • Maintained a web portal that allows users to configure their preferences for using an enterprise phone system.
  • Maintained SOAP and REST services on an Oracle Service Bus—services consumed by the web portal.
  • Implemented a REST API in Java and migrated the services from OSB to this new server.
Technologies: JavaScript, SOAP, REST, Oracle Service Bus (OSB), Java, REST APIs, Git, GitLab, Back-end, Front-end

Junior Developer

2014 - 2015
  • Implemented a new feature on a C++ SIP application server that manages the establishment of phone calls, which impacted many other features.
  • Tracked, analyzed, and fixed issues using HP Quality Center and Application Lifecycle Management (ALM) tool.
  • Implemented scripts to help in the testing of new features or bug fixes.
Technologies: C++, PostgreSQL, Session Initiation Protocol (SIP), Boost, Shell, Bash, Bash Script, Back-end

Smarteam: An App to Manage Sports Games with Friends
An Android application for managing sports games with friends, keeping track of results, and obtaining a balanced distribution of teams. My idea was based on the need to have balanced teams when I played soccer regularly with friends. I developed the application while learning Android.

Cooking Recipes Manager
A React-based web application that allows storing, managing, viewing, and printing recipes. This training project uses Firebase back end with a React/TypeScript front end. I developed the entire React application.
The project is ongoing.

Twitter Image Scraper
This project consists of three parts:
• a Google Chrome extension that scrapes images from an open Twitter tab and saves them to a gallery.
• a Django back-end that manages the image gallery.
• a React front-end that displays the image gallery.

It was developed as a way to practice and learn a set of useful skills.

CREUA Movie Sessions
A React web app to randomly select a movie director from a list and present their filmography. The list is maintained in a Google spreadsheet read by the application through Google API. The app also stores the record of selected movie directors on Firebase to prevent the same director from being selected twice in a row.

Built a Next.js web application integrating OpenAI API to generate cooking recipes using artificial intelligence. Also, I implemented user authentication to enable users to save recipes in their profiles.
2007 - 2014

Master's Degree in Electrical Engineering

Instituto Superior Técnico - Lisbon, Portugal


GraphQL by Example



NextJS & OpenAI - 2024 Edition



Build a Back-end REST API with Python and Django | Advanced



Django 3 | Full-stack Websites with Python Web Development



The Complete 2020 Flutter Development Bootcamp with Dart



The Complete Android Oreo Developer Course



The Complete Regular Expressions Course For Beginners



Professional Scrum Master I


Business Analysis Fundamentals



Complete Python Bootcamp: Go From Zero to Hero in Python 3



Git and Bitbucket



REST APIs, Node.js, React, Protobuf, Jira REST API, Python API, React Redux, Redux-Saga, React Router, React Navigation, React Query, Django ORM


Git, Jira, GitLab, Bitbucket, Shell, GitLab CI/CD, Confluence, Bower, Docker Compose, Celery, Ansible, Sentry, Prisma, ChatGPT


Python, TypeScript, Python 3, SQL, JavaScript, HTML, C, Java, C++, Ruby, Dart, Regex, Bash, Bash Script, Python 2, XML, CSS, SCSS, GraphQL, Sass


JSON, SQLite, PostgreSQL, MongoDB, NoSQL, Microsoft SQL Server, Google Cloud, MySQL


REST, Scrum, Test-driven Development (TDD), RESTful Development, Agile, Design Patterns, Microservices, Unit Testing, Mobile Development, Cross-platform, Testing, Object-relational Mapping (ORM)


Visual Studio Code (VS Code), Android, Google Cloud Platform (GCP), Firebase, Windows, Mobile, Docker, MacOS, Unix, Netlify, Amazon Web Services (AWS), Vercel


NestJS, JSON Web Tokens (JWT), Django, Django REST Framework, Express.js, Jest, React Native, Flutter, Bootstrap, Boost, Flask, gRPC, Redux, Chrome, Angular, Next.js, Tailwind CSS, Selenium


Back-end, Scrum Master, Front-end, Front-end Development, Session Initiation Protocol (SIP), SOAP, Oracle Service Bus (OSB), NATS, IT Business Analysis, Business Analysis, RESTful Microservices, Web Security, WebSockets, APIs, Web Development, Scripting, Full-stack, Architecture, RPC, Chrome Extensions, Web Scraping, Technical Leadership, Native Mobile Apps, Mobile App Development, Fintech, Software Architecture, Technical Requirements, TypeORM, Digital Payments, Mobile Banking, OpenAI, MERN Stack, Scraping, GraphQL Code Generator, Apollo, Apollo Server, Team Leadership, Remote Team Leadership, Cross-functional Team Leadership, Full-stack Development

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