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

Projects

Sequences

DequeNET

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

DequeNET

DequeNET

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

MementoContainer

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

MetroTasks

MetroTasks

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

myWine

myWine

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.

iOS

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

    NaviNet
    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