Pere Casafont, Developer in Reus, Spain
Pere is available for hire
Hire Pere

Pere Casafont

Verified Expert  in Engineering

Java Developer

Location
Reus, Spain
Toptal Member Since
May 6, 2015

Pere is a software architect with over a decade of experience working on JVM-based back-end products ranging from custom binary protocols to REST APIs on Ktor. He has a remarkable ability to work on and get the best out of any kind of project. Once Pere is in a team, they will gradually notice an increase in that team's cohesion and performance, no matter his position in it. He is very communicative, proactive, and committed to the projects he works on.

Portfolio

VeriBlock
Java, Kotlin, TeamCity, YouTrack, Ktor, KOIN, SQLite, PostgreSQL, Git...
EMME
YouTrack, TeamCity, Kotlin, Ktor, KOIN, Exchange API, APIs, WebSockets, Sockets...
Docpaid
Groovy, Kotlin, Architecture, Back-end, REST APIs, Back-end Development...

Experience

Availability

Part-time

Preferred Environment

Git, JetBrains, Kotlin, Windows, IntelliJ IDEA

The most amazing...

...thing I've coded is a technical demo creating thousands of particles around a given 3D animated model's surface with flocking behavior.

Work Experience

Tech Lead

2019 - PRESENT
VeriBlock
  • Maintained and developed the node core of a unique blockchain.
  • Implemented the Altchain PoP miner, which connects to both VeriBlock nodes and Altchain nodes and mines the altcoins using VeriBlock's Proof of Proof consensus.
  • Refactored the peer-to-peer communication module of the blockchain nodes to use Ktor sockets and coroutine-based events.
  • Developed a DSL library that enabled developers to create CLIs very easily.
  • Led the initiative to migrate the company's project management from Jira to YouTrack with very positive results.
  • Created a PoP mining back end that enabled Bitcoin wallets to earn VeriBlock coins when making transactions (PoP subsidies).
  • Built a company-wide CI/CD DSL (TeamCity + Kotlin) project that automatically created all build configurations for all repositories.
  • Fixed a product that kept having severe issues by completely refactoring it. That also sped up the addition of new features and prevented many future potential problems.
  • Created BFI, a back end that would query all blockchains (Bitcoin, VeriBlock, Altchains) via direct connection to their nodes that would scan every transaction to find Proof of Proof endorsements and re-build the blockchains based on them.
  • Built and led several other full-stack products from start to finish.
Technologies: Java, Kotlin, TeamCity, YouTrack, Ktor, KOIN, SQLite, PostgreSQL, Git, Blockchain, APIs, Architecture, WebSockets, Sockets, Back-end, Node.js, TypeScript, REST APIs, Back-end Development, Leadership, Full-stack, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, Scrum, Linux, Network Programming, Client-server Model, Parsers, Gradle, Multithreading, Concurrent Programming, Reactive Programming, CentOS, SSL, Minimum Viable Product (MVP), MVP Design, API Integration, Databases, gRPC, REST, Protobuf, Crypto, Desktop App Development

Tech Lead and Product Owner

2021 - 2022
EMME
  • Designed the back-end architecture using microservices with a central coordinator service.
  • Created an exchange trading bot controlled by the coordinator with cryptography-provable instructions linked to the blockchain.
  • Built a very easily maintainable CI/CD framework for the full stack with TeamCity's Kotlin DSL.
  • Managed and supported the front-end team (both design and implementation).
Technologies: YouTrack, TeamCity, Kotlin, Ktor, KOIN, Exchange API, APIs, WebSockets, Sockets, PostgreSQL, Architecture, Docker, Docker Compose, RabbitMQ, Prometheus, Grafana, Back-end, Node.js, TypeScript, REST APIs, Back-end Development, Leadership, Full-stack, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, Redis, Scrum, Linux, Network Programming, Client-server Model, Parsers, Gradle, Multithreading, Concurrent Programming, Reactive Programming, CentOS, Microservices, SSL, Minimum Viable Product (MVP), MVP Design, API Integration, Databases, REST, Protobuf, Digital Banking, Crypto, Desktop App Development

Senior Developer

2019 - 2019
Docpaid
  • Converted the Groovy codebase into Kotlin, fixing hundreds of bugs.
  • Provided smooth conversion, and everything stood up and running.
  • Got a delayed project back on track in less than a month.
Technologies: Groovy, Kotlin, Architecture, Back-end, REST APIs, Back-end Development, Software Architecture, Technical Leadership, HTML5, Scrum, Linux, Gradle, APIs, Databases, REST, Apache Tomcat, Digital Banking

Senior Back-end Developer

2018 - 2019
BTCMarkets
  • Created tests for previously existing software using Spok.
  • Built a new core library using Kotlin while keeping full Java compatibility with all other modules and services.
  • Designed a completely new set of endpoints for interacting with the whole back end.
  • Collaborated in the creation of an SSO from scratch.
Technologies: Java, Groovy, Spring, Unit Testing, Amazon Web Services (AWS), Single Sign-on (SSO), Back-end, REST APIs, Back-end Development, Software Architecture, HTML5, Redis, Spring Data JPA, Scrum, Apache Maven, APIs, Databases, REST, Apache Tomcat, Digital Banking, Crypto

CTO and Software Architect

2017 - 2019
Task & Time
  • Designed and implemented the company's main product back end from scratch.
  • Designed and implemented the data model using Hibernate and MongoDB (hybrid data model).
  • Implemented a complex task schedule optimization algorithm.
  • Created an Angular web application for the company's first product, which accesses the main back end.
  • Designed the second product's data structures and API endpoints.
  • Managed a team of two other developers and a QA remotely with scrum sprints.
Technologies: SQL, Docker, Spring REST, JUnit, Git, Kotlin, Ionic, Angular, MongoDB, MySQL, Hibernate, Spring Boot, Java, GUI Development, Architecture, CTO, Back-end, Node.js, TypeScript, REST APIs, Back-end Development, Leadership, Full-stack, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, Redis, Spring Data JPA, Spring, Scrum, Linux, Android, Parsers, Gradle, Multithreading, Concurrent Programming, CentOS, SSL, Minimum Viable Product (MVP), APIs, MVP Design, API Integration, Databases, REST

Back-end Software Developer

2018 - 2018
Tremor
  • Refactored all the REST endpoints to decrease their amount of code and readability.
  • Converted all the hardcoded failure entity returns into exceptions, for which I implemented a handler.
  • Moved a few enumerations declared as database tables to be actual Java enumerations properly mapped and referenced in JOOQ.
  • Unified several services with duplicated code and their data transfer objects (DTO).
  • Created an integration test suite with MockMvc and EmbeddedPostgres.
  • Implemented several endpoints, features, and tests on demand.
Technologies: SQL, Docker, Spring REST, Git, PostgreSQL, JOOQ, Spring Boot, Java, Fintech, Back-end, REST APIs, Back-end Development, Software Architecture, Scrum, Gradle, Apache Maven, APIs, Databases, REST, Apache Tomcat, Digital Banking

Software Architect

2017 - 2017
Apoyo al Estudio
  • Designed and implemented the company's main product back end from scratch.
  • Architected the API endpoints and worked alongside with front-end developer.
  • Made design of the product's data model and implemented it with Hibernate.
  • Implemented Spring Controller unit tests with MockMvc.
Technologies: SQL, Docker, Spring REST, JUnit, Git, Kotlin, MySQL, Hibernate, Spring Boot, Java, GUI Development, Architecture, Back-end, Node.js, TypeScript, REST APIs, Back-end Development, Leadership, Full-stack, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, Redis, Spring Data JPA, Spring, Scrum, Linux, Parsers, Gradle, Multithreading, Concurrent Programming, CentOS, SSL, Minimum Viable Product (MVP), APIs, MVP Design, API Integration, Databases, REST

Senior Software Engineer

2016 - 2017
Operartis
  • Converted from a database access singleton to decentralized autonomous organizations (DAOs) using Java Database Connectivity (JDBC).
  • Reorganized project packaging and dependencies with Gradle.
  • Created in-memory data managers for fast data lookup.
  • Implemented a filter framework to filter in-memory data according to a flexible set of conditions, using binary searches.
  • Wrote a set of JavaFX applications for data display.
  • Converted the whole project into a Spring back end.
  • Created a web app interface using Angular. It included custom diagrams drawn "manually" with lines.
Technologies: SQL, Docker, Spring REST, JUnit, Git, JavaFX, Kotlin, Hibernate, Angular, Spring Boot, Gradle, MySQL, Java, Fintech, GUI Development, Artificial Intelligence (AI), Architecture, Back-end, REST APIs, Back-end Development, Leadership, Software Architecture, Technical Leadership, JavaScript, CSS, HTML5, Redis, Spring Data JPA, Scrum, Linux, Parsers, Multithreading, Concurrent Programming, SSL, Minimum Viable Product (MVP), APIs, API Integration, Databases, REST, Digital Banking, Desktop App Development

Back-end Software Developer

2015 - 2017
James Evans and Associates
  • Created a tool that would parse testing spreadsheets and develop thousands of JUnit tests from that data.
  • Implemented JSON format export for the unit tests tool.
  • Developed back-end modules of a Spring enterprise project.
  • Created Database Access Objects with the MyBatis library.
  • Maintained and developed a user interface project with JavaFX.
Technologies: SQL, Spring REST, JUnit, EasyMock, Oracle, MyBatis, Spring, Java, Fintech, Back-end, REST APIs, Back-end Development, Software Architecture, Spring Data JPA, Parsers, Eclipse IDE, Apache Maven, Databases, REST

Software Architect

2015 - 2016
Synesthetic Visuals
  • Created a graphical interface which would create customizable 3D letters in a canvas. The 3D view is surrounded with controls to perform a big set of different modifications to the letters, as well as animations.
  • Combined Java Swing with Java OpenGL (JOGL) to display the 3D canvas in the center of the app.
  • Created a 3D engine and its shaders, including geometry shaders and shadows.
  • Handled over 50 different settings and configurations for the displayed results.
  • Created an animation editor in which you could set key points for every configuration at any time.
  • Implemented a render animation functionality that would store the result in a high-quality video file.
Technologies: SQL, Git, OpenGL, Swing, Java, GUI Development, Architecture, Software Architecture, CSS, HTML5, Parsers, Eclipse IDE, Multithreading, Concurrent Programming, Minimum Viable Product (MVP), MVP Design, Databases, Desktop App Development

Founder

2011 - 2016
L2Tenkai
  • Hosted and maintained an open-source MMORPG server.
  • Developed the server-side of new game features, which included all the client-server communications and logic, as well as designing the best way to fit them into the existing architecture.
  • Refactored more than twenty core modules of a big existing codebase (over 2,000 classes).
  • Created a development tool in Java Swing to manage and bulk edit static data with ease, which drastically increased the team's development speed.
  • Created a game launcher in C#, which handled the authentication communicating with a PHP API, which at its end communicated with the Java game server.
  • Led a team of up to three developers and eight community managers.
Technologies: SQL, Git, JavaFX, Kotlin, Windows Server, PHP, C#, MySQL, Java, GUI Development, Architecture, Back-end, Back-end Development, Python, Leadership, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, .NET Core, Linux, Network Programming, Client-server Model, Parsers, Subversion (SVN), Eclipse IDE, Multithreading, Concurrent Programming, Microsoft Visual Studio, SSL, Minimum Viable Product (MVP), APIs, MVP Design, API Integration, Swing, Databases, Desktop App Development

Administrator and Developer

2007 - 2012
L2TnS
  • Hosted and maintained an open-source MMORPG server.
  • Synchronized the software with the project’s repository frequently.
  • Developed and maintained the home website, which displayed in-game real-time data.
  • Created an in-game events engine with high scalability.
  • Administrated a MySQL database with over eighty tables.
  • Led a team of up to two developers and five community managers.
Technologies: SQL, Windows Server, PHP, MySQL, Java, GUI Development, Architecture, Back-end, Back-end Development, Python, Leadership, Software Architecture, Technical Leadership, Team Leadership, JavaScript, CSS, HTML5, Linux, Network Programming, Client-server Model, Parsers, Subversion (SVN), Eclipse IDE, Multithreading, Concurrent Programming, Microsoft Visual Studio, SSL, Minimum Viable Product (MVP), MVP Design, Swing, Databases, Desktop App Development

Ludoya

http://www.ludoya.com
This is a full-stack application I have been building singlehandedly since November 2022. The back end uses Kotlin (Ktor, Koin, and Exposed), and the front end is in Angular (pure Angular and Material).

I also built a small infrastructure that includes CI/CD (TeamCity), metrics and logging (Grafana, Prometheus, and Loki), project management (YouTrack), and multiple app environments for testing purposes.

Liquidity Exchange

https://em.me
An exchange platform where users can buy and sell third-party crypto exchanges' liquidity.

As the tech lead and back-end architect, I led a team of eight people, designed and implemented most of the critical functionality, and created all the infrastructure to support the platform.

P2P Engine for a Blockchain Node and SPV

https://github.com/VeriBlock/nodecore/tree/master/nodecore-p2p
VeriBlock is an L1 blockchain that has its own network running.

I refactored the peer-to-peer communication engine, the nodes used to unify it with the SPVs, and migrated the code to a modern library using Ktor and Coroutines.

Time Management App for Students

https://taskntime.org/en/studeam-4/
An Angular app with a Kotlin and Spring back end. The app asks the user for their homework, including the estimated amount of effort and deadlines, and the application organizes the time in the most optimal way.

I was the CTO of this small startup, having taken all the significant technology decisions and implemented the most critical logic on a full-stack scope.

Languages

Kotlin, Java, HTML5, SQL, C++, C, GLSL, C#, TypeScript, JavaScript, CSS, Python, Ada, Pascal, PHP, Groovy, HTML

Frameworks

Ktor, JUnit, Spring Boot, Hibernate, Spring, Swing, gRPC, Angular, Ionic, KOIN, .NET Core, Material UI

Libraries/APIs

Spring REST, REST APIs, OpenGL, Protobuf, MyBatis, EasyMock, JOOQ, DirectX, Sockets, Exchange API, Node.js

Tools

Gradle, Git, IntelliJ IDEA, Subversion (SVN), Eclipse IDE, Microsoft Visual Studio, Apache Maven, JetBrains, TeamCity, YouTrack, Docker Compose, RabbitMQ, Grafana, GitHub, Apache Tomcat

Paradigms

REST, Reactive Programming, Concurrent Programming, Scrum, Desktop App Development, Unit Testing, Management, Microservices Architecture, Microservices

Platforms

JavaFX, Docker, Windows Server, Blockchain, Windows, CentOS, Oracle, Linux, Android, Amazon Web Services (AWS)

Storage

PostgreSQL, MySQL, Databases, Spring Data JPA, Redis, MongoDB, SQLite

Other

Software Architecture, Network Programming, Multithreading, Parsers, Client-server Model, Animation, Fintech, Architecture, APIs, Back-end, Back-end Development, Technical Leadership, Minimum Viable Product (MVP), MVP Design, API Integration, Crypto, GUI Development, Artificial Intelligence (AI), CTO, Leadership, Full-stack, Team Leadership, SSL, Digital Banking, WebSockets, Prometheus, Single Sign-on (SSO), Open Source, Networking, Coroutines

2010 - 2014

Bachelor's Degree in Video Games Development

DigiPen Institute of Technology - Redmond, Washington, USA

2006 - 2010

Bachelor's Degree in Computer Engineering

Universitat de Vic - Vic, Barcelona, Spain

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