Diogo Castro

Software engineer

About Me

Hiya! I hail from Portugal, and I'm a 28 years old software engineer currently living in 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, Haskell and PureScript, and I'm currently teaching myself Idris.

I have a Master's degree in Informatics and Computing Engineering and I currently work at NantHealth. 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

csi-init

csi-init

Csi-init is a command line tool written in Haskell, which lets you launch Roslyn's C# REPL ("csi") preloaded with all the assemblies found in one or more directories.

Haskell, C#, Roslyn

Sequences

Sequences

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

JSend WebApi & Client

JSend

JSend.WebApi extends ASP.NET Web API 2's ApiController and enables easy generation of JSend-formatted responses. JSend.Client complements the controller, by providing an easy way to send HTTP requests and parse JSend-formatted responses.

C#, Web API

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

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