Tomo Ferega, Developer in Zagreb, Croatia
Tomo is available for hire
Hire Tomo

Tomo Ferega

Verified Expert  in Engineering

Software Developer

Location
Zagreb, Croatia
Toptal Member Since
August 5, 2013

With over nine years of experience in software development, Tomo is a seasoned and capable software engineer and solution architect with an excellent track record of delivering high-quality solutions. He has worked with a variety of technologies ranging from front-end to back-end, and he specializes in server programming mostly with Scala and Java. He is particularly interested in concurrent and distributed fault-tolerant software.

Portfolio

EveryonePrint A/S
Test-driven Development (TDD), JavaMail, Apache Wicket, Java, Scala
Kamino
Cassandra, D3.js, Vue, TypeScript, PostgreSQL, Akka, Scala
Mentat Labs d.o.o.
Selenium, Lift, Akka, PostgreSQL, Java, Scala

Experience

Availability

Part-time

Preferred Environment

Git, IntelliJ IDEA, Linux

The most amazing...

...thing I've made is a streaming data transfer pipeline for streams on a master-slave topology with protections against hanging streams and minimal resource use.

Work Experience

Senior Full-stack Developer

2017 - 2018
EveryonePrint A/S
  • Implemented a streaming data transfer pipeline for arbitrary streams between servers and clients on a master-slave topology with strong protections against hanging streams and minimal resource usage (avoiding buffering in case of large files).
  • Created a service for monitoring and managing a POP3, IMAP, or Exchange email server inbox, monitoring for incoming mail, downloading, and parsing it.
  • Implemented pages for all features requiring front-end changes in Wicket, including several custom widgets.
  • Created services for log file transfer, event logging, document conversion, and a templating engine.
Technologies: Test-driven Development (TDD), JavaMail, Apache Wicket, Java, Scala

Senior Full-stack Developer

2016 - 2017
Kamino
  • Designed and implemented the relational database model in PostgreSQL along with an Akka HTTP CRUD/REST service.
  • Helped with an implementation of the data-series database in Cassandra.
  • Worked on UI using TypeScript with Vue.js, including implementing a variety of chart components using D3.js.
  • Optimized chart rendering and display performance.
  • Created an alerting service integrated with several distribution channels, including Slack, Skype, and email.
Technologies: Cassandra, D3.js, Vue, TypeScript, PostgreSQL, Akka, Scala

Lead Developer

2015 - 2016
Mentat Labs d.o.o.
  • Co-created and served as technical lead and full-stack developer for a Sweden-based startup in the financial sector with a responsive single-page web application for a flagship product.
  • Using Java, Akka, and Selenate, built a high-throughput concurrent and distributed system for automating placing orders and other common actions on a major online retailer.
Technologies: Selenium, Lift, Akka, PostgreSQL, Java, Scala

Lead Developer

2011 - 2015
Element d.o.o.
  • Created Selenate, a mini framework built on top of Selenium, to facilitate the process of gathering data from public websites.
  • Worked as project lead on a team of three programmers creating a large multi-national financial and credit analysis service.
  • Managed the production environment for several mission-critical products.
  • Wrote a S/MIME connectivity module in Scala using BouncyCastle (encryption/decryption and signing/verification).
  • Created a full implementation of RNIF messaging protocol in Scala.
Technologies: Selenium, Lift, Akka, PostgreSQL, Java, Scala

Developer

2009 - 2011
Element d.o.o.
  • Designed and wrote the database for the new website of a medium-sized publishing company.
  • Created a system for extracting problems from a math textbook and cataloguing, rendering, and displaying them on the publisher's web page.
  • Wrote an automated identity verification service using SSN numbers.
  • Worked as part of a small team in the development of a number of websites.
  • Started working with Scala and functional programming.
  • Worked with a small team on all aspects of the development process of a large multi-national financial and credit analysis service.
  • Worked extensively with Selenium in a non-testing environment, including automated information gathering from public websites.
Technologies: Selenium, PostgreSQL, Scala, PHP

Procedural Terrain Generation Tool

https://github.com/tferega/terra-gen
This tool generates terrain height-maps using a variety of algorithms. Currently implemented algorithms are random noise, diamond-square, voronoi diagrams, and probability function. They can be mixed and matched as needed.

Process Runner

https://github.com/tferega/process-runner
A simple Scala library that greatly simplifies certain use-cases of native process running.

Selenate

https://github.com/tferega/selenate
This is a mini-framework I created that is built on top of Selenium. Selenate decouples Firefox sessions from client code, facilitating management. The server-side is written in Scala with Akka. The client-side is written in Java.

Scala SSL Disabler

https://github.com/tferega/scala-ssl-disabler/tree/master/scala-ssl-disabler
A class capable of disabling the JVM's SSL security.

Languages

Java, Scala, C#, JavaScript, TypeScript, PHP, C

Frameworks

Selenium, Akka, Lift, JUnit, Apache Wicket

Tools

Eclipse IDE, IntelliJ IDEA, Git, CasperJS

Paradigms

Functional Programming, Concurrent Programming, Procedural Programming, Test-driven Development (TDD)

Platforms

Linux, Windows

Other

Logback

Libraries/APIs

BouncyCastle, Vue, D3.js, JavaMail, jQuery

Storage

Cassandra, PostgreSQL

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