Entrevista na 10Web.pt

O início deste ano trouxe uma experiência nova que adorei fazer – ser entrevistado para o podcast da 10Web.pt . Já seguia há algum tempo o podcast deles, uma vez que é dos poucos de IT produzidos em Portugal e em português. A Ana e o Vitor têm feito um excelente trabalho com o podcast, e para mim foi uma honra poder participar e partilhar algumas ideias sobre TDD, testes na base de dados e freelancing.

Espreita o episódio em https://10web.pt/programas/programa-30-miguel-alho-tdd/ ou subscreve ao feed para ouvir novos episódios sempre que sejam lançados. O catálogo tem mais alguns epsódios que valem a pena escutar.

DevOpsDays Portugal is coming in 2019!

I’m REALLY excited to be a part of this! The very first DevOpsDays Portugal is going to happen, June 3rd and 4th! The main DevOps-related meetup communities in Portugal (DevOps Lisbon and DevOps Porto) have come together to put together a program we hope we will be able to repeat throughout the following years. Our first event will be in Lisbon and we hope to rotate through the cities each year.

Last year, many of us helped create a DevOps track at the AgilePT 2018 conference, which was a great learning experience for us. We realized that, with the interest that atendees showed at the time, that there was room for a dedicated event on the topic. We decided to give this conf a try, with the help of the Agile PT team. The DevOpsDays format, with talks, ignites and open-spaces is an excellent format for learning and interacting with the community of practice, and it’ll be great to have this type of event here, finally!

Speaking of AgilePT, this year’s conference’s (in Porto, May 31st) is its 10th aniversary and a special program is being planned. Be sure to follow the site and social media for news about it as it comes out!. Both of the conferences will be seperated over the weekend, so if you are planning on attending from abroad, the events will provide a great opportunity to discover both cities (Porto and Lisbon) and visit the country on the weekend!

The CFP is open!

We are still working on the content lineup and we have a Call for Presentations open on PaperCall . We are considering a set of 30 minute talks and 5 minute Ignite talks as is usual at most DevOpsDays events. For the longer talks, we are really interested in curating them towards real-world experience reports with DevOps. We will also have open spaces, as we know that is one of the best learning experiences DevOpsDays events offer. If you have a great idea for a talk, please do submit it. We hope to have a good mix of national and international stories, and hopefully a lot of learning throughout both days.


The call for sponsors is also open at the moment. We know the job market here in Portugal is very active so this event will, for sure, be a great way to get in contact and network with the local community of practice. It’s also a great way to show that your company is devoted to this mindset. We have setup an interesting set of options that can fit companies and brands of all sizes. Feel free to inquiry us about any of the options, too.


You can already reserve your tickets for the event, and we are offering early-bird pricing at a very accessible 60€ until March 15th. Afterwards, price goes up, but still to a very accessible value. Go to https://www.devopsdays.org/events/2019-portugal/registration/ to get your’s today!

Follow us!

We’ve still got a lot of work going forward on this, but we sure are committed to creating a great event. Be sure to follow us on our DevOpsDaysPT twitter account to get all the news as it comes out. We will be using most of the regular social media channels, as you would expect.

Hope to see you at the event!

My favorite podcasts from 2018…

Podcasts are an important part of my personal learning strategy. It’s a large slice of the content I consume in my day-to-day learning activities. They are excellent sources of information that are easy to absorve in the right scenarios. For me, those have been my comute to work while driving and walking.

This post is a list of some of my favorite podcast titles from the last year, and that you might like to discover.

General IT Podcasts

The following are IT related, but a bit all over the place in terms of theme focus. Whether through interviews or presentations, you can get a lot of info on important topics like technologies and techniques.

  • Software Engineering Daily : lead by Jeff Meyerson, SE Daily is a wonderful way to get introduced to the most diverse amount of technologies and topics IT related. It’s based on a interview format, where different professionals are interviewed about their area of expertise. I have felt there are specifically two aspects that have been very usefull to me about this podcast – the first is that the interview is rarely an imediate deep dive into the topic. There is always a bit at the beginning where context is established, so if you’re new to a topic, you can get some idea of what it is about. The second is that the topics are very diverse, so you can adquire a wide breadth of knowledge, helping you to grow.
  • Developer on Fire : hosted by Dave Rael, this also follows an interview format with tech professionals, but it is less technical in nature. It’s a bit more about the person then the technology, and intersting to see how others have grown and how we can releate to each others stories.
  • QCast – InfoQ Presentation Podcast : InfoQ is one of my favorite sites on tech topics due to the quality and relevance of the presentations available. The presentations generally have video, by I actually consume most through audio. It’s unfortunate that slides sometimes are lost in that process, though I due find myself looking at the slide images in the app or on the web while i’m listening in some cases. There is also their actual podcast for the site, with interviews that are worth looking into. The presentation feed is one that I do not download automatically – instead I look at the update and pick which ones I want on my playlist.
  • .Net Rocks! + RunAs Radio : .NET Rocks! has been running since 2004 (!) which is amazing in itself, but it is such a fun show to listen too. It’s mostly focused on the Microsoft stack, but not exclusive to it. Lot’s of puns thrown in during the show make it a fun listen and a good learning element. One of the hosts, Richard Campbell , has also been producing the RunAs Radio show that is more IT / Ops / Sysadmin focused, which, for someone focused on development, helps expanding the breadth of topics to understand.
  • Hanselminutes : Scott Hanselman’s podcast is a delight and quite inclusive on the guests he has on the show. Most are tech related, but more about the human side of things.


Being part of the DevOps Porto community has led to extra awareness about the topic and these focus specificaly on that theme.

  • CommandLine Heroes : Saron Yitbarek presents this show from RedHat that recently finished its second season. It walks through the history of how we got to where we are in IT, in a very delightful format. Season one is mostly cloud and DevOps, season two felt more focused on open source. I’m always wanting the next episode to arrive quickly to be able to continue the story. This is a good one to binge on.
  • DevOps Radio : CloudBees’ podcast offering is an excellent DevOps relatated interviews offering with top experts in the field. highly relevant in this space.
  • Arrested Devops : Another great source of DevOps info. This one has a lot of episoded related to the communiy events going on.
  • DevOps Café : This is an interview based podcast focused on DevOps that is also great to listen too to capture a lot of info on what’s going on and how others are aproaching problems.
  • Devops Chat: Alan Shimmel’s fireside-chat-style show has plenty of industry leaders and experts and has a good mix of DevOps and Security, which will help anyone find the topics to dig deeper into.

Non Tech or Not-Only Tech

There are some other great podcasts you can listen to to capture info and awareness into other areas, that are not exclusively tech.

  • BagMan by Rachel Maddow : This one is about politics, and history, and highly relevant to what we are seeing in the US today, but easy to relate to other corruption related moments in other countries. It’s about Nixon’s Vice-President Spiro Agnew and about all the strategies he put together to get away from the corruption accusations he was guilty of being brought forth. Really well put together, and you can easily connect the dots with actions we hear about today. I kinda tend to relate Spiro to Portugal’s José Socrates, for anyone looking for similarities outside the US.
  • a16z Podcast : this is Andreessen Horowitz’s podcast, a VC-firm from Silicone Valley and it is very much about enterpreneupship in tech, including current trends and culture in this area. Tech related, but much more about the social impacts associated to them. Really good content if you’re into that.

So these are probably the main ones I have been going over the past year, and highly recommend. There are obviously many more very good ones out there, and for a full list of what I have subscribed to, check out my OPML backup i recently got out of the Podcast Addict mobile app I use.

So, what are you listening to?

Merging assemblies with ILRepack

Typically, in .NET, to merge assemblies you would use ILMerge. ILRepack is another project you can use and that has had updates recently (and a lot of activity on Github).

I’ve found it useful to merge the lot of Dlls and Exe that can compose a simple app into a single executable file (think containers but without Docker), which facilitates using and distributing it. The new .csproj file format is a great simplification and allows for tasks (as in the previous versions) in a smaller more understandable file.

To use ILRepack in a project, here are the steps you can perform to include the task during your build:

1 – add the ILRepack package to the project you wish to merge files in
2 – validate that the AssemblyName element is defined in the property groups in your .csproj file
3 – in the .csproj, add the following target element

<Target Name="ILRepack" AfterTargets="Build">
<!-- The ILRepack task will grab all build ouput assemblies
and merge them into a single exe file for easy distribution and integration
<ILRepackPackage Include="$(NuGetPackageRoot)\ilrepack\*\tools\ilrepack.exe" />
<NetStandardLocation Include="$(NuGetPackageRoot)NETStandard.Library\2.0.1\build\netstandard2.0\ref" />

<Error Condition="!Exists(@(ILRepackPackage->'%(FullPath)'))" Text="You are trying to use the ILRepack
 package, but it is not installed or at the correct location" />
<Exec Command="@(ILRepackPackage->'%(fullpath)') /out:$(OutputPath)merged\$(AssemblyName).exe 
/wildcards /lib:@(NetStandardLocation) /target:exe $(OutputPath)$(AssemblyName).exe $(OutputPath)*.dll" />

3.1 – the NetStandardLocation element is only required if you are targeting it or including a package that targets it.
3.2 – the /lib:@(NetStandardLocation) argument in the Exec command is only required by 3.1
3.3 – adjust the /out argument in the command to whatever you require.

4 – If you want to include the output in a package, define the package elements in a propertyGroup and include:

<!--we do not want build outputs integrated into the resulting package, only the IL merged file -->

<!-- nuget package files info: -->
<!--we do not want build outputs integrated into the resulting package, only the IL merged file -->
<Content Include="$(OutputPath)merged\$(AssemblyName).exe" PackagePath="tools\" />

And that’s pretty much it. If you run build, ILRepack will be executed and build the merged file, and MSBuild will also wrap it in a NuGet package if you include the packaging step.

DevopsPorto Meetup December 2017 Session

Me, presenting at the devopsporto meetup

I recently presented a talk titled “Ramp Up Your Learning Habits in 2018” and intended to challenge the attendees of the December 2017 DevopsPorto meetup group to choose some topics and focus on learning them in 2018.

It was a fun presentation for me, given it is a topic dear to me and was also the first time I presented to the group I co-founded with Eduardo Piairo.

The slides are available through GitPitch (which I also learned for this session) at https://gitpitch.com/MiguelAlho/LearningChallenge2018. Press ‘S’ to open the speaker deck and find additional notes. The slides are open source and available at https://github.com/MiguelAlho/LearningChallenge2018 . In the repo, I also have a set of notes on some Lynda.com courses by Britt Andreatta about learning that I found useful and which can further aid any efforts to create new learning habits in 2018.

Finally, a quick thanks to all those who attended and followed up during the break and at the end of the day, and also thanks to my good friends at Bitmaker Software for hosting the event at the awesome startup house Founders 2 Founders.

Delivering Changes for Applications and Databases

I had a chance to do a presentation with my good friend Eduardo Piairo on “Delivering Changes for Applications and Database” at the monthly PortoData meeting. This was a problem we worked on quite a lot at Celfinet, the client whom I worked for previously, where we met.

Delivering changes on apps that we want to be able to work on and iterate on fast require an interesting deal of automation, achievable through migrations, automated tests, CI, and CD. We talked about the shared database pattern and the problems we faced with it, solutions to mitigating that problem with source control and migrations, and how moving to more of a microservice strategy helped in new services. We talked about the common tools we used, like Flyway, to perform the migrations.

I demoed some aspects from the dev / app side of things, and showed off a simple migrations and integration test strategy, using DbUp and LocalDb, to aid devs on performing db changes fearlessly throughout the product’s iterations.

The code repo is at https://github.com/MiguelAlho/Purchases-DbMigration-sample, and I just updated the readme to reflect how the code evolves, as in the demo.

The slides are hosted at slideshare ( http://www.slideshare.net/MiguelAlho/delivering-changes-for-applications-and-databases):

Things Worth Watching #5 – Pacts to the Rescue (Beth Skurrie)

Beth Skurrie‘s “Pacts to The Rescue” presentation at Sydney API Days 2015 is worth the watch to get an overview of Consumer-Driven-Contracts and the use of Pact to implement it. One thing I was missing, and that I hadn’t seen yet till watching this,  was the Pact-Broker – a centralized service to publish pacts to and consume them in the service providers. A .Net implementation of the broker would also be nice, just to simplify integration, modification and ramp-up. I don’t know of any implementation, but at least there is Pact-net to use pacts in a .Net codebase, provided by SEEK-jobs.

video: http://www.infoq.com/presentations/pact

slides: http://pt.slideshare.net/bethesque/pact-44565612