Bernardo Amorim, Software Developer in Porto, Portugal
Bernardo Amorim

Software Developer in Porto, Portugal

Member since April 1, 2016
Bernardo started developing when he was a teen. His first amazing job was being the CTO of Responde AĆ­, an education startup. He learned a lot about building and maintaining software while taking ongoing client requests. Later, he built a banking system from scratch at Stone while leading teams, making key architectural decisions, and representing the company in the Brazilian and global Elixir communities.
Bernardo is now available for hire

Portfolio

  • SaltPay
    TypeScript, React, Elixir, Go, Terraform, Argo CD, Tekton CI, Tilt...
  • Toptal
    Ruby, Ruby on Rails (RoR), TypeScript, React, SQL, HTML
  • Stone Pagamentos SA
    PostgreSQL, Docker, Kubernetes, Apache Kafka, React, Elm, Elixir, SQL, HTML...

Experience

Location

Porto, Portugal

Availability

Part-time

Preferred Environment

Zsh, Git, Visual Studio Code

The most amazing...

...thing I've done was build an entire banking system from scratch.

Employment

  • Principal Software Engineer

    2021 - 2022
    SaltPay
    • Assembled and led the Merchant Portal team. Mentored junior and mid-level engineers while teaching them good engineering practices. Focused on code quality and introduced agile practices.
    • Assembled and led the Salt ID team. Developed an in-house Identity Provider for enabling SSO across multiple apps across multiple companies. Used mainly Elixir and TypeScript for the front end.
    • Implemented features in the in-house Terraform HCL generation CLI written in Go. Used these features for Tekton's CI pipelines to provision infrastructure for applications.
    • Created the Elixir Guild to foster Elixir usage across the company while maintaining shared projects, like custom Tekton CI tasks and images, shared libraries for structured logging, metrics, tracing, etc.
    • Conducted workshops for about 200 engineers on setting up productive local Kubernetes environments with Kind and Tilt and good observability practices, specifically structured logging and metrics with Prometheus.
    Technologies: TypeScript, React, Elixir, Go, Terraform, Argo CD, Tekton CI, Tilt, Kubernetes, Prometheus, Grafana, OpenTelemetry, SQL, HTML, Distributed Architecture, Microservices
  • Senior Software Engineer

    2020 - 2021
    Toptal
    • Worked on the Matching team on a full-stack Ruby on Rails application.
    • Worked on the Client Portal on GraphQL APIs in Ruby and a TypeScript React application.
    • Contributed to an open source GitHub Codeowner linter written in Ruby.
    Technologies: Ruby, Ruby on Rails (RoR), TypeScript, React, SQL, HTML
  • Software Engineer

    2017 - 2019
    Stone Pagamentos SA
    • Developed a double-entry accounting ledger as the center of our financial operations.
    • Built our transactional system using event-driven communication through Kafka and implemented a Saga pattern to roll back failed transfers.
    • Constructed a custom-tailored API gateway using Elixir.
    • Created an internal admin using react-admin and some JSON APIs.
    • Built an open-source data definition and validation library to handle our validation needs.
    • Developed CQRS/ES systems using Commanded, an Elixir framework.
    • Worked on our internet banking app written in Elm.
    • Made a Bitcoin payment processing system in Node.js from scratch to integrate with Mundipagg.
    Technologies: PostgreSQL, Docker, Kubernetes, Apache Kafka, React, Elm, Elixir, SQL, HTML, Event-driven Architecture, Distributed Architecture, Microservices
  • Front-end Developer

    2016 - 2017
    Bractlet
    • Built a new data-visualization tool in Elm, migrating existing functionality from a legacy one written in React.
    • Maintained existing React components for data visualization tools.
    • Collaborated on reviewing back-end code written in Ruby, Haskell, and other languages.
    Technologies: HTML, CSS, JavaScript, Data Visualization, D3.js, C3.js, Elm, React
  • CTO

    2012 - 2014
    Respondeai.com.br
    • Fostered and maintained numerous customer relationships for a significant amount of time and developed the product.
    • Implemented a Word document to HTML and MathML converter. The first one was in C# and ran our own machines. The second one was in Ruby and ran on the server Github.com/bamorim/doctor_ninja.
    • Created a WYSIWYG HTML and math editor prototype to mimic Word's math editing capabilities.
    • Implemented a fully responsive front-end so customers could study anywhere.
    • Integrated the platform with Zendesk for reporting content errors.
    • Implemented a subscription managing system using only a payment gateway.
    • Split the application into two apps: one for creating the content and managing it and the other for users to consume the content. Gained experience with Docker and AWS OpsWorks.
    Technologies: Amazon Web Services (AWS), AWS OpsWorks, Amazon EC2 (Amazon Elastic Compute Cloud), AWS, Amazon DynamoDB, Amazon S3 (AWS S3), NGINX, Docker, Capistrano, New Relic, Google Analytics, Mixpanel, React, JavaScript, C#, PostgreSQL, Ruby on Rails (RoR), Ruby, SQL, HTML

Experience

  • Netmosa
    https://bamorim.github.io/netmosa

    This started as one of my contributions to the research for "Growing Networks with Random Walks Without Restarts" to give us some visual and intuitive feedback on how the model worked.

    The idea has impressed people at CompleNet 2016, so I made my graduation project on top of that.

    Netmosa allows users to code their models using embedded Lua and Fengari (Fengari.io). The app was built using React with TypeScript, and you can check the source code at the GitHub page (Github.com/bamorim/netmosa).

  • Exchema
    https://github.com/bamorim/exchema

    Exchema is a library used to define, validate and coerce data. It allows you to check the type for a given value at runtime.

    It uses the idea of refinement types, in which we have a global type to which all values belong and can refine that type with the use of predicates.

  • Doctor Ninja
    https://github.com/bamorim/doctor_ninja

    A library in Ruby that converts MS Word's DocX files into HTML. However, to maintain the math without rasterization, we converted it to MathML, a W3C standard. This was used at Responde Ai to enable "experts" to create content using the tools they already knew, like MS Word, while ensuring a good, consistent, mobile-friendly experience for the end-user.

  • Growing Network Simulator
    https://github.com/bamorim/random_walk_generator

    A C++ simulator for "Growing Graphs Through Random Walks Without Restarts" was built for my research at LAND UFRJ (research lab). This was used to simulate network growth models, and we ran that on the lab cluster.

Skills

  • Languages

    Ruby, JavaScript, Elixir, TypeScript, SQL, HTML, Elm, C++, Go, Lua, MathML, CSS
  • Frameworks

    Phoenix, Ruby on Rails (RoR)
  • Libraries/APIs

    React, D3.js, C3.js
  • Tools

    Git, Vim Text Editor, Zsh, Google Analytics, Capistrano, NGINX, AWS OpsWorks, Terraform, Grafana
  • Paradigms

    Event-driven Architecture, Microservices
  • Platforms

    Docker, Mixpanel, New Relic, Apache Kafka, Amazon EC2 (Amazon Elastic Compute Cloud), Amazon Web Services (AWS), Kubernetes, Visual Studio Code
  • Storage

    PostgreSQL, Amazon DynamoDB, Amazon S3 (AWS S3)
  • Other

    Distributed Architecture, AWS, Argo CD, Tekton CI, Tilt, Prometheus, OpenTelemetry, Graphs, Network Science, Computer Science, Calculus, Physics, Statistics, Networks, Algorithms, Software Engineering, Machine Learning, Data Visualization

Education

  • Bachelor's Degree in Computer Engineering
    2014 - 2020
    Federal University of Rio de Janeiro - Rio de Janeiro, Brazil

To view more profiles

Join Toptal
Share it with others