Diego Castorina, Multithreading Developer in Prague, Czech Republic
Diego Castorina

Multithreading Developer in Prague, Czech Republic

Member since March 5, 2014
Originally from Italy, Diego spent several years working in The Netherlands before moving to Prague, in the Czech Republic. There he has been working as a senior freelance engineer in addition to working on his own company: a web-based CRM for small businesses.
Diego is now available for hire


  • Sirecta
    MongoDB, Play Framework, AngularJS, Scala, JavaScript
  • Flow Traders
    Jasmine, Mustache, Backbone.js, jQuery, JMS, EJB3, Apache Wicket, Hibernate...
  • Func
    Quartz, Apache CXF, Hibernate, Spring, ActiveMQ, Apache Wicket, Java



Prague, Czech Republic



Preferred Environment

Git, Subversion (SVN), Eclipse, Ubuntu

The most amazing...

...project I have worked on was the implementation of a subset of the SIMPLE protocol based on official documents written by the IETF.


  • Co-founder

    2013 - PRESENT
    • Built a web-based CRM for small and medium businesses.
    • Conducted business analysis: studied how CRM's enhance the sales process and how they are used.
    • Fully implemented the front-end using AngularJS, Twitter Bootstrap, and Yeoman.
    • Fully implemented the back-end using the Play Framework for Scala and persisting data on MongoDB.
    • Responsible for system administration on Linode VPS.
    Technologies: MongoDB, Play Framework, AngularJS, Scala, JavaScript
  • Software Engineer

    2010 - 2012
    Flow Traders
    • Took full charge of the project's life-cycle by directly discussing requirements and scope with the client represented by traders, mid-office, and risk office.
    • Maintained legacy systems implemented using various technologies varying from Bash scripting to database stored-procedures, Perl scripts, Swing, and J2EE applications.
    • Introduced the usage of REST services in the company to facilitate the integration of different systems which are not involved in low-latency operations.
    • Responsible for the decision about which technology to use in order to standardize the development tools within the company.
    • Worked on real-time, multithreaded, distributed systems running in Amsterdam, New York, and Singapore.
    • Involved mostly in applications dealing with clearing and risk data which generate reports about intraday and end of day positions, reconciliation, limits and compliancy.
    • Was remote technical mentor for developers in the office in Cluj-Napoca, Romania.
    • Worked remotely for the office in Amsterdam for 8 months from Italy.
    Technologies: Jasmine, Mustache, Backbone.js, jQuery, JMS, EJB3, Apache Wicket, Hibernate, Spring, JavaScript, Java
  • Web & Java Developer

    2009 - 2010
    • Took care of the design and implementation of web applications for Dutch Educational institutions like Kennisnet, Malmberg, and Thieme Meulenhoff.
    • Used Agile Methodologies like Scrum and Test Driven Development.
    • Implemented load tests with the relative profiling and memory usage analysis.
    • Introduced the usage of the JMS technology to replace the old unstable setup.
    • Implemented an e-learning portal consisting of two web-applications. One for content providers and the other for students
    Technologies: Quartz, Apache CXF, Hibernate, Spring, ActiveMQ, Apache Wicket, Java
  • Web & Java Developer

    2008 - 2009
    • Maintained and implemented new functionalities for several projects for clients like Samsung, Goodyear, and Tita Tovenaar.
    • Worked in a multi-disciplinary environment including a design, a copyright, and an events department.
    • Single handedly re-implemented in 3 months a tracking system for Samsung previously implemented by 4 people over a 6 months period. Apart from fixing all bugs, the generation of reports was sped up from 20 minutes to 30 seconds.
    • Introduced the usage of the Grails framework within the company in order to accelerate development productivity.
    • Implemented T-SQL stored procedures for the generation of reports involving millions of records.
    Technologies: Prototyping, jQuery, JDBC, Apache Struts, Hibernate, Grails, Groovy, JavaScript, Java
  • Java Developer

    2006 - 2008
    • Worked on the Presence Service Enabler based on SIMPLE (SIP for Instant Messaging and Presence Leverage Extensions).
    • Implemented standards defined in RFC by the Internet Engineering Task Force, the same that defines TCP/IP, UDP, SNMP and many others.
    • Introduced the usage of the Spring Framework within the project and mentored the rest of the team about how to use it.
    • Implemented a library for the a real-time configuration, administration, and monitoring the distributed systems running on Bea Weblogic AS.
    • Implemented a web application for creating and configuring the profiles of the users of the systems.
    Technologies: JavaServer Faces, JMX, Spring, Hibernate, JavaScript, Java
  • Java Developer

    2006 - 2006
    Dok Solutions
    • Single-handedly implemented IP Tetra, a system for making audio and video calls between two or more people.
    • Implemented server side running on Bea Weblogic and based on SIP Servlets.
    • Implemented Java Desktop client using Swing, the Java Media Framework, and JAIN SIP API.
    • Implemented PDA Client running on IBM j9 JVM.
    • Implemented a JNI library wrapping a C library to make calls from mobile devices.
    Technologies: MySQL, BEA WebLogic Server, JNI, JavaScript MV* Framework, Swing, JDBC, SIP, C, Java


  • OmniContacts

    Ruby Gem for importing contacts from major email providers. It was mentioned by the popular podcast Ruby5: http://ruby5.envylabs.com/episodes/275-episode-271-may-11th-2012/stories/2421-omnicontacts

  • Work With Play

    Blog discussing Scala web development using the Play Framework.

  • A Developer Life

    My old blog about software development.

  • The Scala Jobs Board

    A simple jobs board for Scala.

  • JavaScript Prototype Chains, Scope Chains, and Performance: What You Need to Know (Publication)
    JavaScript is much more nuanced than most developers initially realize. Even for those with more experience, some of JavaScript's most salient features continue to be misunderstood and lead to confusion. One such feature, described in this article, is the way that property and variable lookups are performed and the resulting performance ramifications to be aware of.
  • Concurrency and Fault Tolerance Made Easy: An Akka Tutorial With Examples (Publication)
    Writing concurrent programs is hard. Having to deal with threads, locks, race conditions, and so on is highly error-prone and can lead to code that is difficult to read, test, and maintain. This post provides an introductory guide to the Scala-based Akka framework, showing (with code samples) how Akka facilitates and simplifies the implementation of robust, concurrent, fault-tolerant applications.


  • Languages

    Java, JavaScript, Ruby, Scala, SQL, C, Groovy
  • Frameworks

    Play Framework, Ruby on Rails (RoR), AngularJS, Apache Wicket, Spring MVC, Spring, Hibernate, Swing, JNI, JavaServer Faces, Grails, Apache Struts, Apache CXF, Jasmine, Apache Struts 2
  • Paradigms

    Distributed Programming, Dependency Injection, Object-oriented Design (OOD), Functional Programming, Asynchronous Programming, JavaScript MV* Framework, Scrum
  • Other

    Multithreading, Data Analysis, SIP, BEA WebLogic Server, Prototyping, EJB3
  • Libraries/APIs

    Backbone.js, JMS, jQuery, Apache Lucene, JDBC, JMX, Quartz, Mustache
  • Tools

    Subversion (SVN), Git, Eclipse IDE, ActiveMQ
  • Platforms

    Linux, Ubuntu, Eclipse
  • Storage

    MongoDB, MySQL


  • Computer Science Degree in Computer Science
    2000 - 2006
    University of Catania - Catania, Italy

To view more profiles

Join Toptal
Share it with others