As I blogged earlier, I had the privilege to attend NDC Oslo 2016 as a speaker this year. It was a fabulous experience and I took a different approach at NDC Oslo this year and rather than improving my existing knowledge, I decided to take different perspective on problems. There were really a few areas I wanted to get more information on from the World class experts:
- Machine Learning
- Functional Programming
- Soft Skills
Of course, this is NDC and you have people like Mark Rendle and Rob Conery. So, it was inevitable that I ended up at sessions which were just fun :) Nevertheless, it was pretty useful 3 days for me at the conference and it feels like I achieved my end goal.
One other amazing aspect of NDC Conferences is that all of the talks are being recorded and nearly all of those recordings are now up on Vimeo for public consumption :)
Here is the list of sessions I had a chance to attend in person:
- Keynote: Yesterday’s Technology is Dead, Today’s is on Life Support - Troy Hunt
- What every Node.js developer needs to know about Elixir - Bryan Hunter
- Intro to Azure Machine Learning: Predict Who Survives the Titanic - Jennifer Marsman
- R for the .NET Developer - Jamie Dixon
- Head to Head #2: K. Scott Allen and Jimmy Bogard - Jimmy Bogard, Rob Conery, Scott Allen
- Working Distributed - How Does It Even Work? - Brendan Forster
- Is your code ready for .NET Core? - Mark Rendle
- Don’t Be Dilbert: Survival Tactics for Uninspiring Workplaces - Kylie Hunt
- Deploying Docker Containers on Windows Server 2016 - Ben Hall
- Sunlight & Air: 10 Lessons for Growing Junior Developers - Erika Carlson
- Have I Got NDC for You!
- Elixir Is Neat But What Can You Actually Do With It? - Rob Conery
- .NET Rocks Live: Security Panel
- Fun with Mind Reading: Using EEG and Machine Learning to Perform Lie Detection - Jennifer Marsman
All of them were really helpful and gave me a different perspective on the topics. Aside from those sessions, here are the talks that I really wanted to attend but I couldn't + I will definitely watch:
- F# in the Real World - Yan Cui
- Phoenix a web framework for the new web - José Valim
- Functional web applications using F# and suave - Tomas Jansson
- Functional Programming for the Object Oriented - Øystein Kolsrud
- Agile experiments in Machine Learning with F# - Mathias Brandewinder
- Go - one language you should try - Andrzej Grzesik
- Python: An Amazing Second Language for .NET Developers - Michael Kennedy
- ASP.NET Core 1.0 Deep Dive - David Fowler and Damian Edwards
- ASP.NET Identity 3 - Brock Allen
- ASP.NET Core Kestrel: Adventures in building a fast web server - David Fowler and Damian Edwards
- Authentication & secure API access for native & mobile Applications - Dominick Baier
- Deploying Kubernetes, a Container Cluster Manager - Ben Hall
- .NET Deployment Strategies: the Good, the Bad, and the Ugly - Damian Brady
- Panel: Launching a Software Business
- Becoming a Social Developer - Jeremy Clark
- Safe At Any Speed - Ian Cooper
- Universal web with npm, React and Redux using WebPack - Jake Ginnivan
- Offline Web Applications - Max Stoiber
- Domain-Driven Design: The Good Parts - Jimmy Bogard
- Data Modeling with Document Stores - Martin Esmann
- Lessons from a quarter of a billion breached records - Troy Hunt
- DNS for Developers - Maarten Balliauw
- Continuous Integration for Open Source Projects with Travis CI - Kyle Tyacke
The schedule was full of amazing talks as you can see and there are also some other talks that seem interesting but I will probably not have time to look at:
- Understanding parser combinators: a deep dive - Scott Wlaschin
- Phoenix Channels - a Distributed PubSub and Presence Platform - Sonny Scroggin
- Performance is not an Option- Building services with GRPC and Cassandra - Dave Bechberger
- Building an app in ASP.NET Core and MVC 6 for the Raspberry Pi - Roland Guijt
- App 2.0 - why the web lost and Apps won. - Liam Westley
- Website Fuzziness - Niall Merrigan
- .NET without Windows - Matt Ellis
- Real world Erlang - an honest view - Rob Ashton
- Who’s Afraid of Graphs? - David Ostrovsky
- Simplifying Thread Safety - Andrew Clymer
- Building a Live Programming Tool with Roslyn - Josh Varty
- IoT at home - The solution to all your spare time problems - Karl-Henrik Nilsson
At the conference I gave a talk on Zero Downtime Deployments. I tried to give useful and practical guidance based on my true experiences. I hope it was useful for everyone attended the talk. The recording video of my talk is also available now.
Finally, you can find the demo sample I used in my talk to simulate a zero-downtime deployment process under my GitHub account. It also has great instructions on how to run the sample. So, definitely give it a go.
Next week, I am off to Oslo for one of my favorite conferences: NDC Oslo. I have been to NDC Oslo before in 2014 but this time is a little bit more special as I am one of the speakers this year. Seeing the list of awesome speakers at conference makes me so excited and nervous at the same time :)
As for my topic, I am going to be talking about zero-downtime deployments. I will tell you about some patterns, practices and techniques that make it this challenging task easier, such as semantic versioning and blue/green deployments. We’ll also walk through an end-to-end demo of how a high traffic web application can survive the challenge of deployments. If you are going to be there, I hope you will also join me at my talk.
I can see lots of people from my Twitter timeline already tweeting about NDC Oslo. So, I am really sure that this is going to be an exciting event. I hope to see lots of friends and make new friends while I am there. See you in Oslo :)
I had an amazing time in Johannesburg this week and had the privilege to attend DevConf 2016 as a speaker. I got to travel to South Africa for the first time and I really liked the country, especially the food :) Also, I tried to be a social developer and had a chance to meet with a few new amazing folks like Colin Dembovsky, Lisa Basel, Chris Tite, Mark Pearl and many others that I cannot remember right now after a few beers at Dubai airport while writing this blog post :)
During the conference, I attended a few other talks apart from giving one. Here are all of them:
- A year of dealing with RabbitMQ
- Lap around Azure Machine Learning
- Getting Started with Analytics (GTM and GA)
- Brownfield TDD: How to eat an elephant?
- Adjust your behaviour and be surprised how much you can influence your team
- Building real world microservices using Node.js
- People are pulling away from so-called Microsoft stack as much as it makes sense, especially on the data storage part. This is a good thing for everyone, even for Microsoft. Microsoft being more open has the biggest effect on this.
- People who experienced relational database architecture where the business logic sits inside the database seems to have learnt the lessons very well.
- Microservices had its appearance throughout the conference again :)
- Polyglot persistence seems to be what most of the people are applying today without knowing the term that much :) Not knowing the term is no problem at all. Remember: this type of terms (e.g. Microservices) help communicate during planning processes and discussions easier.
- Application and Database Lifecycle management is more about the culture and less about the tools. People who want to adopt this culture seek advice from consulting companies, they need tools just to get the job done.
- Infrastructure as code is grabbing more and more attention.
My Talk: Architecting Polyglot-persistent Solutions
Apart from a few logistical problems during my talk (like electricity going out completely!), it was really good overall. This was very first time I have given this talk and it was based on the experience I had over a few years on Zleek.
Here are also a few more links that you may find useful on this topic:
- Polyglot Persistence by Martin Fowler
- An evolving example on Polyglot Persistence
- Webinar: MongoDB and Polyglot Persistence Architecture
- Building Microservices with Polyglot Persistence Using Spring Cloud and Docker
- Mongo on Hadoop
- Getting Started with Neo4j in .NET with Neo4jClient Library
I would like to thank all the DevConf team who made this conference happen and all the audience for their amazing attention for the conference. I am especially impressed with the attention to the detail that the DevConf team has shown.
I am going to be at a few conferences in upcoming weeks and I would like to share them here with you. Main objective here is to tell you about where I am going to be and this should help meeting new people and learning about different experiences. Jeremy Clark, a friend I met at Codemash 2016, has an amazing blog post on becoming a social developer. I encourage you to check that out to see why and how.
DevConf, Johannesburg (8th of March)
I am very, very excited about DevConf. Source of this excitement is the talk I will deliver there and the content of the conference. I will be presenting on architecting polyglot-persistent solutions as part of the Persistence and Data track. This is a topic which is very close to my heart as I had the first hand experience while working on Zleek on what a big difference this type of architecture can make on your software product. It will also be the first time I will deliver this talk.
Rest of the agenda also looks pretty impressive. So, I am sure this will be well worth the long trip to South Africa :)
Microsoft Build 2016, San Francisco (30th of March - 1st of April)
At the end of March, I will also be in San Francisco to attend Microsoft Build conference. This is also very exciting for several reasons. Obvious one is that there will be a lot of existing and soon-to-be friends there from the community and this is a very developer centric conference in view of Microsoft products. Also, I don't get to attend conferences that often as an attendee. I am sure I will feel the comfort of gliding through the session rooms and not trying to prepare for a talk. If you add the fact that this is going to be my first trip to San Francisco, it will be a real fun :)
Last year, my wish for Build Conference announcements came true with Visual Studio Code and I am very much looking forward to this year's announcements, too.
I T.A.K.E. Unconference 2016, Bucharest (19th - 20th of May)
At I T.A.K.E. Unconference 2016, I will talk about two very interesting topics and I think both of them are very interesting considering the type of software solutions and the way we produce them nowadays.
- How Docker Changes the Way You Work with and Release Your Microservices
- Zero Downtime Deployment Golden Rules
I am very much looking forward both of them since it's going to be the first time that I present these sessions. It seems like it's still possible to register and you can also check the rest of the schedule out here.
If you are going to be around for any of the above events, let's meet and say hi to each other :)
I had the pleasure of attending CodeMash this year to give two talks. The conference was generally good, there were lots of people from the several parts of the World and I got to meet a lot of smart and amazing people.
I only had a chance to attend the last two days of the conference and during those days, I attended several talks and missed bunch of good ones (and there are no recordings which makes me sad):
- Docker in production? Done that, what’s next?
- The Code Behind the Vulnerability
- From Power Chords to Power of Models: Insights from History of Rock Music via Machine Learning
- From Developer to Manager
- Introducing the new ASP.NET Authorization and Data Protection Stacks
- Fun with Mind Reading: Using EEG and Azure Machine Learning to Perform Lie Detection
- Cloud Design Patterns for Scalability and Performance
- Got Documents? An exploration of document databases in software architecture.
- Cross-Platform Desktop Apps with Electron
I learnt some new things in every sessions which is a great feeling. Especially, the Jennifer Marsman’s session on combination of EEG + Machine Learning + Lie Detection was absolutely mind-blowing to watch. I don’t think I have blinked during the entire session :)
Here are a few things I took away from the conference by attending sessions and talking to people:
- Polyglot persistence is a general topic of interest and people are leaning towards this road.
- People try to apply or understand Microservices and its benefits.
- Docker makes the above two approaches easy to adopt and people are aware of that.
- Lots of concern around how to move to ASP.NET 5, especially to .NET Core.
- Machine learning opens up a lot of interesting possibilities for IoT products and service based solutions.
- Migrations based approach is definitely a must to have on the DLM process.
Lots of these are nice to see since they validated some of my thoughts and confirmed that I am on the right track. Some of them gave me new excitements and it didn’t take long to accept the challenges :)
The best part of the conference was that I had a chance to meet lots of new people and put a face on some that I have known through Twitter like Matt Johnson, Barry Dorrans, Darrel Miller and lots of other amazing people.
As mentioned in my previous post, I gave two talks on ASP.NET 5 and Database Lifecycle Management. I made sure that the resources I have shown are available online. CodeMash organizers maintain a GitHub repository for resources of all the sessions. I have put ASP.NET 5 talk resources and DLM talk resources there, too.
ASP.NET 5: Getting Your Cheese Back
You can also find the samples I used during the session under the aspnet-5-samples GitHub repository (permalink to the version used during the presentation). I also showed another sample which made use of Docker and Docker Compose: ModernShopping.
Database Lifecycle Management: Getting it Right
Again, slides for this talk is also available under my Speaker Deck account.
The demo application I have used during the session is available here (permalink to the version used during the presentation).
Overall, it was a great experience to be there. I want to thank CodeMash organizers for inviting me to speak at the conference. It was a really valuable opportunity for me to stand in front of that amazing crowd. I also want to thank Redgate and for covering my travel expenses and sparing me for the time of the conference. I want to emphasize again that Redgate is an amazing company to be part of!
Redgate has several opportunities that might fit you. I highly encourage you to check them out.
I want to end this post with a reference to a tweet which shows the message David Neal gave at the end of his talk (which was the last talk of CodeMash):