Scroll To View More
Diego Castorina

Diego Castorina

Prague, Czech Republic
Member since January 22, 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
Portfolio
  • Sirecta
    JavaScript, Scala, AngularJS, Play Framework, MongoDB
  • Flow Traders
    Java, JavaScript, Spring, Hibernate, Wicket, EJB3, JMS, jQuery, Backbone...
  • Func
    Java, Wicket, ActiveMQ, Spring, Hibernate, Apache CXF, Quartz
Experience
  • Java, 8 years
  • Distributed Programming, 8 years
  • Multithreading, 8 years
  • jQuery, 6 years
  • JavaScript, 6 years
Prague, Czech Republic
Availability
Part-time
Preferred Environment
Ubuntu, Eclipse, SVN/Git
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.
Employment
  • Co-founder
    2013 - PRESENT
    Sirecta
    • 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: JavaScript, Scala, AngularJS, Play Framework, MongoDB
  • 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: Java, JavaScript, Spring, Hibernate, Wicket, EJB3, JMS, jQuery, Backbone, Mustache, JasmineJS
  • Web & Java Developer
    2009 - 2010
    Func
    • 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: Java, Wicket, ActiveMQ, Spring, Hibernate, Apache CXF, Quartz
  • Web & Java Developer
    2008 - 2009
    Quince
    • 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: Java, JavaScript, Groovy, Grails, Hibernate, Struts, JDBC, jQuery, Prototype
  • Java Developer
    2006 - 2008
    Italtel
    • 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: Java, JavaScript, Hibernate, Spring, JMX, Java Server Faces
  • 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: Java, C, SIP Servlets, JDBC, Swing, Java Media Framework, JNI, Bea Weblogic, MySQL
Experience
  • OmniContacts (Development)
    https://github.com/Diego81/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 (Other amazing things)

    Blog discussing Scala web development using the Play Framework.

  • A Developer Life (Other amazing things)

    My old blog about software development.

  • The Scala Jobs Board (Development)

    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.
Skills
  • Languages
    Java, JavaScript, SQL, Scala, Ruby
  • Frameworks
    Play Framework, Ruby on Rails (RoR), Hibernate, Spring, Spring MVC, Apache Wicket, AngularJS, Apache Struts 2
  • Paradigms
    Object-oriented Design (OOD), Dependency Injection, Distributed Programming, Asynchronous Programming, Functional Programming, Scrum
  • Other
    Multithreading
  • Libraries/APIs
    Lucene, Backbone.js, jQuery, JMS
  • Tools
    Eclipse IDE, Git, Subversion (SVN)
  • Platforms
    Ubuntu, Linux
  • Storage
    MongoDB
Education
  • Computer Science degree in Computer Science
    2000 - 2006
    University of Catania - Catania, Italy
I really like this profile
Share it with others