You went to a conference… what’s next?

Conferences are naturally a great place to get some new info and insights into techniques and solutions to problems. They also serve to validate and critique our understandings and assumptions on how we work and the choices we are making in that context. But the learning and inspiration that goes on at the event needs to be put into practice also, after the event. But how?

I helped organize the first DevOpsDays Portugal that was run at the beginning of this week. During and after the event there were plenty of discussions going on, related to the topics presented, specific techniques and ideas, and naturally the sharing that went on in the open spaces.

This is obviously great, but it should not end when the event is over. One thing I think is very important is that you find ways to bring back what you have learned into the workplace so that the knowledge gained scales and the environment around you can adapt to your new and useful ideas.

So I’ve come up with a short list of ideas you can use, especially if you had gone to DevOpsDays Portugal specifically, though most of these will apply to any conference you go to.

  • Write a blog post on what you have learned – Write out your thoughts and ideas, things locked in your mind from the event. What did you find useful? What do you disagree with and why (because you can choose to agree and disagree)? What suprised you? What do you think you can apply to what you are working on? Getting this written down is a great way to scale the sharing aspect of what your thoughts are. If you have many ideas, consider creating many small posts to aid sharing and discussion.
  • Create a search list – Acronyms you saw or heard of, pattern names, technique names, component type names and so called “buzzwords” can be useful for this. Which ones do you know and don’t know about? The ones you know about can be explored further for deeper knowledge; the ones you don’t know can be searched for new insights. This is a great way to broaden knowledge in areas you are not generally aware of. Just don’t stick with not knowing about something.
  • Summarize and present internally – Create a short presentation (something like 10-15 minutes) sharing the topics you found interesting and how you think they could be explored at your workplace or your team. Share the vocabulary you found if that will help people search for more, deeper info on what the ideas are, and promote the learning around you.
  • Use the presentations for lunch and learns – videos from the event are not out yet, but you could start to think about which talks would make sense and bring more value to your current team. Once available set up a session with pizza or just normal lunch to (re)watch as a team and discuss afterwards.
  • Run an open space internally – now that you have experienced the open space, you can run one internally with your team, and focus on issues and ideas you learned about at the conf or just general issues your team would like to bring to the table. You probably won’t need to have as many slots, since your team will probably (and hopefully) be smaller then the attendance at the conference. make this a part of your Kaizen initiatives.
  • Compare where you are with what was presented – run some mapping sessions and round tables that would allow you to see what is your current situation is and compare it to some that where presented. Are you blameless and getting value from your postmortems? What’s your on-call like compared to what was presented? How about your build pipelines and architectures? Is zero-downtime a thing you could reach as did the presenter? Hows your testing strategy and how right or left is it in the pipeline? What about team organization? There’s alot you can (critically) compare, and help map out what are your capabilities at the moment, and which ones you could improve on.
  • Use the ideas for a hackathon – was something mentioned and built that could also help your org? Could a hackathon help spread the idea and get it implemented / tested in your org? Is there a library of tool your team should test out in a proof of concept to see if it would improve your situation?
  • Share sponsor materials to spark discussions – You may have collected a bunch of panflets and saw some of our sponsor tools. Dont’ throuw them away. Share them, not necessarily for purchasing (since many of us don’t actually have that control), but at least to check out whats available and what aspects solve issues you have and map to what you learn. When colleagues are checking them out, try to mention some of the ideas and definitions you learned about and how they could help your org. Discuss how to bring those solutions into your work, whether through the tool from that vendor or other means. Also, how do their solutions differ from or improve on what you have at the moment?

All in all, what I personally think is important is that the event serves as a spark in the learning process and improvement of your work experience and work outcomes. After the event is the time to start to do something to continue improving and continue the learning journey with the many new ideas you have captured.

This is obviously a short list, and there is so much more that can be done. What are your ideas to keep the learning going?

Entrevista na

O início deste ano trouxe uma experiência nova que adorei fazer – ser entrevistado para o podcast da . 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 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 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 Press ‘S’ to open the speaker deck and find additional notes. The slides are open source and available at . In the repo, I also have a set of notes on some 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, and I just updated the readme to reflect how the code evolves, as in the demo.

The slides are hosted at slideshare (

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.