Kostis Dadamis, Developer in São Paulo - State of São Paulo, Brazil
Kostis is available for hire
Hire Kostis

Kostis Dadamis

Verified Expert  in Engineering

Software Developer

São Paulo - State of São Paulo, Brazil

Toptal member since April 29, 2019

Bio

Kostis is an experienced Ruby, Rails, and Java developer who is product-driven, eager to solve hard problems using any technology, and ready to participate in any stage of product development. He has vast working experience in several other languages and frameworks, such as JavaScript, Python, iOS, and Android, as well as system architecture. He has released a Ruby gem and published blog posts regarding research in mobile software development.

Portfolio

BitLove
Ruby, Ruby on Rails (RoR), Vue, PostgreSQL, Redis, FFmpeg...
Casper
JD Edwards, Solidus, Ruby on Rails (RoR), Ruby
Freelancer
React, JavaScript, Spring, Java

Experience

  • Ruby - 5 years
  • JavaScript - 4 years
  • Android - 4 years
  • Ruby on Rails (RoR) - 4 years
  • Python - 3 years
  • iOS - 3 years
  • Java - 3 years
  • System Architecture - 1 year

Availability

Part-time

Preferred Environment

IntelliJ IDEA, MacOS, Linux, Git, Emacs

The most amazing...

...thing I've designed and implemented was a payment system that ended up serving millions of dollars in payments within a year.

Work Experience

Senior Software Engineer

2020 - 2021
BitLove
  • Worked as a full-stack developer for a ten million-user social network, focusing on the back end and security.
  • Implemented the in-house video transcoding pipeline.
  • Migrated a high-throughput four-billion row database from MySQL to Postgres with zero downtime.
  • Owned the video and reporting infrastructure.
Technologies: Ruby, Ruby on Rails (RoR), Vue, PostgreSQL, Redis, FFmpeg, HTTP Live Streaming (HLS), Google Cloud Platform (GCP), Amazon Web Services (AWS), Kubernetes, TypeScript, Elasticsearch, Terraform, Selenium

Senior Software Engineer

2019 - 2019
Casper
  • Implemented features, fixed bugs, and integrated APIs for two Rails monoliths and one Sinatra microservice.
  • Owned all the back-end aspects involved in financial reporting.
  • Vastly improved financial and tax reporting accuracy by redesigning flows in the system and identifying and fixing bugs.
  • Mentored junior developers by teaching them how to use Ruby and Rails, design APIs, and structure their code.
Technologies: JD Edwards, Solidus, Ruby on Rails (RoR), Ruby

Senior Software Engineer

2019 - 2019
Freelancer
  • Developed the Java back end to enable direct bookings at a travel meta-search company.
  • Built a game in React that evaluates how memorable different types of ID icons (identicons) are.
Technologies: React, JavaScript, Spring, Java

Squad Leader

2017 - 2017
Skyscanner
  • Managed a team of five engineers and one designer to build a concierge feature inside the Skyscanner mobile apps that served millions of users worldwide.
  • Represented the team to the rest of the company and coordinated with stakeholders, internal and external, to build our product.
  • Released a chat interface inside the iOS app, allowing communication between users and the concierge team.
  • Created the back-end service that provided the functionality required by the concierge team to assist users, such as exchanging messages, processing user requests, and making bookings on the users' behalf (flights, hotels, VIP lounge passes, etc.).
  • Designed the back-end service in charge of processing payments, refunds, vouchers, and fraud prevention.
Technologies: Amazon Web Services (AWS), Angular, Ruby on Rails (RoR), Ruby, Docker, Python

Senior Software Engineer

2015 - 2017
Skyscanner
  • Spent over two years coding in Rails and Sinatra in an ecosystem of microservices that powered our corporate traveling platform.
  • Designed and implemented a payment system that was very critical for the success of the product. This system was in charge of issuing virtual credit cards, monitoring transactions, billing clients, and auditing.
  • Received an award from the company one year after developing the payment system. At that point, it had processed millions of dollars worth of transactions.
  • Designed and implemented fraud prevention features that detected, reported, and prevented fraudulent activity that would have resulted in a loss of thousands of dollars.
  • Built a calendar integration service in charge of creating trip events in user calendars and analyzing the same calendars to detect events requiring trip creation.
  • Created numerous other features and became the go-to person for any issue related to the back-end.
  • Led teams of engineers and designers to define and implement features from back-end to front-end.
Technologies: Amazon Web Services (AWS), Angular, Sidekiq, Docker, Heroku, Python, Ruby on Rails (RoR), Ruby

R&D Software Engineer

2013 - 2015
Skyscanner
  • Evaluated tools for developing a mobile cross-platform development library to be shared between our native apps, developed prototypes, and published the results in a series of blog posts.
  • Developed an iOS app that gamified traveling, provided travel inspiration, and allowed travel suggestions among friends.
  • Created a domain-specific language with a parser for flight searches.
  • Designed the concept of "pain score" in-flight searches composed of several flight attributes and tailored to each user. This helped improve flight results relevance by promoting painless flights.
  • Implemented a novel flight sorting algorithm and A/B tested it on the Skyscanner web page that serves millions of users daily.
  • Oversaw the development of a new mobile app with inspirational travel images from all over the world.
Technologies: Android, Java, C++, Cross-platform App Development, JavaScript, Objective-C

Software Engineer

2013 - 2013
The University of Glasgow
  • Explored the potential uses of external sensors and 3D audio in iOS devices in a research project funded by the university.
  • Investigated the effectiveness of different types of 3D sounds when guiding a user inside a city, aided by the sensors of an intelligent headset.
  • Performed user testing to validate the initial findings.
  • Produced a scientific paper.
Technologies: JavaScript, Python, Objective-C

Software Engineer

2012 - 2012
The University of Glasgow
  • Added song browsing functionality to a BCI (brain-computer interaction) media player intended for disabled people.
  • Indexed a Wikipedia article dump, allowing the media player to query and present information about artists and songs.
Technologies: Information Retrieval, OpenGL, Java, Python, Brain-computer Interface

Java Tutor

2012 - 2012
The University of Glasgow
  • Helped 2nd-year students at the weekly Java labs to understand the language and OOP paradigms.
Technologies: Java

Software Engineer

2011 - 2011
Foundation for Research and Technology - Hellas (FORTH)
  • Wrote a C++ API for a Java application responsible for creating 3D representations of archaeological artifacts, using the Java Native Interface (JNI).
Technologies: Java, JNI, C++

Civil Engineer

2009 - 2010
Freelancer
  • Designed and supervised the building of a 500 square meter production facility.
Technologies: AutoCAD

Historical-bank-ruby Gem

https://github.com/Skyscanner/historical-bank-ruby
A Ruby gem that fetches and caches historical currency exchange rates. It uses two layers of cache, Redis and memory. I initially developed it as part of a Skyscanner project. Later, it was extracted into a separate public repo to benefit other developers.

Published Research Regarding Developing a Mobile Cross-platform Library

https://www.skyscanner.net/blogs/developing-mobile-cross-platform-library-part-1-exploring
Investigated tools for developing mobile cross-platform libraries that could be shared among all Skyscanner apps and built prototypes using these technologies. Up to the publication of this research, while many mobile cross-platform development tools were widely used for sharing the whole codebase between apps of different platforms, the use case of building a library to share only a piece of functionality had never been considered before. The results of this research with code samples were published in three blog posts.

Tango Game (AR)

Developed an augmented reality game for a Tango tablet, an Android tablet loaded with AR sensors, as a side-project. It was coded in Java using the Android and Tango libraries.

The game aims to capture targets spread around an area you have previously scanned (e.g., a room, a floor) in the shortest time possible. There is a timer and a score. Capturing targets increases the score and the time you have available. The game ends when you run out of time. It was a straightforward game but very fun to play and especially fun to code with these unique sensors.
2010 - 2013

Bachelor of Science Degree in Computer Science

The University of Glasgow - Glasgow, Scotland

2003 - 2009

Master's Degree in Civil Engineering

Aristotle University of Thessaloniki - Thessaloniki, Greece

Libraries/APIs

Sidekiq, Facebook Open Graph API, FFmpeg, OpenGL, OpenGL ES, React, Vue

Tools

Emacs, Git, IntelliJ IDEA, AutoCAD, MATLAB, JD Edwards, Terraform

Languages

Ruby, HTML, Python, Java, JavaScript, Bash, SQL, Objective-C, Haskell, C++, C, Scala, TypeScript

Frameworks

Ruby on Rails (RoR), Sinatra, Spring, Angular, JNI, Selenium

Paradigms

Object-oriented Programming (OOP), Functional Programming

Platforms

Docker, Amazon Web Services (AWS), Heroku, Linux, Solidus, Google Cloud Platform (GCP), Kubernetes, MacOS, iOS, Android, Tango

Storage

Redis, NoSQL, PostgreSQL, Memcached, Elasticsearch

Other

APIs, Back-end, System Architecture, Mobile App Development, HTTP Live Streaming (HLS), Full-stack, Cross-platform App Development, Brain-computer Interface, Information Retrieval, JD Edwards CNC

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