Diogo Castro

Software engineer

About Me

Hiya! I hail from Portugal, and I'm a 27 years old software engineer currently living in Lisburn, Northern Ireland.

I'm most experienced with C# and .NET technologies, such as ASP.NET Web API. In my spare time, I hack in Scala and I'm currently teaching myself Haskell. I love building concurrent, highly scalable, well designed applications.

I have a Master's degree in Informatics and Computing Engineering and I currently work at NaviNet. Here, I have been responsible for the end-to-end development - from analysis, design and unit testing, to implementation - of several services, APIs and frameworks.

profile for dcastro on Stack Exchange, a network of free, community-driven Q&A sites




Sequences is a port of Scala's Stream[+A] to C#. A Sequence<T> is an immutable lazy list whose elements are only evaluated when they are needed. It is composed by a head (the first element) and a lazily-evaluated tail (the remaining elements).

C#, Scala, memoization, immutability, data-structures



A concurrent lock-free deque (double-ended queue) implementation in C# - push/pop/peek operations in constant time O(1) - and a regular deque implemented as a ring buffer.

C#, concurrency, data-structures


Memento Container

An alternative approach to the Memento design pattern. Through reflection, the container takes a snapshot of your objects' state, so that you can easily rollback when recovering from errors or implementing an "undo" mechanism.

C#, design-patterns, oop



Metro Tasks is a productivity application for Windows 8 / Windows RT that helps you keep track of your to-do's. The app features synchronization with Google Tasks, type to search, tile and lock screen updates.

C#, WinRT

Master's Thesis

Master's Thesis

Entitled "Improving pedestrian navigation for older adults and persons with mild dementia through landmarks" and written at Fraunhofer Portugal. Developed the navigation module for AlzNav, using both turn-by-turn and landmark-based approaches

Android, navigation, research



An iOS 5.1 application for iPad that allows wine tasters to take notes of their tastings, to compare wines effortlessly and to sync all their records with a backend server.


Experience & Education

  • 2014
  • 2013
  • Functional Programming Principles in Scala

    June 2013

    Course taught by Martin Odersky, designer of the Scala language, from École Polytechnique Fédérale de Lausanne, Switzerland.

  • Software Engineer

    May 2013 - Present

    Responsible for designing, unit testing, implementing and deploying several scalable web servers using ASP.NET Web API, ActiveMQ, Couchbase and MS Sql Server.

  • Graduated

    September 2007 - February 2013

    Master’s in Informatics and Computing Engineering, at the Faculty of Engineering of the University of Porto, Portugal.

  • 2012