<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sebastian Sogamoso</title>
    <description>Programmer</description>
    <link>https://speakerdeck.com/sogamoso</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/sogamoso.rss"/>
    <lastBuildDate>2014-02-08 20:24:22 -0500</lastBuildDate>
    <item>
      <title>The overnight failure</title>
      <description>This talk is based on a true story.

Here I share the story of how I created a big bug and the lessons I learned from this experience. In hope that you can learn from them, so that when it happens to you (it eventually will), you are better prepared.

Presented at: RubyConf 2017</description>
      <media:content url="https://files.speakerdeck.com/presentations/42d586b4828a4934b352c580893bcacf/preview_slide_0.jpg?9010343" type="image/jpeg" medium="image"/>
      <content:encoded>This talk is based on a true story.

Here I share the story of how I created a big bug and the lessons I learned from this experience. In hope that you can learn from them, so that when it happens to you (it eventually will), you are better prepared.

Presented at: RubyConf 2017</content:encoded>
      <pubDate>Fri, 10 Nov 2017 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/sogamoso/the-overnight-failure-3</link>
      <guid>https://speakerdeck.com/sogamoso/the-overnight-failure-3</guid>
    </item>
    <item>
      <title>The Overnight Failure</title>
      <description>This talk is based on a true horror story.

It is very likely that you too have created a big problem in production at some point in your career, wether by creating was a bug or running the wrong command. Here I share the story of how I did it this time and the lessons I learned from this experience.

Presented at: Euruko 2017</description>
      <media:content url="https://files.speakerdeck.com/presentations/a42959a65f73435283bc4a93a3f6e2e9/preview_slide_0.jpg?8682638" type="image/jpeg" medium="image"/>
      <content:encoded>This talk is based on a true horror story.

It is very likely that you too have created a big problem in production at some point in your career, wether by creating was a bug or running the wrong command. Here I share the story of how I did it this time and the lessons I learned from this experience.

Presented at: Euruko 2017</content:encoded>
      <pubDate>Sat, 30 Sep 2017 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/the-overnight-failure-2</link>
      <guid>https://speakerdeck.com/sogamoso/the-overnight-failure-2</guid>
    </item>
    <item>
      <title>Refactor yourself</title>
      <description>The power to change our habits is the power to change our life.

Presented at: MagmaConf 2017</description>
      <media:content url="https://files.speakerdeck.com/presentations/6c79276e61ed4c8491caaee9b718da72/preview_slide_0.jpg?7760802" type="image/jpeg" medium="image"/>
      <content:encoded>The power to change our habits is the power to change our life.

Presented at: MagmaConf 2017</content:encoded>
      <pubDate>Thu, 30 Mar 2017 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/refactor-yourself</link>
      <guid>https://speakerdeck.com/sogamoso/refactor-yourself</guid>
    </item>
    <item>
      <title>The overnight failure</title>
      <description>This talk is based on a true horror story.

It is very likely that you too have "broken the internet" at some point in your career. Here I share the story of how I did it this time and the lessons I learned from this experience.

Presented at: wroc_love.rb 2017</description>
      <media:content url="https://files.speakerdeck.com/presentations/045663b597dc4a7e8b154d874a4268e7/preview_slide_0.jpg?7695386" type="image/jpeg" medium="image"/>
      <content:encoded>This talk is based on a true horror story.

It is very likely that you too have "broken the internet" at some point in your career. Here I share the story of how I did it this time and the lessons I learned from this experience.

Presented at: wroc_love.rb 2017</content:encoded>
      <pubDate>Sat, 18 Mar 2017 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/the-overnight-failure-1</link>
      <guid>https://speakerdeck.com/sogamoso/the-overnight-failure-1</guid>
    </item>
    <item>
      <title>The overnight failure</title>
      <description>this talk is based on a true horror story.

Imagine your work week ends after releasing a set of features to production. Your team is happy and you feel good about yourself. A call about a problem with payments wakes you up the next morning. You find out your most valuable users were charged hundreds of times, consuming their credit card limits, leaving others in overdraft. They're angry because they can't even buy milk at the store.

Learn how a "perfect bug storm" caused the problem, how our processes failed to catch it and how hard it was to gain our users trust back.

Presented at: RubyConf Taiwan 2016</description>
      <media:content url="https://files.speakerdeck.com/presentations/1ea4a602f22a4bd0872b3019856be18f/preview_slide_0.jpg?7294846" type="image/jpeg" medium="image"/>
      <content:encoded>this talk is based on a true horror story.

Imagine your work week ends after releasing a set of features to production. Your team is happy and you feel good about yourself. A call about a problem with payments wakes you up the next morning. You find out your most valuable users were charged hundreds of times, consuming their credit card limits, leaving others in overdraft. They're angry because they can't even buy milk at the store.

Learn how a "perfect bug storm" caused the problem, how our processes failed to catch it and how hard it was to gain our users trust back.

Presented at: RubyConf Taiwan 2016</content:encoded>
      <pubDate>Fri, 02 Dec 2016 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/sogamoso/the-overnight-failure</link>
      <guid>https://speakerdeck.com/sogamoso/the-overnight-failure</guid>
    </item>
    <item>
      <title>Leveraging N+1 queries</title>
      <description>Lightning talk based a blog post written by Piao Qihuan at https://sourcediving.com/speed-up-your-performance-with-n-1-dont-kill-it-82fe3444e7d#.fuxyy4epn.

Presented at: RubyConf Portugal 2016</description>
      <media:content url="https://files.speakerdeck.com/presentations/423a6edc117c498eb4c2cec242d1b7df/preview_slide_0.jpg?7075737" type="image/jpeg" medium="image"/>
      <content:encoded>Lightning talk based a blog post written by Piao Qihuan at https://sourcediving.com/speed-up-your-performance-with-n-1-dont-kill-it-82fe3444e7d#.fuxyy4epn.

Presented at: RubyConf Portugal 2016</content:encoded>
      <pubDate>Thu, 27 Oct 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/leveraging-n-plus-1-queries</link>
      <guid>https://speakerdeck.com/sogamoso/leveraging-n-plus-1-queries</guid>
    </item>
    <item>
      <title>TCP Socket programming in Ruby</title>
      <description>As software developers, a lot of the time we’re building applications that rely on some sort of network connection. Due to Ruby’s great abstractions we take most of the network related stuff for granted. We think we know how all of that works, but do we? Let’s go over the fundamentals together, learn about how Ruby models TCP Sockets and how we can make a good use of it.

Presented at: WindyCityRails 2016</description>
      <media:content url="https://files.speakerdeck.com/presentations/7790d0b67304450886e0ff5b0361ddb5/preview_slide_0.jpg?6866760" type="image/jpeg" medium="image"/>
      <content:encoded>As software developers, a lot of the time we’re building applications that rely on some sort of network connection. Due to Ruby’s great abstractions we take most of the network related stuff for granted. We think we know how all of that works, but do we? Let’s go over the fundamentals together, learn about how Ruby models TCP Sockets and how we can make a good use of it.

Presented at: WindyCityRails 2016</content:encoded>
      <pubDate>Fri, 16 Sep 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/tcp-socket-programming-in-ruby-1</link>
      <guid>https://speakerdeck.com/sogamoso/tcp-socket-programming-in-ruby-1</guid>
    </item>
    <item>
      <title>Dealing with payments</title>
      <description>When things go right and our product starts making money everyone is happy, but sometimes this means the start of the nightmare for people working with payments.

Let's not sugar coat it. In this talk you'll learn about some where thing went terribly wrong, some of them involved loosing money. Stories of stuff that can easily get overlooked, about the most common mistakes when working with payments and things you probably won't consider until shit hits the fan. All of this so that you don't run into the same problems and don't have to learn those lessons the hard way.

Presented at: Rails Pacific 2016</description>
      <media:content url="https://files.speakerdeck.com/presentations/3a632bb817e541d9a2b96ff15fe6e5d7/preview_slide_0.jpg?6318476" type="image/jpeg" medium="image"/>
      <content:encoded>When things go right and our product starts making money everyone is happy, but sometimes this means the start of the nightmare for people working with payments.

Let's not sugar coat it. In this talk you'll learn about some where thing went terribly wrong, some of them involved loosing money. Stories of stuff that can easily get overlooked, about the most common mistakes when working with payments and things you probably won't consider until shit hits the fan. All of this so that you don't run into the same problems and don't have to learn those lessons the hard way.

Presented at: Rails Pacific 2016</content:encoded>
      <pubDate>Thu, 19 May 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/dealing-with-payments</link>
      <guid>https://speakerdeck.com/sogamoso/dealing-with-payments</guid>
    </item>
    <item>
      <title>When making money becomes a headache</title>
      <description>When things go right and our product starts making money everyone is happy, but sometimes this means the start of the nightmare for people working with payments.

Let's not sugar coat it. In this talk you'll learn about some where thing went terribly wrong, some of them involved loosing money. Stories of stuff that can easily get overlooked, about the most common mistakes when working with payments and things you probably won't consider until shit hits the fan. All of this so that you don't run into the same problems and don't have to learn those lessons the hard way.

Presented at: wroc_love.rb 2016</description>
      <media:content url="https://files.speakerdeck.com/presentations/73cfbb50da2147f4b492c4b2e1862827/preview_slide_0.jpg?6998945" type="image/jpeg" medium="image"/>
      <content:encoded>When things go right and our product starts making money everyone is happy, but sometimes this means the start of the nightmare for people working with payments.

Let's not sugar coat it. In this talk you'll learn about some where thing went terribly wrong, some of them involved loosing money. Stories of stuff that can easily get overlooked, about the most common mistakes when working with payments and things you probably won't consider until shit hits the fan. All of this so that you don't run into the same problems and don't have to learn those lessons the hard way.

Presented at: wroc_love.rb 2016</content:encoded>
      <pubDate>Sun, 13 Mar 2016 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/sogamoso/when-making-money-becomes-a-headache</link>
      <guid>https://speakerdeck.com/sogamoso/when-making-money-becomes-a-headache</guid>
    </item>
    <item>
      <title>Microservices, a bittersweet symphony</title>
      <description>A story of how we got from initial architectural patterns to the microservice architecture.

How we did it wrong and what we should really care about.

Presented at: RockyMountainRuby Conference 2015</description>
      <media:content url="https://files.speakerdeck.com/presentations/67134534719f446199cc11e94c5c8533/preview_slide_0.jpg?5293179" type="image/jpeg" medium="image"/>
      <content:encoded>A story of how we got from initial architectural patterns to the microservice architecture.

How we did it wrong and what we should really care about.

Presented at: RockyMountainRuby Conference 2015</content:encoded>
      <pubDate>Thu, 24 Sep 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-3</link>
      <guid>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-3</guid>
    </item>
    <item>
      <title>Microservices, a bittersweet symphony</title>
      <description>A story of how we got from initial architectural patterns to the microservice architecture.

How we did it wrong and how to not repeat those mistakes again.

Presented at: RubyConf Brazil 2015</description>
      <media:content url="https://files.speakerdeck.com/presentations/a4a1053c14a349abaef9a07281069474/preview_slide_0.jpg?6998881" type="image/jpeg" medium="image"/>
      <content:encoded>A story of how we got from initial architectural patterns to the microservice architecture.

How we did it wrong and how to not repeat those mistakes again.

Presented at: RubyConf Brazil 2015</content:encoded>
      <pubDate>Sat, 19 Sep 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-4</link>
      <guid>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-4</guid>
    </item>
    <item>
      <title>Intro to Rails</title>
      <description>Brief introduction to Rails followed by a workshop.

Presented at: RailsGirls Bogotá 2015</description>
      <media:content url="https://files.speakerdeck.com/presentations/ba244687ed0148698c4d5a8d36b25ab3/preview_slide_0.jpg?4956098" type="image/jpeg" medium="image"/>
      <content:encoded>Brief introduction to Rails followed by a workshop.

Presented at: RailsGirls Bogotá 2015</content:encoded>
      <pubDate>Sat, 20 Jun 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/intro-to-rails</link>
      <guid>https://speakerdeck.com/sogamoso/intro-to-rails</guid>
    </item>
    <item>
      <title>Microservices, a bittersweet symphony</title>
      <description>Code is better served in small portions. Unfortunately most of the time we build systems consisting of a monolithic application. 

Let's look at microservices and decide whether they're a good approach or not given the problem and resources at hand.

Presented at: RailsConf 2015</description>
      <media:content url="https://files.speakerdeck.com/presentations/5684a93c27104091ad971792811f5d36/preview_slide_0.jpg?6998758" type="image/jpeg" medium="image"/>
      <content:encoded>Code is better served in small portions. Unfortunately most of the time we build systems consisting of a monolithic application. 

Let's look at microservices and decide whether they're a good approach or not given the problem and resources at hand.

Presented at: RailsConf 2015</content:encoded>
      <pubDate>Tue, 21 Apr 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-5</link>
      <guid>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-5</guid>
    </item>
    <item>
      <title>Microservices, a bittersweet symphony</title>
      <description>Code is better served in small portions. Unfortunately most of the time we build systems consisting of a monolithic application that gets bigger and scarier by the day. Everyone talks about how good microservices are, let's see if they are a good idea or not.

Presented at: wroc_love.rb 2015</description>
      <media:content url="https://files.speakerdeck.com/presentations/549943eec36349e2aafe588899325f2b/preview_slide_0.jpg?6998999" type="image/jpeg" medium="image"/>
      <content:encoded>Code is better served in small portions. Unfortunately most of the time we build systems consisting of a monolithic application that gets bigger and scarier by the day. Everyone talks about how good microservices are, let's see if they are a good idea or not.

Presented at: wroc_love.rb 2015</content:encoded>
      <pubDate>Sun, 15 Mar 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-6</link>
      <guid>https://speakerdeck.com/sogamoso/microservices-a-bittersweet-symphony-6</guid>
    </item>
    <item>
      <title>Services taste better in small disposable cups</title>
      <description>Let's review the micro-services architecture consisting of a particular way of designing systems as suites of independently deployable services. Aiming to allow us to have lower code coupling, to deploy fearlessly, change code easier and move forward faster.

Presented at: Nickel City Ruby 2014</description>
      <media:content url="https://files.speakerdeck.com/presentations/4e4db8b02e27013233ba1ac45923d988/preview_slide_0.jpg?3661371" type="image/jpeg" medium="image"/>
      <content:encoded>Let's review the micro-services architecture consisting of a particular way of designing systems as suites of independently deployable services. Aiming to allow us to have lower code coupling, to deploy fearlessly, change code easier and move forward faster.

Presented at: Nickel City Ruby 2014</content:encoded>
      <pubDate>Fri, 03 Oct 2014 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/services-taste-better-in-small-disposable-cups</link>
      <guid>https://speakerdeck.com/sogamoso/services-taste-better-in-small-disposable-cups</guid>
    </item>
    <item>
      <title>SOLID Principles through tests</title>
      <description>A practical approach on how to integrating the SOLID principles to the way we write code will pay off in the long the term.

Presented at: RubyConf Brazil 2014</description>
      <media:content url="https://files.speakerdeck.com/presentations/f1224e7011230132168732d3f2247bb6/preview_slide_0.jpg?6999230" type="image/jpeg" medium="image"/>
      <content:encoded>A practical approach on how to integrating the SOLID principles to the way we write code will pay off in the long the term.

Presented at: RubyConf Brazil 2014</content:encoded>
      <pubDate>Thu, 28 Aug 2014 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/solid-principles-through-tests-1</link>
      <guid>https://speakerdeck.com/sogamoso/solid-principles-through-tests-1</guid>
    </item>
    <item>
      <title>TCP Socket programming in Ruby</title>
      <description>As software developers, a lot of the time we're building applications that rely on some sort of network connection. Due to Ruby's great abstractions we take most of the network related stuff for granted. We think we know how all of that works, but do we? Let's go over the fundamentals together, learn about how Ruby models TCP Sockets and how we can make a good use of it.

Even if you're not doing network programming, being able to dive multiple levels to understand what's going on will give you a great advantage. The sort of concepts we'll go over this talk don't apply to Ruby only. All modern languages support the Berkeley Sockets API so this knowledge is portable and it will serve you for many years to come.

During the talk we will go through the fundamentals of programming with sockets. This includes creating sockets, client and server life-cycle, reading and writing data, non-blocking IO and connection multiplexing.

Presented at: RubyConf Uruguay 2014</description>
      <media:content url="https://files.speakerdeck.com/presentations/a25f5440c4fb013149823ab968454195/preview_slide_0.jpg?3097169" type="image/jpeg" medium="image"/>
      <content:encoded>As software developers, a lot of the time we're building applications that rely on some sort of network connection. Due to Ruby's great abstractions we take most of the network related stuff for granted. We think we know how all of that works, but do we? Let's go over the fundamentals together, learn about how Ruby models TCP Sockets and how we can make a good use of it.

Even if you're not doing network programming, being able to dive multiple levels to understand what's going on will give you a great advantage. The sort of concepts we'll go over this talk don't apply to Ruby only. All modern languages support the Berkeley Sockets API so this knowledge is portable and it will serve you for many years to come.

During the talk we will go through the fundamentals of programming with sockets. This includes creating sockets, client and server life-cycle, reading and writing data, non-blocking IO and connection multiplexing.

Presented at: RubyConf Uruguay 2014</content:encoded>
      <pubDate>Fri, 23 May 2014 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/sogamoso/tcp-socket-programming-in-ruby-2</link>
      <guid>https://speakerdeck.com/sogamoso/tcp-socket-programming-in-ruby-2</guid>
    </item>
    <item>
      <title>SOLID Principles  Through Tests</title>
      <description>We care about writing quality code, we have read the definition of SOLID principles several times and we know how important they are for writing good OO code, but are we really following those principles? Is there a pragmatic way of following them in our day to day jobs or are they just some principles a few computer scientists wrote?

Fortunately there is, SOLID principles are not just good ideas , they are intended to help us write better code, enjoy our jobs more and be happy programmers. So, where should we start? We should start where we always do. By writing tests, yes, for real.

As Kent Beck says "TDD doesn't drive good design. TDD gives you immediate feedback about what is likely to be bad design", so we need to go a step further. In this talk we will see how writing tests is not just doing TDD is about having good test coverage, it's also about driving our code towards good design, one that follows SOLID principles.

Presented at: LA RubyConf 2014</description>
      <media:content url="https://files.speakerdeck.com/presentations/c4c3dbb0735401314e4072e1b0bdb50b/preview_slide_0.jpg?2589635" type="image/jpeg" medium="image"/>
      <content:encoded>We care about writing quality code, we have read the definition of SOLID principles several times and we know how important they are for writing good OO code, but are we really following those principles? Is there a pragmatic way of following them in our day to day jobs or are they just some principles a few computer scientists wrote?

Fortunately there is, SOLID principles are not just good ideas , they are intended to help us write better code, enjoy our jobs more and be happy programmers. So, where should we start? We should start where we always do. By writing tests, yes, for real.

As Kent Beck says "TDD doesn't drive good design. TDD gives you immediate feedback about what is likely to be bad design", so we need to go a step further. In this talk we will see how writing tests is not just doing TDD is about having good test coverage, it's also about driving our code towards good design, one that follows SOLID principles.

Presented at: LA RubyConf 2014</content:encoded>
      <pubDate>Sat, 08 Feb 2014 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/sogamoso/solid-principles-through-tests-2</link>
      <guid>https://speakerdeck.com/sogamoso/solid-principles-through-tests-2</guid>
    </item>
  </channel>
</rss>
