A heat exchanger comprising: a plurality of first layers for receiving a first fluid, each of the plurality of first layers including one or more first layer flow channels defining a first fluid flow direction, at least one of the one or more first layer flow channels having one or more features; and a plurality of second layers for receiving a second fluid; each of the plurality of second layers including one or more second layer flow channels defining a second fluid flow direction that is substantially perpendicular to the first fluid flow direction, at least one of the one or more second layer flow channels having one or more features; wherein: each of the plurality of first layers is sandwiched between adjacent second layers; each of the plurality of second layers is sandwiched between adjacent first layers; a layer wall is disposed between each adjacent first layer and second layer, fluidly separating the corresponding first layer flow channels from the corresponding second layer flow channels; and each feature comprises: a riblet, comprising a riblet peak and/or a riblet valley; wherein: the riblet peak and/or riblet valley defines a riblet slope; the riblet peak and/or riblet valley defines a riblet axis; and characterised in that the riblet axis is generally parallel to a respective one of the first fluid flow direction or the second fluid flow direction. a plurality of first layers for receiving a first fluid, each of the plurality of first layers including one or more first layer flow channels defining a first fluid flow direction, at least one of the one or more first layer flow channels having one or more features; and a plurality of second layers for receiving a second fluid; each of the plurality of second layers including one or more second layer flow channels defining a second fluid flow direction that is substantially perpendicular to the first fluid flow direction, at least one of the one or more second layer flow channels having one or more features; wherein: each of the plurality of first layers is sandwiched between adjacent second layers; each of the plurality of second layers is sandwiched between adjacent first layers; a layer wall is disposed between each adjacent first layer and second layer, fluidly separating the corresponding first layer flow channels from the corresponding second layer flow channels; and each feature comprises: a riblet, comprising a riblet peak and/or a riblet valley; wherein: the riblet peak and/or riblet valley defines a riblet slope; the riblet peak and/or riblet valley defines a riblet axis; and characterised in that the riblet axis is generally parallel to a respective one of the first fluid flow direction or the second fluid flow direction. each of the plurality of first layers is sandwiched between adjacent second layers; each of the plurality of second layers is sandwiched between adjacent first layers; a layer wall is disposed between each adjacent first layer and second layer, fluidly separating the corresponding first layer flow channels from the corresponding second layer flow channels; and each feature comprises: a riblet, comprising a riblet peak and/or a riblet valley; wherein: the riblet peak and/or riblet valley defines a riblet slope; the riblet peak and/or riblet valley defines a riblet axis; and characterised in that the riblet axis is generally parallel to a respective one of the first fluid flow direction or the second fluid flow direction. the riblet peak and/or riblet valley defines a riblet slope; the riblet peak and/or riblet valley defines a riblet axis; and characterised in that the riblet axis is generally parallel to a respective one of the first fluid flow direction or the second fluid flow direction.