<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Andrew Brown 🇨🇦</title>
    <description>The latest articles on DEV Community by Andrew Brown 🇨🇦 (@andrewbrown).</description>
    <link>https://dev.to/andrewbrown</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108782%2F7a1520ae-c38f-46ad-94d6-2021f1a064d4.jpg</url>
      <title>DEV Community: Andrew Brown 🇨🇦</title>
      <link>https://dev.to/andrewbrown</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andrewbrown"/>
    <language>en</language>
    <item>
      <title>Post-Hackathon Advice: Turning Lemons 🍋 into Lemonade 🍹</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Sun, 15 Jan 2023 21:50:10 +0000</pubDate>
      <link>https://dev.to/andrewbrown/post-hackathon-advice-turning-lemons-into-lemonade-3o86</link>
      <guid>https://dev.to/andrewbrown/post-hackathon-advice-turning-lemons-into-lemonade-3o86</guid>
      <description>&lt;p&gt;So I didn't win the most recent Hackathon I entered, but you know that doesn't matter, because I have never won a Hackathon (and probably never will).&lt;/p&gt;

&lt;p&gt;But every Hackathon project I've built, I've turned into something more valuable.&lt;/p&gt;

&lt;p&gt;So here's my &lt;a href="https://dev.to/andrewbrown/cruddur-the-not-so-great-twitter-clone-using-ruby-sinatra-react-gcp-cloudrun-mongodb-atlas-terraform-1j43"&gt;Cruddur app&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbelm7ylqdxzv1jjfujis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbelm7ylqdxzv1jjfujis.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And I've turned it into a &lt;a href="https://docs.google.com/document/d/19XMyd5zCk7S9QT2q1_Cg-wvbnBwOge7EgzgvtVCgcz0/edit?usp=sharing" rel="noopener noreferrer"&gt;12 week bootcamp&lt;/a&gt;. lol&lt;/p&gt;

&lt;p&gt;This was my first Hackathon circa 2009?&lt;/p&gt;

&lt;p&gt;I didn't win, but I did however flip this into getting multiple clients building tech coaching sites...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqkyyisz2p7lvrclh732.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqkyyisz2p7lvrclh732.jpg" alt="Image description" width="575" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How is your post-hackathon project doing? 💭&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Cruddur - The not so great twitter clone using Ruby Sinatra + React + GCP CloudRun + MongoDB Atlas + Terraform</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Thu, 08 Dec 2022 18:39:53 +0000</pubDate>
      <link>https://dev.to/andrewbrown/cruddur-the-not-so-great-twitter-clone-using-ruby-sinatra-react-gcp-cloudrun-mongodb-atlas-terraform-1j43</link>
      <guid>https://dev.to/andrewbrown/cruddur-the-not-so-great-twitter-clone-using-ruby-sinatra-react-gcp-cloudrun-mongodb-atlas-terraform-1j43</guid>
      <description>&lt;h2&gt;
  
  
  Hackathon Entry
&lt;/h2&gt;

&lt;p&gt;Hey is Andrew Brown 👋 and I entering the MongoDB Atlas hackathon! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Will I win? I doubt it&lt;/li&gt;
&lt;li&gt;have I learned something new? Quite a bit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repo exists here. I built everything as I went:&lt;br&gt;
&lt;a href="https://github.com/omenking/mongodb-atlas-gcp-microblog" rel="noopener noreferrer"&gt;https://github.com/omenking/mongodb-atlas-gcp-microblog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I did attempt to provide step-by-step tutorial instructions in the &lt;a href="https://github.com/omenking/mongodb-atlas-gcp-microblog/tree/main/docs/docs" rel="noopener noreferrer"&gt;/docs directory&lt;/a&gt;, but it got a bit squirrelly near the end.&lt;/p&gt;
&lt;h2&gt;
  
  
  What does the app do?
&lt;/h2&gt;

&lt;p&gt;Not a whole alot.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write a microblog post that will show up on main feed&lt;/li&gt;
&lt;li&gt;View a home feed&lt;/li&gt;
&lt;li&gt;View a feed of a specific user's microblog&lt;/li&gt;
&lt;li&gt;Search microblogs using the search (but only through the API not the UI lol)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login or Signup&lt;/li&gt;
&lt;li&gt;Use mentions or hashtags&lt;/li&gt;
&lt;li&gt;Reshare with comment&lt;/li&gt;
&lt;li&gt;Reply&lt;/li&gt;
&lt;li&gt;Followerships&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So in terms of useful app, its not that great... 😂&lt;/p&gt;

&lt;p&gt;I was more interested in the cloud infrastructure and showing folks how to solve deploying an app to GCP Cloud Run with a MongoDB Atlas backed database.&lt;/p&gt;
&lt;h2&gt;
  
  
  What was the tech stack?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://sinatrarb.com/" rel="noopener noreferrer"&gt;Sinatra&lt;/a&gt; for the backend&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt; for the frontend&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mongodb/mongo-ruby-driver" rel="noopener noreferrer"&gt;Mongo Ruby River&lt;/a&gt; to interface with MongoDB&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB Atlas&lt;/a&gt; because of course..&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cloud.google.com/" rel="noopener noreferrer"&gt;Google Cloud Platform&lt;/a&gt; to host the app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; for Infrastructure as Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did all the development using &lt;a href="https://gitpod.io/" rel="noopener noreferrer"&gt;Gitpod&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7cscejjbrdkvfz3pxzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7cscejjbrdkvfz3pxzz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Time and Effort
&lt;/h2&gt;

&lt;p&gt;I built this application over seven non-consecutive days.&lt;/p&gt;

&lt;p&gt;My team (ExamPro) helped me out in a few areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;solving React syntax&lt;/li&gt;
&lt;li&gt;debugging networking issues on GCP&lt;/li&gt;
&lt;li&gt;debugging CORS issues&lt;/li&gt;
&lt;li&gt;debugging container env var issues&lt;/li&gt;
&lt;li&gt;evaluating the mongodb driver&lt;/li&gt;
&lt;li&gt;figuring on MongoDB Altas search (its not fully documented for ruby yet)&lt;/li&gt;
&lt;li&gt;Navigating MongoDB Altas UI for specific access controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I had to breakdown time spent it would look something like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;hours&lt;/th&gt;
&lt;th&gt;tasks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Building the Sinatra app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Building the react app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Figuring our docker containerization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Pushing containers to Artifact Registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Deploying containers to Cloud Run via Terraform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Troubleshooting and configuring CORS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Troubleshooting Custom Domain with Google-managed certificate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Troubleshooting Connectivity to the container through GCP Load Balancer (Classic)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Troubleshooting Terraform GCP Load Balancer Module&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Writing MongoDB integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;41&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Total Hours&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  Why did you use Ruby and Sinatra?
&lt;/h2&gt;

&lt;p&gt;I love &lt;a href="https://www.ruby-lang.org/en/" rel="noopener noreferrer"&gt;ruby&lt;/a&gt;, full stop.&lt;/p&gt;

&lt;p&gt;I chose &lt;a href="https://sinatrarb.com/" rel="noopener noreferrer"&gt;Sinatra&lt;/a&gt; because I wanted a very simple framework so I can share this project with beginners. &lt;/p&gt;

&lt;p&gt;A more complex framework like &lt;a href="https://github.com/ruby-grape/grape" rel="noopener noreferrer"&gt;Grape&lt;/a&gt; or &lt;a href="https://rubyonrails.org/" rel="noopener noreferrer"&gt;Rails&lt;/a&gt; has a-lot of magic going and so a beginner might not have confidence of what is actually happening.&lt;/p&gt;

&lt;p&gt;A lightweight framework I think is more suited for the future technical path of containerized applications which has micro-services and event driven architecture (EDA) in mind.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why did you choose React as the frontend framework?
&lt;/h2&gt;

&lt;p&gt;I absolutely hate React. I would have much preferred to use&lt;a href="https://mithril.js.org/" rel="noopener noreferrer"&gt;mithril.js&lt;/a&gt; or maybe Vue, but I thought I should use a popular framework.&lt;/p&gt;

&lt;p&gt;Next.js did cross my mind, but there is considerable opinion in that framework.&lt;/p&gt;

&lt;p&gt;So the React implementation I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;functional components (because classes scares some folks) &lt;/li&gt;
&lt;li&gt;plain js (since Typescript scares some folks)&lt;/li&gt;
&lt;li&gt;No Redux (since I don't want a headache)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://create-react-app.dev/" rel="noopener noreferrer"&gt;create-react-app&lt;/a&gt; because it made setting up the boilerplate code fast&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;React Router v6&lt;/a&gt; because I assume this the most popular.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Why did you choose GCP and GCP Cloud Run?
&lt;/h2&gt;

&lt;p&gt;I am a &lt;a href="https://cloud.google.com/innovators/innovator?profileId=115400785451241600890" rel="noopener noreferrer"&gt;Google Cloud Champion Innovator for the Modern Architecture category&lt;/a&gt; so it a was great opportunity to create some modern application content.&lt;/p&gt;

&lt;p&gt;For compute it could have been App Engine, or Cloud Functions or Google Kubernetes Engine (GKE) but the reason I choose Cloud Run was because it has built in CI/CD. &lt;/p&gt;

&lt;p&gt;I never did use Cloud Run's CI/CD functionality in this project, since the time ran out troubleshooting various issues which will discuss.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why did you choose Terraform?
&lt;/h2&gt;

&lt;p&gt;Well I did use the Google Cloud CLI (gcloud) to provision repositories in the Artifact Registry, and did Click Ops in the console for managing the domain name in Cloud DNS.&lt;/p&gt;

&lt;p&gt;For everything else I used Terraform. GCP has its own IaC called &lt;a href="https://cloud.google.com/deployment-manager/docs" rel="noopener noreferrer"&gt;Cloud Deployment Manager&lt;/a&gt; which has its own template language via YAML files but as far as I know, nobody likes using it, and GCP supports Terraform more than their own tool in their documentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With AWS I normally use CloudFormation&lt;/li&gt;
&lt;li&gt;With Azure I normally use Azure Bicep&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But yeah, GCP just go with Terraform.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why did you use Gitpod for your developer environment?
&lt;/h2&gt;

&lt;p&gt;Gitpod is a Cloud Developer Environment (CDE), which is basically VSCode in your browser.&lt;/p&gt;

&lt;p&gt;Using CDE made it really easy for my team members to jump in and help me places. All they had to do was press a button, and the could get to work.&lt;/p&gt;

&lt;p&gt;There are other options out there like AWS Cloud9, Github Codespaces, but these options utilized a Virtual Machine (VM) as the attached environment. &lt;/p&gt;

&lt;p&gt;Gitpod uses docker (which is managed by K8s) so its much faster to launch an environment, you don't have to "rebuild" an environment, its easy to discard a state back to a clean working version in case you jank the environment. &lt;/p&gt;

&lt;p&gt;I'm also Gitpod Community Hero (because I really like Gitpod).&lt;/p&gt;
&lt;h2&gt;
  
  
  Why use MongoDB Ruby Driver instead of Mongoid?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mongodb/mongoid" rel="noopener noreferrer"&gt;Mongoid&lt;/a&gt; is a The Official Ruby Object Mapper for MongoDB. Its been around for a long time and makes it really easy working with MongoDB.&lt;/p&gt;

&lt;p&gt;We didn't use it, because I know using DynamoDB's gem Dynamoid that these libraries while convenient get in the way of using advanced features or obscures fine-tuning of queries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/alexbdebrie" rel="noopener noreferrer"&gt;Alex Debrie&lt;/a&gt; is his DynamoDB Book strongly advises against using any kind of ORM or ObjectMapper for DynamoDB and the same here applies to MongoDB.&lt;/p&gt;

&lt;p&gt;I've known out ORMs get in the way even when using Postgres, outing to just write simple Plain Ruby Objects along with raw SQL.&lt;/p&gt;

&lt;p&gt;Since we wanted to use MongoDB Atlas Search and were thinking about using Change Streams, Mongoid wasn't going to support these.&lt;/p&gt;

&lt;p&gt;Using the MongoDB Ruby Driver is quite straight forward.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installing GCloud
&lt;/h2&gt;

&lt;p&gt;GCloud is very well built CLI. Installing it is headache lol mostly due to how the docs are written.&lt;/p&gt;

&lt;p&gt;Other providers you can just copy a block a text and go, but GCP, you have to walk through all the instructions and pick out your scenario.&lt;/p&gt;

&lt;p&gt;To make life easier this is all the step you generally need for Ubuntu/Debian.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;apt-transport-https ca-certificates gnupg &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-key &lt;span class="nt"&gt;--keyring&lt;/span&gt; /usr/share/keyrings/cloud.google.gpg add -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;google-cloud-cli &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GCloud also takes longer to install then other Cloud CLIs, and so I could not create a &lt;code&gt;gitpod.yml&lt;/code&gt; file to just install it in my environment on launch because the long install time would cause a timeout.&lt;/p&gt;

&lt;p&gt;So I spent multiple times installing it, again and again on fresh environments.&lt;/p&gt;

&lt;p&gt;Commands I ended up memorizing since I ran them so many times were:&lt;/p&gt;

&lt;p&gt;Logging into google cloud&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Login required for deploying to Google Cloud Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud auth application-default login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Authenticating to push to container images to Artifact Registry&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud auth configure-docker &amp;lt;region&amp;gt;-docker.pkg.dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pushing to GCP Artifact Registry
&lt;/h2&gt;

&lt;p&gt;On other providers like AWS and Azure they give you one click copy and paste instructions to push to their respected managed container repository services.&lt;/p&gt;

&lt;p&gt;Not GCP lol. You have to figure out their docs, and its not a simple copy and paste.&lt;/p&gt;

&lt;p&gt;First you need authenicate so you can push to Artifact Registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud auth configure-docker us-east1-docker.pkg.dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you need to tag your build image with the artifact registry repo address:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker tag cruddur-app us-east1-docker.pkg.dev/cruddur/backend-sinatra/backend-sinatra:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you push&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker push us-east1-docker.pkg.dev/cruddur/backend-sinatra/backend-sinatra:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Renaming Build Image for Docker Compose
&lt;/h2&gt;

&lt;p&gt;Instead of building images indivually I would build them via docker compose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, docker compose will use your folder name (basically your project repo name) as the prepended name.&lt;/p&gt;

&lt;p&gt;My repo name is &lt;code&gt;mongodb-atlas-gcp-microblog&lt;/code&gt; and a container name in the docker-compose.yml file is &lt;code&gt;frontend-react&lt;/code&gt; so I'd end up in an image name:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mongodb-atlas-gcp-microblog-frontend-react&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;which is really long. So if you use the &lt;code&gt;-p&lt;/code&gt; flag you can override the prepend name&lt;/p&gt;

&lt;p&gt;So the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose -p cruddur build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Will then produce this as container image name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cruddur-frontend-react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Google Cloud Run Port requirements
&lt;/h2&gt;

&lt;p&gt;So I (re)discovered that Cloud Run expects your container to listen on port &lt;code&gt;8080&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So in the Dockerfile I had to figure out how to pass along Environment Variables to this file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM ruby:3.1.0

# sets the default port (it can still be overriden)
ENV PORT=4567

ADD . /app
WORKDIR /app
RUN bundle install
EXPOSE ${PORT}
CMD [ "sh", "-c", "bundle exec rackup --host 0.0.0.0 -p $PORT"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We could achieve that wi the &lt;code&gt;${PORT}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Notice I set &lt;code&gt;ENV&lt;/code&gt; instead of &lt;code&gt;ARG&lt;/code&gt;, ARG only works for the build, and I wanted this Environment Variable to persist when the container was running.&lt;/p&gt;

&lt;p&gt;Also I had to add &lt;code&gt;CMD [ "sh", "-c",&lt;/code&gt; otherwise the environment variable would have not been interpreted in the &lt;code&gt;CMD&lt;/code&gt; command. It would just show up blank.&lt;/p&gt;

&lt;p&gt;Notice I am doing this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"bundle exec rackup --host 0.0.0.0 -p $PORT"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And not this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"bundle exec rackup --host 0.0.0.0 -p ${PORT}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The former is just me reading the env var from the environment where the latter is actual interpolation in the template.&lt;/p&gt;

&lt;h2&gt;
  
  
  CORS, CORS, CORS!
&lt;/h2&gt;

&lt;p&gt;Once I attempted to have the frontend and backend talking to each other I ran into CORS, as always.&lt;/p&gt;

&lt;p&gt;So I installed &lt;code&gt;sintra-cors&lt;/code&gt;. There were a few different cors gems to choose from but this one was dead simple.&lt;/p&gt;

&lt;p&gt;Wildcarding on part of the domain eg. &lt;code&gt;.gitpod.io&lt;/code&gt; was not working, so I had to pass the full domains for both services to resolve cors.&lt;/p&gt;

&lt;p&gt;So when you deploy to Google Cloud Run they generate a endpoint URL so you can access the site.&lt;/p&gt;

&lt;p&gt;I thought I could get this endpoint url via an environment variables that might get set by default by Cloud Run so that I could whitelist these endpoints for CORS.&lt;/p&gt;

&lt;p&gt;This is not the case. I thought maybe there could been some very convoluted way using the Google SDK to try and get the endpoint URL dynamically but, there was a race case of collecting all the needed endpoints at different start times.&lt;/p&gt;

&lt;p&gt;Again, I could not wildcard on part of the domain, but honestly thats a bad practice since I don't need all of Google Cloud Run endpoints urls allow to bypass CORS.&lt;/p&gt;

&lt;p&gt;So That meant I would need a custom domain, and so we'd need a GCP Load Balancer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom Domain with Load Balancer
&lt;/h2&gt;

&lt;p&gt;So I already had my domain registered on Amazon Route53. &lt;/p&gt;

&lt;p&gt;Google Cloud can generate an SSL for you with Google-Managed SSL. While I attempted to point an A record to the GCP Load Balancer while the hosted zone was managed by Amazon Route53, the SSL certificate was failing to provision.&lt;/p&gt;

&lt;p&gt;I don't know if this solved it, but I updated the domain name servers to google and then use Cloud DNS to use the A Record to point the GCP Load Balancer and this worked to generate an SSL certificate for Google-Managed SSL Certificates.&lt;/p&gt;

&lt;p&gt;I found that it took 30 minutes for the SSL Certificate to generate, but you have to remember to point the A record to the load balancer or it will say it failed. You don't need to restart the certificate process, it would figure it out after a few minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provisioning the GCP Load Balancer with Terraform
&lt;/h2&gt;

&lt;p&gt;There is a &lt;a href="https://registry.terraform.io/modules/GoogleCloudPlatform/lb-http/google/latest" rel="noopener noreferrer"&gt;GCP Terraform module&lt;/a&gt; for setting up a load balancer and all of its components.&lt;/p&gt;

&lt;p&gt;There are examples on the Terraform Registry website, and there were different versions so I had to find an &lt;a href="https://github.com/terraform-google-modules/terraform-google-lb-http/blob/v6.3.0/examples/multi-backend-multi-mig-bucket-https-lb/main.tf" rel="noopener noreferrer"&gt;example with  &lt;code&gt;5.1&lt;/code&gt;&lt;/a&gt; version for multi-backend with pathing.&lt;/p&gt;

&lt;p&gt;I don't know if this is module managed by Terraform or GCP but it could use more documentation, but I could figure things out for the most part by just looking at various examples.&lt;/p&gt;

&lt;p&gt;I forgot this option when piecing different examples together:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  create_url_map    = false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And so this caused there to be two load balancer, once pointing to just my API and another with both my backends with no frontends.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phantom CORS issues
&lt;/h2&gt;

&lt;p&gt;I thought I had the CORS issues behind me, but they started happening again.&lt;/p&gt;

&lt;p&gt;We eventually discovered that the &lt;code&gt;MONGO_ATLAS_URL&lt;/code&gt; environment variable was not being set. Why this through a CORS issues, I don't know, but once we ensure the env var was being set and passed to the container no more CORS issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  MongoDB Local Development Skipped
&lt;/h2&gt;

&lt;p&gt;I was thinking of using in my &lt;code&gt;docker-compose.yml&lt;/code&gt; a local container of MongoDB before using MongoDB Atlas directly.&lt;/p&gt;

&lt;p&gt;However I realized we would have to use a direct connection to a MongoDB Atlas database because (as far as I know) there is no local container that runs these more exotic features of MongoDB Atlas such as search.&lt;/p&gt;

&lt;h2&gt;
  
  
  MongoDB Atlas UI
&lt;/h2&gt;

&lt;p&gt;It was straight forward.&lt;/p&gt;

&lt;p&gt;I did have to hunt down in the UI, Database Access to reset the database user password.&lt;/p&gt;

&lt;p&gt;For Network Access, I wasn't sure if I had to whitelist the GCP Load Balancer, like, would the Cloud Run containers IP address be the GCP Load Balancer IP address, so instead I just said, &lt;code&gt;Allow Access from Anywhere&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  MongoDB Atlas Search
&lt;/h2&gt;

&lt;p&gt;Before you can create an index for search you need to populate data in your database.&lt;/p&gt;

&lt;p&gt;To setup the index I just click straight though all the configuration options.&lt;/p&gt;

&lt;p&gt;The documentation for MongoDB Atlas Search for Ruby was incomplete (according Bayko my co-founder) so he had to I guess look at the API Specification or dig through the MongoDB Driver.&lt;/p&gt;

&lt;p&gt;He had to use &lt;code&gt;$search&lt;/code&gt; option along with the &lt;code&gt;aggregate&lt;/code&gt; option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;      &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;search_document&lt;/span&gt; &lt;span class="n"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;document&lt;/span&gt;
        &lt;span class="n"&gt;attrs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
          &lt;span class="s1"&gt;'$search'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="s1"&gt;'index'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'default'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'text'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
              &lt;span class="s1"&gt;'query'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="s1"&gt;'path'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'message'&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},{&lt;/span&gt; 
          &lt;span class="s1"&gt;'$limit'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; 
        &lt;span class="p"&gt;}]&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="n"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;aggregate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
          &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="n"&gt;document&lt;/span&gt;
        &lt;span class="k"&gt;end&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Data Modelling for MongoDB
&lt;/h2&gt;

&lt;p&gt;Uhh... We didn't have to do anything special? &lt;/p&gt;

&lt;p&gt;With DynamoDB even for the simplest of tables I have to plan GSI, LSI, the partition key and sort key.&lt;/p&gt;

&lt;p&gt;With MongoDB we just dump data in, and it worked. No thought or plan involved.&lt;/p&gt;

&lt;p&gt;Maybe if we had replies, followerships, shares, things like that then Data Modeling would have been something we would have had to consider more.&lt;/p&gt;

&lt;h2&gt;
  
  
  GCP Load Balancer "Classic"
&lt;/h2&gt;

&lt;p&gt;Using the GCP Terraform Module deploys the Classic version of the GCP Load Balancer. I couldn't figure out the difference between &lt;code&gt;Classic&lt;/code&gt; and current LB.&lt;/p&gt;

&lt;p&gt;I don't think I want to be using Classic but I didn't want to spend the time setting up all the individual resources in the terraform file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Classic in AWS for Load Balancers is something not recommend for use anymore&lt;/li&gt;
&lt;li&gt;Classic in Azure for Load Balancers is just an lighter alternate to Azure Front Door&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In GCP I don't know, but GCP does like to sunset their products, so I don't really want to be on &lt;code&gt;Classic&lt;/code&gt; lol.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The easiest part of this entire project was MongoDB Altas and the MongoDB API. &lt;/p&gt;

&lt;p&gt;So much time was taken up just deploying and troubleshooting multiple containers and the Cloud Service Providers (CSPs) cloud infrastructure.&lt;/p&gt;

&lt;p&gt;But honestly thats the story for any CSPs, whether it's AWS, Azure or GCP.&lt;/p&gt;

&lt;p&gt;GCP Cloud Run by far is the easiest serverless container offering from a 1st tier CSP.&lt;/p&gt;

&lt;p&gt;GCP is really great, their docs just need a bit of work, and their Terraform modules needs a bit of love.&lt;/p&gt;

&lt;p&gt;MongoDB gets DX great as always.&lt;/p&gt;

</description>
      <category>atlashackathon22</category>
      <category>terraform</category>
      <category>googlecloud</category>
      <category>ruby</category>
    </item>
    <item>
      <title>You're running an online conference but get called out for having an all-male speaker lineup 2 days prior. Yo, What do you do?</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Sun, 04 Dec 2022 17:31:18 +0000</pubDate>
      <link>https://dev.to/andrewbrown/youre-running-an-online-conference-but-get-called-out-for-having-an-all-male-speaker-lineup-2-days-prior-yo-what-do-you-do-2m58</link>
      <guid>https://dev.to/andrewbrown/youre-running-an-online-conference-but-get-called-out-for-having-an-all-male-speaker-lineup-2-days-prior-yo-what-do-you-do-2m58</guid>
      <description>&lt;h2&gt;
  
  
  We just wanted to get folks into serverless...
&lt;/h2&gt;

&lt;p&gt;Imagine you are are a small-time startup trying to build a serverless framework along with a serverless platform.&lt;/p&gt;

&lt;p&gt;Maybe after reading Andrew's Brown think piece "Serverless is ready, but users are not" you decide to get more folks into serverless by hosting an online conference around emerging serverless SaaS offerings.&lt;/p&gt;

&lt;p&gt;You register a funny domain around a headline like "Is Serverless Ready?" and many LOLs ensue.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1598033946914062336-301" src="https://platform.twitter.com/embed/Tweet.html?id=1598033946914062336"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1598033946914062336-301');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1598033946914062336&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;So you reach into your own personal network, and assemble a speaker list from other small-time SaaS offerings along with some community members.&lt;/p&gt;

&lt;p&gt;As the online conference approaches, you repromote the event and oh no....&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1598132429201416192-297" src="https://platform.twitter.com/embed/Tweet.html?id=1598132429201416192"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1598132429201416192-297');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1598132429201416192&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Your conference is getting called out by notable Women in Serverless for having an all-male lineup. &lt;/p&gt;

&lt;p&gt;The conference is in a couple of days.&lt;/p&gt;

&lt;p&gt;Yo, what do we do?&lt;/p&gt;

&lt;p&gt;After some googling you come across Andrew Brown's &lt;em&gt;&lt;strong&gt;suggested&lt;/strong&gt;&lt;/em&gt; guide titled &lt;a href="https://dev.to/andrewbrown/youre-running-an-online-conference-but-get-called-out-for-having-an-all-male-speaker-lineup-2-days-prior-yo-what-do-you-do-2m58"&gt;"You're running an online conference but get called out for having an all-male speaker lineup 2 days prior. Yo, What do you do?"&lt;/a&gt; and proceed to read these 6 Suggestions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 1: Accept, Acknowledge and Apologize
&lt;/h2&gt;

&lt;p&gt;Firstly, you accept that you made a mistake during the execution of your conference. This is an internal dialog you need to say to yourself. Put any internal excuses aside eg. "We're just a small company with a small budget" and simply accept it. &lt;/p&gt;

&lt;p&gt;Once you've accepted where you are now, the next thing to acknowledge are the shortcomings directly which could be something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We booked an all-male speaker lineup&lt;/li&gt;
&lt;li&gt;We failed to have a open CFP&lt;/li&gt;
&lt;li&gt;We failed to have mechanisms in-place to uplift a more diverse speaker list&lt;/li&gt;
&lt;li&gt;We rushed into an online conference&lt;/li&gt;
&lt;li&gt;We failed to build and maintain a diverse network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now with acceptance and acknowledge out of the way we can deliver a strong apology. The purpose of an apology is to lay up a community promise which will be the start of our course correction. Just please, don't put any excuses in the apology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 2: Cancel the Conference
&lt;/h2&gt;

&lt;p&gt;I crunched the numbers and sorry buddies but I think the best route is to cancel the conference.&lt;/p&gt;

&lt;p&gt;Even if you do suggestion 1, if you proceed with the conference with no corrections it will undo all your efforts of suggestion 1.&lt;/p&gt;

&lt;p&gt;If you throw in a few diverse folks into the lineup last minute (which right now would be super awkward for anyone to accept), its not going to do shit for you because it just shows how poorly planned the conference was. &lt;/p&gt;

&lt;p&gt;Just cancel, its an online conference LOL. Its not like you have paid sponsors, or physical costs.&lt;/p&gt;

&lt;p&gt;I say "cancel" instead of "reschedule" because lets signify we are doing a "hard refresh". Let's plan for Serverless Conference 2.0 and there are other things you need to do first before you even think about doing a conference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 3: Build Your Diverse Network
&lt;/h2&gt;

&lt;p&gt;First ask yourself, Why did you end up with an all-male lineup?&lt;/p&gt;

&lt;p&gt;This is what I'm thinking you're thinking:&lt;/p&gt;

&lt;p&gt;"We wanted to focus on emerging serverless devtools and we wanted to go as expert as we could in each respected tool so their collective voice would tell you Serverless is Ready. Why is it our fault they're all dudes? Thats all we could get" &lt;/p&gt;

&lt;p&gt;But dudes (and I know you're dudes) listen. &lt;/p&gt;

&lt;p&gt;The bar to expert is low, (I know this for sure) because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I make a course on Terraform, now I'm Terraform expert&lt;/li&gt;
&lt;li&gt;I run a single workshop on K8s now I'm a K8s expert&lt;/li&gt;
&lt;li&gt;I do a Twitter-Space panel on GCP I'm now a GCP expert&lt;/li&gt;
&lt;li&gt;I do fast-track talk on Security at a local meetup and I'm a AWS Security expert&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can flip or uplift basically anyone into an expert within a couple of good event opportunities. &lt;/p&gt;

&lt;p&gt;Why aren't their more PoC, Womxn or Neurodivergent or etc if its so easy to become an expert?&lt;/p&gt;

&lt;p&gt;Because many of our legacy "expert making" spaces where folks are flipped into experts are not inclusive or conducive for these folks. &lt;/p&gt;

&lt;p&gt;When we pull from the most "expert of experts" the folks that have had years to climb the track are going to be overwhelming males.&lt;/p&gt;

&lt;p&gt;Why is your network not diverse? Thats on you.&lt;/p&gt;

&lt;p&gt;You can go on Twitter search #BlackTechTwitter and start filling your feed with folks that don't look like you and figure it out from there.&lt;/p&gt;

&lt;p&gt;Its not a fast process it honestly could take 6 months to 2 years. &lt;/p&gt;

&lt;p&gt;This is why you haven't seen me put on an online conference, because I want to have this stuff in place before I do anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 3: Plan for an open CFP
&lt;/h2&gt;

&lt;p&gt;If there is open Call For Proposal (CFP) I sure is heck didn't see it.&lt;/p&gt;

&lt;p&gt;Have this at least 3 months out and ensure folks know about it.&lt;/p&gt;

&lt;p&gt;Make it really easy for folks and tell exactly what you want.&lt;br&gt;
Ruby always done a great job of this:&lt;br&gt;
&lt;a href="https://cfp.rubycentral.org/events/rubyconf-2022" rel="noopener noreferrer"&gt;https://cfp.rubycentral.org/events/rubyconf-2022&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 4: Clear Table Stakes
&lt;/h2&gt;

&lt;p&gt;When I'm running my AWS User Group I start each event with clear table steaks about creating an inclusive space.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I let neurodiverse folks know there is is a private channel of communication to me so they can for future accommodation so the events are inclusive for them&lt;/li&gt;
&lt;li&gt;I let women know they don't need to go on-camera or that I will not tolerant unwanted attention from other community members&lt;/li&gt;
&lt;li&gt;I let beginner know I'm not going to put up with the "back-of-the-room" "uh actually" stumper questions that make the idea of being a speaker such an anxiety-enduced experience&lt;/li&gt;
&lt;li&gt;I let speakers know I provide 1-on-1 private sessions prior to events to help them maximize their outcome to get flipped to "expert" &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tell folks upfront, what are going to do to make this conference/event thing work for everyone?&lt;/p&gt;

&lt;p&gt;If this too much work for you, sorry you should not be running a conference. &lt;/p&gt;

&lt;p&gt;Its like folks thinking they can run their own Twitter Clone or Social media but they don't want to bother with Content Moderation and Trust of Safety lol.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 5: Mentor in Other Successful Communities
&lt;/h2&gt;

&lt;p&gt;If you try and build that network, if you trying to signal to folks this space is safe for your conference or event, but you aren't get anywhere, then instead of doing your own thing, contribute and learn with other folks that are doing it better than you.&lt;/p&gt;

&lt;p&gt;ServerlessDays has done better, so be part of their community, until you can get traction on your own and try to match suite yourself or do better.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://student.serverlessdays.io/" rel="noopener noreferrer"&gt;https://student.serverlessdays.io/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggestion 6: Turn your critics into your best allies
&lt;/h2&gt;

&lt;p&gt;Nobody likes facing the folks that "called them out" but sometimes these folks turn out to be the best folks you can turn into allies.&lt;/p&gt;

&lt;p&gt;Don't expect them to do the work for you, since educating and doing the leg work yourself is your responsibly, but if they're open to letting you listen and they want to do more, it can be great (especially decide to put on a conference again)&lt;/p&gt;

&lt;p&gt;So reach out privately (or publicly) to the folks that called you out, offer personalized apologies and see where it goes from there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;✌️ ❤️ I'm hoping this provides a positive outcome to anyone running a conference. Peace and love everyone &lt;/p&gt;

&lt;p&gt;❤️‍🔥 💬 I haven't ran a conference myself, so anyone who wants to "tap in" here with more experience than me and light up the comments lets hear it!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>devto</category>
    </item>
    <item>
      <title>What if DEV became the new Twitter-like platform for developers?</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Fri, 11 Nov 2022 04:14:40 +0000</pubDate>
      <link>https://dev.to/andrewbrown/what-if-dev-became-the-new-twitter-like-platform-for-developers-16kc</link>
      <guid>https://dev.to/andrewbrown/what-if-dev-became-the-new-twitter-like-platform-for-developers-16kc</guid>
      <description>&lt;p&gt;Just playing a "what-if" game. &lt;/p&gt;

&lt;p&gt;Do you think if Dev tweaked its content publishing model it might bring folks back in droves to Dev.to?&lt;/p&gt;

&lt;p&gt;This is my personal opinion but as Dev audience has grown, the quality of posts have worsened, if Dev were just to extend headings to be the length of twitter posts with body articles being optional and more inline chat, could you imagine that?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Twitter &lt;&gt; Andrew</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Wed, 26 Jan 2022 18:59:17 +0000</pubDate>
      <link>https://dev.to/andrewbrown/twitter-devrel-andrew-440k</link>
      <guid>https://dev.to/andrewbrown/twitter-devrel-andrew-440k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I was in a Twitter Space with the DevRel team, unforently. Twitter Spaces was crashing so I decided to outline feedback for the DevRel team here, and also to provide feedback to the Product team.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I am always looking for creative ways to provide an interactive experience to my followers, or to find a way of extending my Twitter community with an accompanying app.&lt;/p&gt;

&lt;p&gt;I have a bunch of ideas but did not have time to outline them here.&lt;/p&gt;

&lt;h2&gt;
  
  
  DevRel Team
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Twitter SDKs
&lt;/h3&gt;

&lt;p&gt;DevRel team was saying that Twitter was too small of a company to support an official SDK in multiple libraries.&lt;/p&gt;

&lt;p&gt;With the rise of cloud, being a polygot programmer is quite common. Let us have at least one official SDK.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter OAuth for Common Web Frameworks
&lt;/h3&gt;

&lt;p&gt;The largest friction of getting a Twitter App going is OAuth.&lt;br&gt;
Everytime I create a Twitter app I have issues and it's hard to know why. &lt;/p&gt;

&lt;p&gt;Just having sample apps that are known to work with up to date instructions could be used to help me debug my own apps or at least just build using different technology.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ruby on Rails&lt;/li&gt;
&lt;li&gt;Laravel&lt;/li&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;NextJs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The language used for Twitter Projects is not the same defined for OAuth and so there is some technical uncertainty when implementing. &lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter API - Twitter Space Analytics
&lt;/h3&gt;

&lt;p&gt;Be able to extract analytics data from previous spaces &lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter API - Find list of previous spaces
&lt;/h3&gt;

&lt;p&gt;Be able to extract all my previous spaces&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;duration&lt;/li&gt;
&lt;li&gt;start time &lt;/li&gt;
&lt;li&gt;date&lt;/li&gt;
&lt;li&gt;title&lt;/li&gt;
&lt;li&gt;speakers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Twitter API - Create a Space
&lt;/h3&gt;

&lt;p&gt;I want to be able to create a space via an API endpoint &lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter API - Download a Space Recording
&lt;/h3&gt;

&lt;p&gt;I want to be able to download or trigger a space to be delivered for download to my email.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter API - Twitter Blue Long Videos
&lt;/h3&gt;

&lt;p&gt;Does the API support long-form videos?&lt;br&gt;
I will have to test to find out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.twitter.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-upload"&gt;https://developer.twitter.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-upload&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Team
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Crashing Twitter Spaces on Android
&lt;/h3&gt;

&lt;p&gt;Twitter Spaces on the Android app crashes alot.&lt;/p&gt;

&lt;p&gt;On the Twitter Space with the DevRel team, the app crashes six times. &lt;/p&gt;

&lt;p&gt;If you're a speaker reconnecting it does not put you back to your previous status.&lt;/p&gt;

&lt;p&gt;It's to the point where I'm considering getting an iOS device.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speakers and Reactions in a Twitter Space not possible on the Web Desktop
&lt;/h3&gt;

&lt;p&gt;In order to be a speaker or reactions, you have to use the mobile app.&lt;/p&gt;

&lt;p&gt;I'd say 90% of my guest speakers make the mistake of joining from the Desktop Web.&lt;/p&gt;

&lt;p&gt;I have a pre-show checklist, remind my speakers, but they still join initially from the desktop.&lt;/p&gt;

&lt;p&gt;I would personally like to join from my Web Desktop, so I utilize my expensive RE20 microphone.&lt;/p&gt;

&lt;p&gt;I can plug my USB preamp into my phone but I cannot monitor, and while running an experiment with an external USB microphone with a guest speaker the audio was worse.&lt;/p&gt;

&lt;p&gt;Reactions would be great and seem like a low-hanging fruit for Web Desktop. At the start of the Twitter show I like to engage reoccurring guests by waving to them.&lt;/p&gt;

&lt;p&gt;If they are joining on Web Desktop they can't receive a reaction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting Point for Twitter Space Query String does not work.
&lt;/h3&gt;

&lt;p&gt;I noticed that when sharing a Twitter Space in the query string you can set the start time. This is useful if you&lt;/p&gt;

&lt;h3&gt;
  
  
  Analytics for current and previous shows
&lt;/h3&gt;

&lt;p&gt;In order to get an idea of analytics, I have to constantly collapse my space to see real-time attendance.&lt;/p&gt;

&lt;p&gt;I noticed only when I record my space do I get end show analytics eg:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unique listeners during the entire space&lt;/li&gt;
&lt;li&gt;highest amount of people joined at a given time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don't manually capture that data, you can't ever see it again. This is a bigger problem when a space crashes and reconnect does not happen ending the space.&lt;/p&gt;

&lt;p&gt;Analytics are important for my guest speakers since they can report back the analytics to their organization.&lt;/p&gt;

&lt;p&gt;It would also help me know if my spaces are growing, what are the trends so I can better optimize time and day.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creation and Sharing Spaces
&lt;/h3&gt;

&lt;p&gt;Its a real pain to create a space from the phone. I really wish I could just create them from the Desktop.&lt;/p&gt;

&lt;p&gt;To promote my spaces I will create a banner graphic and then in the reply show the Twitter Space.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/andrewbrown/status/1486350343084687362"&gt;https://twitter.com/andrewbrown/status/1486350343084687362&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I always create this from the desktop because if I wanted to post from my phone I have to download the graphic to my phone, and then when I try and post the banner graphic Twitter 90% hands forever trying to upload the banner. Reducing the banner size does not help.&lt;/p&gt;

&lt;p&gt;In order to add the Twitter Space reminder as reply, the share functionality is really buggy. &lt;/p&gt;

&lt;p&gt;I can't email it to myself, so next Ill try to DM it to someone. The search for DMs doesn't work properly so most of the time I end up just DM someone randomly so I can then log into the Web Desktop and copy it. Sometimes that doesn't work so I have to write out the Twitter Space manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can only schedule one space in advance
&lt;/h3&gt;

&lt;p&gt;In order to have a decent showing I need to market the space in advance and need people to set reminders.&lt;/p&gt;

&lt;p&gt;However, you can only schedule 1 space at a time only 2 weeks in advance.&lt;/p&gt;

&lt;p&gt;So my marketing is pinning the event.&lt;/p&gt;

&lt;p&gt;I really wish I could schedule multiple spaces, so people could set reminders. &lt;/p&gt;

&lt;p&gt;I wish I could just schedule all my spaces, then do an "upcoming show thread", and then in each of the replies have the reminders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/andrewbrown/status/1481723079642521604"&gt;https://twitter.com/andrewbrown/status/1481723079642521604&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Due to the current restrictions, I can only have a space every 2-3 days. If I could schedule multiple spaces I could have a good showing daily and sometimes I want to do daily spaces.&lt;/p&gt;

&lt;p&gt;I tried to do AWS re:Invent virtually, and I had to create my own public calendar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reinvent2021.100daysofcloud.com/"&gt;https://reinvent2021.100daysofcloud.com/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Filters previous Twitter Spaces
&lt;/h3&gt;

&lt;p&gt;I wish I could quickly filter my previous twitter spaces based on recordings.&lt;br&gt;
I have Twitter Blue and I suppose I could use Bookmarks. &lt;br&gt;
Currently, I organize them using Blackmagic.so&lt;/p&gt;

&lt;h3&gt;
  
  
  Downloading Twitter Space Recordings
&lt;/h3&gt;

&lt;p&gt;No idea how to download them. People say request a backup of your data. I've tried this 5 times. Never got the email. So I have no idea of the raw recordings would be here.&lt;/p&gt;

&lt;p&gt;I really want to clip out soundbites to create an audiogram to reneged past events or drive people from LinkedIn over to Twitter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Social Card for Twitter Spaces
&lt;/h3&gt;

&lt;p&gt;When I share a direct like to a Twitter Space recording / set reminder, it just shows my Name and Avatar. So I have to then create my own graphic and then put the link, but on LinkedIn people are clicking on the graphic which goes no where.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter Space Banner
&lt;/h3&gt;

&lt;p&gt;I really wish I could upload a banner graphic that is set as the background of the Recording / Set Reminder. &lt;/p&gt;

&lt;p&gt;This way I would not have to have to reply and bury the recording.&lt;/p&gt;

&lt;p&gt;If the embedded Recording / Set Reminder / Listener box allowed me to tag who the guest speakers then I would probably skip a graphic altogether.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speaker Creep
&lt;/h3&gt;

&lt;p&gt;Sometimes people who are looking to grow their audience want to come up as a speaker just so they can get follows or be marked as a speaker.&lt;/p&gt;

&lt;p&gt;I wish I could designate who the speakers are for the space to mitigate these clout chasers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter Blue - Long Videos
&lt;/h3&gt;

&lt;p&gt;I was not sure of Twitter Blue Longer Videos were only for other Twitter Blue folks, or only on Web. So I delayed getting Twitter Blue for months until someone who already used it confirmed the behaviour.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter Blue - Undo
&lt;/h3&gt;

&lt;p&gt;I find this feature incredibly useful because I'm dyslexic and I find until I publish then I notice my mistake deleted and this happens like 5 times. Undo feature is great!&lt;/p&gt;

&lt;p&gt;I wish the Undo and Send Now buttons where swapped so Send now is on the right.&lt;/p&gt;

&lt;p&gt;I sometimes find myself going back to Undo because I keep thinking the right button will publish based on how another platform would place and highlight their publish button.&lt;/p&gt;

&lt;h3&gt;
  
  
  Super Followers - Canada
&lt;/h3&gt;

&lt;p&gt;I create alot of educational content for tech and cloud. On average 100 videos per week.&lt;/p&gt;

&lt;p&gt;It would be easy for me to produce exclusive paid content on the platform, like create an entire course but Super Followers is not available in Canada, so I cannot deliver this experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Revue Newsletter
&lt;/h3&gt;

&lt;p&gt;I wanted to do a rollup of my best tweets and expand on them in a Revue Newsletter but I realized that Revue Newsletter takes up too much real estate at top of the fold, hurting my numbers for pinning things like Twitter Spaces.&lt;/p&gt;

&lt;p&gt;I have found rotating pinned content essential for my community growth.&lt;/p&gt;

&lt;p&gt;I have not seen much success with other Revue Newsletters on much larger Twitter accounts.&lt;/p&gt;

&lt;h3&gt;
  
  
  TwitterSpace Recording Icon
&lt;/h3&gt;

&lt;p&gt;Every time I run a Twitter Space: "Is it recorded?"&lt;br&gt;
An indicator would be great.&lt;br&gt;
I guess I could just put a graphic in my banner that would mitigate this issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blocked People in Twitter Space
&lt;/h3&gt;

&lt;p&gt;I ended up on a Twitter Space with two people I blocked. &lt;br&gt;
My block rate is in the single digits.&lt;/p&gt;

&lt;h3&gt;
  
  
  People You Might Like
&lt;/h3&gt;

&lt;p&gt;Twitter recommends me, people, I do not like and I can never dismiss so I have to see the same recommendation on Desktop every time I join.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter Space - Categories
&lt;/h3&gt;

&lt;p&gt;Twitter updated it so you choose a category title and a sub title. The entirety of the Technology category was Crypto, and other junk topics. I eventually found after a few spaces "Tech events" in the middle of the tag cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter Communities
&lt;/h3&gt;

&lt;p&gt;You can create communities eg. AWS, Google Cloud, Cloud Native where tweets are scoped to a community.&lt;/p&gt;

&lt;p&gt;How to create a community was unknown to me, and so these communities ended up getting scooped and are essentially being run by people who are just sitting on the community name, blocking any further community development.&lt;/p&gt;

&lt;p&gt;I could put effort into these communities but it's frustrating that someone else will always be moderators/organizers of the space, so I'm helping someone else grow for someone else.&lt;/p&gt;

</description>
      <category>twitter</category>
    </item>
    <item>
      <title>Will you consider your carbon footprint when configuring your compute workloads?</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Fri, 30 Jul 2021 16:49:12 +0000</pubDate>
      <link>https://dev.to/andrewbrown/will-you-consider-your-carbon-footprint-when-configuring-your-compute-workloads-2gf0</link>
      <guid>https://dev.to/andrewbrown/will-you-consider-your-carbon-footprint-when-configuring-your-compute-workloads-2gf0</guid>
      <description>&lt;p&gt;At Google, engineers get to spend 20% of their time on internal projects of their own design and Steren built a free public-facing customer tool to help you consider the carbon footprint when provisioning your resources in a specific region.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1384542442536333315-384" src="https://platform.twitter.com/embed/Tweet.html?id=1384542442536333315"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1384542442536333315-384');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1384542442536333315&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1384542442536333315-517" src="https://platform.twitter.com/embed/Tweet.html?id=1384542442536333315"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1384542442536333315-517');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1384542442536333315&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqp8fbtt6asgw795gbo1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqp8fbtt6asgw795gbo1.png" alt="Screen Shot 2021-07-30 at 12.12.57 PM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you expand the cards you get a bit more detail.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjl37utvy0bomict80fn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjl37utvy0bomict80fn.png" alt="Screen Shot 2021-07-30 at 12.25.53 PM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try the &lt;a href="https://cloud.withgoogle.com/region-picker/" rel="noopener noreferrer"&gt;Google Cloud Carbon Footprint Region Picker&lt;/a&gt; yourself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you think you will ever consider your carbon-foot print when using cloud services?&lt;/li&gt;
&lt;li&gt;Would you ever want to see a carbon-foot print as part of the cost and usage reporting within your cloud service provider (CSPs)? &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Did you know there is a Forem server just for just the cloud? &lt;a href="https:///www.thedev.cloud" rel="noopener noreferrer"&gt;www.thedev.cloud&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="(https:///www.thedev.cloud)"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8nxmzmstl05jouj4ws0t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>discuss</category>
    </item>
    <item>
      <title>This is what gatekeeping looks like in the cloud industry (or how to not be a reply guy)</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Tue, 20 Jul 2021 16:43:45 +0000</pubDate>
      <link>https://dev.to/andrewbrown/this-is-what-gatekeeping-look-like-in-the-cloud-industry-j17</link>
      <guid>https://dev.to/andrewbrown/this-is-what-gatekeeping-look-like-in-the-cloud-industry-j17</guid>
      <description>&lt;p&gt;I was recently working on expanding the definition of &lt;strong&gt;multi-cloud&lt;/strong&gt; based on what I had observed as a shift in language being used by cloud vendors and cloud service providers.&lt;/p&gt;

&lt;p&gt;So I thought to go to twitter to give a two sentence example of the expansion of the term to gauge interest before I wrote a new article.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1417311864338403332-688" src="https://platform.twitter.com/embed/Tweet.html?id=1417311864338403332"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1417311864338403332-688');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1417311864338403332&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;My primary goal is to make cloud more accessible by being inclusive of people who do not yet use a cloud service provider (CSP) but primary rely on cloud services like Heroku, Github, JIRA to treat them like first-class cloud citizens.&lt;/p&gt;

&lt;p&gt;I am open to hearing people voice their thoughts, but when it becomes a back and forth, where I've been pulled into unwanted argument that doesn't relent, when my replies serve to save face and the end the conversation for future discussion on a more suited platform, and yet the person continues I know I am experiencing gatekeeping.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1417507981999190019-645" src="https://platform.twitter.com/embed/Tweet.html?id=1417507981999190019"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1417507981999190019-645');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1417507981999190019&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  What does gatekeeping look like in the cloud industry? 👇
&lt;/h2&gt;

&lt;p&gt;Gatekeeping comes in many forms, and one form of gatekeeping which is the easiest to come across is the argument around the definition of emerging terminologies. For example:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;When someone argues &lt;strong&gt;DevOps&lt;/strong&gt; isn't a thing, because they were doing this stuff before DevOps existed, and they relentlessly argue the dismantling of the term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When someone argues &lt;strong&gt;Zero Trust Model&lt;/strong&gt; isn't a thing, because they were doing this stuff before Zero Trust Model existed, and they relentlessly argue the dismantling of the term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When someone argues &lt;strong&gt;Multi-cloud term&lt;/strong&gt; can't be expanded or changed, because they were doing this stuff and have an expected definition, and they relentlessly argue any form of change of the term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When someone argues that &lt;strong&gt;Serverless&lt;/strong&gt; has to be described as a mindset and can't just be utilizing serverless services because they were doing this stuff before anyone else was doing this stuff.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While it's possible that terms may be overused and become annoying, you need to consider terms like DevOps have done more to bring people into the fold of systems operations than would not have been.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gatekeeper's thoughts about gatekeeping
&lt;/h2&gt;

&lt;p&gt;If you were to confront a gatekeeper, its not hard to predict the outcome:&lt;/p&gt;

&lt;p&gt;A gatekeeper's first thought is we cannot have any discussion around tech terminologies because they'll be viewed upon as gatekeeping! Evenly possibly its a silencing or muting tactic to surpass criticism. &lt;/p&gt;

&lt;p&gt;To which I say, we can have productive conversations, but you need to be aware of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your position in the hierarchy relative to who you're talking to&lt;/li&gt;
&lt;li&gt;the format of the discussion and its limitations&lt;/li&gt;
&lt;li&gt;the intended shared outcome &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;before you &lt;strong&gt;open your mouth to begin a discussion&lt;/strong&gt; so it does not become an argument.&lt;/p&gt;

&lt;h2&gt;
  
  
  Once a gatekeeper not always a gatekeeper
&lt;/h2&gt;

&lt;p&gt;I am certain that I have had instances of gatekeeping in the past. (I am Star Trek fan!) &lt;/p&gt;

&lt;p&gt;But it's not a permanent label, and it can be mild to severe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it Gatekeeping and Self-preservation?
&lt;/h2&gt;

&lt;p&gt;I think Chris had a good thought here.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1417527527107665923-749" src="https://platform.twitter.com/embed/Tweet.html?id=1417527527107665923"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1417527527107665923-749');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1417527527107665923&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Is there a distinguish between Gatekeeping and Self-preservation, and can one be acting in a Self-preservation way without also being a gatekeeper?&lt;/p&gt;

&lt;p&gt;I would think that to preserve one's position, a bi-product of that would be gatekeeping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It's not my goal here to convince a person they are gatekeeping, for you to confront instances of gatekeepers, but to validate that it does occur, and what I think it looks like.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does gatekeeping look like to you? &lt;/li&gt;
&lt;li&gt;Do you have any personal stories you can could share with us?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>aws</category>
      <category>azure</category>
    </item>
    <item>
      <title>Is PolyWork the new LinkedIn for Developers?</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Thu, 17 Jun 2021 13:41:28 +0000</pubDate>
      <link>https://dev.to/andrewbrown/is-polywork-the-new-linkedin-for-developers-5hae</link>
      <guid>https://dev.to/andrewbrown/is-polywork-the-new-linkedin-for-developers-5hae</guid>
      <description>&lt;p&gt;P.S. I just want to frontload this article to ask you what is your opinion about the new professional network? I'd love to read the comments. I want to get the conversation going so this is why I wrote this long form post.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Polywork?
&lt;/h2&gt;

&lt;p&gt;Polywork is a professional network, and it could be described as an alternative to LinkedIn though It would be better to compare them as the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn — A resume directory with a social-professional network built adjacent to your resume profile.&lt;/li&gt;
&lt;li&gt;Polywork — A historical professional portfolio or journal that also is the social-professional network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think the co-founder was previously a designer at Google, and the marketing and onboarding give you a strong impression that UX is this team's immediate strength.&lt;/p&gt;

&lt;p&gt;UX alone is not enough, so let us dive into a few thoughts about this new platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can I do in Polywork?
&lt;/h2&gt;

&lt;p&gt;Polywork as of the time of this article is incomplete. They are slowly bringing users into their network via invites and with a strong feedback loop, ensuring the features they engineer will deliver on their service's core principles.&lt;/p&gt;

&lt;p&gt;What you can currently do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a profile&lt;/li&gt;
&lt;li&gt;choose an AI assistant&lt;/li&gt;
&lt;li&gt;create posts to your professional timeline (you can backdate to anytime)&lt;/li&gt;
&lt;li&gt;follower other users&lt;/li&gt;
&lt;li&gt;contact other users via strictly defined opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What you cannot do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you cannot like a post&lt;/li&gt;
&lt;li&gt;you cannot comment on a post&lt;/li&gt;
&lt;li&gt;you share a post to your professional timeline&lt;/li&gt;
&lt;li&gt;you cannot see public metrics about posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of these "cannots" I think, are by design, and others are latent features yet to be released. I think we can expect to see commenting, and I think Polywork may decide not to have likes or show metrics.&lt;br&gt;
The latter is a strong possibility when we see Instagram talking about giving its users the options to hide mentions and metrics. &lt;/p&gt;

&lt;p&gt;This stems from being socially aware of the negative effects on a user's mental health when putting too much value on social media statistics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is Polywork targeting?
&lt;/h2&gt;

&lt;p&gt;Superficially speaking, it would look like Polywork is building a professional network that strongly appeals to the aesthetics of young professionals eg. influencers, developer advocates, designers, hustlers, lifestyle entrepreneurs, models and musicians. So far, these have been the early adopters.&lt;/p&gt;

&lt;p&gt;It is important to put aside the presented aesthetic and talk about the function and future of resumes because it becomes apparent that this network is for everyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resume 2.0
&lt;/h2&gt;

&lt;p&gt;A resume is a pdf you email to a company, but another way to see is that it is a protocol (standardized method of communication)&lt;/p&gt;

&lt;p&gt;A resume is job-history-oriented, and the we verify an applicants authenticity is via the resume protocol:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyze the written composition of the resume for anomalies&lt;/li&gt;
&lt;li&gt;references for a third-party attestment&lt;/li&gt;
&lt;li&gt;interrogate an applicant against their written content at a per task level&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Shifting from Job-Oriented to Activity-Oriented
&lt;/h3&gt;

&lt;p&gt;With a resume it primes the hiring manager or recruiter to use job-history oriented as the filter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this person switching jobs too frequently?&lt;/li&gt;
&lt;li&gt;Does this person have gaps been workplaces?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem with this kind of analysis is that these are superficial concerns and do not tell if an applicant is qualified. Also, it does not adapt to the market as a whole such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more people want only to be part-time to be their own entrepreneur&lt;/li&gt;
&lt;li&gt;companies are offering fewer full-time roles&lt;/li&gt;
&lt;li&gt;companies are offering less long-term stable roles&lt;/li&gt;
&lt;li&gt;the rise of a generation who knows how to produce public-facing content&lt;/li&gt;
&lt;li&gt;the rise of a new global workforce from developing countries and not sticking to resume norms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wouldn't it be more valuable if you could filter and explore activities?&lt;br&gt;
If you still needed a summary, wouldn't it be nice if an AI could be trusted to generate the cliff notes from sourced materials?&lt;/p&gt;

&lt;h3&gt;
  
  
  Change of the Composition of Resumes
&lt;/h3&gt;

&lt;p&gt;AI is becoming more accessible and valuable. Look at GPT3 and CopyAI, and it is getting good at generating content that is indistinguishable from human-generated content.&lt;/p&gt;

&lt;p&gt;What happens when your entire resume can be spoofed by AI and cannot be discerned as being generated by AI with another AI?&lt;br&gt;
You will need more granular information to show where information has been sourced from.&lt;/p&gt;

&lt;h3&gt;
  
  
  Attestment
&lt;/h3&gt;

&lt;p&gt;References have not been legitimate for years. Anyone can pretend to be your reference; anyone can endorse your work without tangible proof.&lt;/p&gt;

&lt;p&gt;People on LinkedIn will endorse me as being knowledgeable with AWS. The reason they endorse me is that I help them pass their certification exam. It would be more useful if the proof of endorsement was tied to an activity such as posting their cloud certification, which I helped them obtain through my free study course and then associated it with me.&lt;/p&gt;

&lt;p&gt;In LinkedIn, you can kind of replicate this by mentioning people on a post in the LinkedIn public time-stream, but it becomes eventually lost since it cannot be easily filtered because LinkedIn social network with adjacent, not your resume.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opportunity-based instead of Spam-based
&lt;/h3&gt;

&lt;p&gt;Direct Messaging on LinkedIn, on the whole, is people messaging you for unsolicited services. It has us treat every connection or relationship with suspicion and apprehension.&lt;/p&gt;

&lt;p&gt;Polywork has fives messaging a purpose before being sent to a target user, and this is the first big step to cut down on spam.&lt;/p&gt;

&lt;p&gt;I could see them expanding this feature with their AI assistant to assess whether the sent message is genuine, meaningful and a wanted communication, and the system could quickly penalize unapologetic spammers via an internal karma system.&lt;/p&gt;

&lt;p&gt;It could also be that activity tags could be associated with contact types. This would allow contacting users to be forced to understand the context of what they are messaging for and do their homework to understand if there is genuinely is alignment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can't LinkedIn copy these features like how they can copy Instagram User Stories and Clubhouse audio chats?
&lt;/h2&gt;

&lt;p&gt;LinkedIn could replicate these features, but the fundamental way their social network works like connections and resumes profile the public live stream, these features would be subject to exploit that render them not as valuable.&lt;/p&gt;

&lt;p&gt;LinkedIn would be better off acquiring or partnering with Polywork and position themselves as a job board and resume platform.&lt;br&gt;
LinkedIn Resumes are not useless, but their value and purpose are going to change, and LinkedIn is not positioned to deliver on Resume 2.0&lt;/p&gt;

&lt;h2&gt;
  
  
  What does this Polywork have to do with developers?
&lt;/h2&gt;

&lt;p&gt;The normal combination today for developers applying to a job is Resume + LinkedIn + Github.&lt;br&gt;
Learning in public like #100DaysOfCode and #100DaysOfCloud challenges help provide structure around these proof of work.&lt;/p&gt;

&lt;p&gt;Github is great that it you can use a repo as a journal, but even for 100DaysOfCloud I have to tell people take those entries and tie social proof to them like on Twitter on LinkedIn and we don't have useful social-relationship metadata with these github entries for discoverability. &lt;/p&gt;

&lt;p&gt;I can't tell you how many people completed the 100DaysOCloud challenge, I can't find journals github unless people self-submit, I can't consistent filter to find the 100th day on Twitter or Linked since people are inconsistent with tagging.&lt;/p&gt;

&lt;p&gt;Polywork can make solve all this in one package and I think that will be better for developer communities for their proof of work.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does DEV fit with Polywork?
&lt;/h2&gt;

&lt;p&gt;DEV has a user profile that can be customized, but I think Polywork can allow you to showcase your best work, and by being selective of posting your best DEV articles into your Polywork timeline. Rich relational metadata can built ontop of your content. &lt;/p&gt;

&lt;p&gt;I don't see Polywork replacing DEV for dicussion, because DEV is a forum quasi-blog which excels for more in-depth and long-form discussion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;There is more to Polywork that I did not have to cover: like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;community building&lt;/li&gt;
&lt;li&gt;content discovery&lt;/li&gt;
&lt;li&gt;user and relationship discovery&lt;/li&gt;
&lt;li&gt;professional identity 2.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I want you to know that Polywork is not just for young professionals; it's for everyone, and whether you decide to use it today, tomorrow or three years or five years from now, it will become a valuable tool you will use at some point.&lt;/p&gt;

&lt;p&gt;My recommendation is if you are not yet ready to adopt, sign up and get your handle, so when you are ready, you aren't andrewbrown543242.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don't need an invite to reserve your handle, just signup at &lt;a href="https://www.polywork.com"&gt;https://www.polywork.com&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt; You want your first follower? &lt;/li&gt;
&lt;li&gt;Follow me at &lt;a href="https://www.polywork.com/andrewbrown"&gt;https://www.polywork.com/andrewbrown&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I'll be sure to give you a follow back!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>If you were the new CEO of Amazon Web Services what would be your first executive order?</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Sun, 07 Feb 2021 15:35:10 +0000</pubDate>
      <link>https://dev.to/andrewbrown/if-you-were-the-new-ceo-of-amazon-web-services-what-would-be-your-first-executive-order-1ik7</link>
      <guid>https://dev.to/andrewbrown/if-you-were-the-new-ceo-of-amazon-web-services-what-would-be-your-first-executive-order-1ik7</guid>
      <description>&lt;p&gt;Andy Jassy who is the current CEO of Amazon Web Services (AWS) is going to be the new CEO of Amazon. It's uncertain who will be next to the CEO of AWS. &lt;/p&gt;

&lt;p&gt;If you could have full control of AWS what would you decree?&lt;/p&gt;

&lt;p&gt;I would add a Dark Theme to the AWS Console.&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Heroes React to AWS re:Invent 2020 Announcements 🤯</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Thu, 03 Dec 2020 23:03:43 +0000</pubDate>
      <link>https://dev.to/aws-heroes/aws-heroes-react-to-aws-re-invent-2020-announcements-l67</link>
      <guid>https://dev.to/aws-heroes/aws-heroes-react-to-aws-re-invent-2020-announcements-l67</guid>
      <description>&lt;h3&gt;
  
  
  🚨 During re:Invent this article is being constantly updated.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  👋 Keep checking in to see new reactions!
&lt;/h3&gt;

&lt;h3&gt;
  
  
  👉👉 Jump to the reactions 👈👈
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;&lt;th&gt;
&lt;strong&gt;Week 1&lt;/strong&gt; — Andy Jassy's (CEO) Keynote, Amplify Admin UI&lt;/th&gt;&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
Mark Nunnikhoven,
Álvaro Hernández,
Luca Bianchi,
Teri Radichel,
Forrest Brazeal,
Matthieu Napoli,
Chase Douglas,
Yan Cui,
Franck Pachot,
Matt Coulter,
Dave Stauffacher,
Michael Hart,
Farrah Campbell,
Jeremy Daly,
Sebastian Müller,
Chris Williams,

&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;
&lt;thead&gt;&lt;th&gt;
&lt;strong&gt;Week 2&lt;/strong&gt; — ML and Infrastrucutre Keynotes&lt;/th&gt;&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
Tomasz Ptak,
Ken Collins,
Zamira Jaupaj,
Mike Chambers,
Luca Bianchi,
Gillian Armstrong,
Dave Stauffacher,
Kesha Williams,
Juv Chan

&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;
&lt;thead&gt;&lt;th&gt;
&lt;strong&gt;Week 3&lt;/strong&gt; — Werner Vogels's (CTO) Keynote&lt;/th&gt;&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
Renato Losio,
 Mark Nunnikhoven 
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Preamble
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is re:Invent?
&lt;/h3&gt;

&lt;p&gt;re:Invent is Amazon Web Service's (AWS) 5-day technology conference held in Las Vegas Nevada. Last year's conference had &lt;strong&gt;65,000+ attendance&lt;/strong&gt; from around the world.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is re:Invent so important?
&lt;/h3&gt;

&lt;p&gt;re:Invent is when AWS announces new features, improvements and cloud services. It's also a lot of fun, with hands-on training, creative demos project, lucrative swag and more!&lt;/p&gt;

&lt;h3&gt;
  
  
  What is different this year?
&lt;/h3&gt;

&lt;p&gt;Due to the world situation AWS has made a few changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The conference is 100% virtual&lt;/li&gt;
&lt;li&gt;Attendance is free (you still need to &lt;a href="https://register.virtual.awsevents.com/?sc_icampaign=event_reInvent_RegisterNow&amp;amp;sc_ichannel=ha&amp;amp;sc_icontent=eventsite_reinvent20&amp;amp;sc_ioutcome=Strategic_Events&amp;amp;sc_iplace=evnav&amp;amp;trk=direct"&gt;register&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The conference is 3 weeks long&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is an AWS Hero?
&lt;/h3&gt;

&lt;p&gt;An AWS Hero is a recognized community leader in a specific category of cloud technologies.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is this article?
&lt;/h3&gt;

&lt;p&gt;There are thousands of talks and hundreds of announcements, and if you live a busy life, it can be hard to find the time to digest all the changes.&lt;/p&gt;

&lt;p&gt;This reaction article is to help contextualize the AWS announcements with some personal thoughts or expert opinion so you have an idea of how you can apply these in your future workloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS Hero Reactions and Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Week 1
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://markn.ca/2020/andy-jassy-keynote-aws-reinvent/"&gt;Andy Jassy Keynote, AWS Re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;No longer do we really have to worry about significant up front entry costs, capacity limits, or start up times. We have more power available via one API call than an entire data center from ten years ago. But if you don’t change how you approach using these tools, you won’t see... &lt;a href="https://markn.ca/2020/andy-jassy-keynote-aws-reinvent/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/mark-nunnikhoven/"&gt;Mark Nunnikhoven&lt;/a&gt;, AWS Community Hero&lt;/em&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://www.ongres.com/blog/aws_announces_open_source_postgres_with_sql_server_compatibility/"&gt;AWS announces Babelfish: open source Postgres with SQL Server compatibility&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;But if it weren’t enough, SQL Server equivalent catalogs and also the SQL Server wire protocol (TDS) has been implemented. This means that you will be able to talk to Postgres Babelfish as if it were... &lt;a href="https://www.ongres.com/blog/aws_announces_open_source_postgres_with_sql_server_compatibility/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/alvaro-hernandez/"&gt;Álvaro Hernández&lt;/a&gt;, AWS Data Hero&lt;/em&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://towardsdatascience.com/serverless-comes-to-machine-learning-with-container-image-support-in-aws-lambda-ee9d729d48d7"&gt;Serverless comes to machine learning with container image support in AWS Lambda&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;AWS announced a long-awaited update for AWS Lambda by many developers and data scientists because it could change the way we build functions. It comes with bonus features that make this release something very welcome in the serverless world: starting from today it is possible to... &lt;a href="https://towardsdatascience.com/serverless-comes-to-machine-learning-with-container-image-support-in-aws-lambda-ee9d729d48d7"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/luca-bianchi/"&gt;Luca Bianchi&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://medium.com/cloud-security/keys-to-aws-success-3a4ab2abebb9"&gt;Andy Jassy’s 8 keys to success ~ AWS re:Invent 2020 Keynote&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;AWS is at the top of the Gartner Magic Quadrant in 2020 — again. In fact, they widened the gap between themselves and next closest provider in the past year. Andy Jassy provided some keys to success at the AWS in his... &lt;a href="https://medium.com/cloud-security/keys-to-aws-success-3a4ab2abebb9"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/teri-radichel/"&gt;Teri Radichel&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://acloudguru.com/blog/engineering/5-takeaways-from-andy-jassys-big-reinvent-keynote"&gt;5 takeaways from Andy Jassy’s big re:Invent keynote&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;To tie all that together, we got AWS Proton – a fully managed deployment service for containers and serverless apps. Notice how those two concepts are starting to blend together? Watch for that trend to... &lt;a href="https://acloudguru.com/blog/engineering/5-takeaways-from-andy-jassys-big-reinvent-keynote"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/forrest-brazeal/"&gt;Forrest Brazeal&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://mnapoli.fr/aws-lambda-php-docker-containers/"&gt;AWS Lambda can now run PHP using Docker Containers&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The good news is that while Lambda functions are limited to 250MB, containers can be up to 10GB. That will certainly help when deploying large monoliths to Lambda. One limitation to keep in mind is that after... &lt;a href="https://mnapoli.fr/aws-lambda-php-docker-containers/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/matthieu-napoli/"&gt;Matthieu Napoli&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://www.stackery.io/blog/reinvent-2020-andy-jassy-keynote-modern-architecture/"&gt;Wait, did AWS just rewrite the manual again for building apps?&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Andy Jassy's re:Invent keynote today was chock full of new features and services. I'm here to help break down the most important news related to modern application architecture… &lt;a href="https://www.stackery.io/blog/reinvent-2020-andy-jassy-keynote-modern-architecture/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/chase-douglas/"&gt;Chase Douglas&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://theburningmonk.com/2020/12/serverless-at-reinvent-2020-hot-takes-1/"&gt;Serverless at re:Invent 2020 – hot takes #1&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Lambda now bills you by the ms as opposed to 100 ms. So if your function runs for 42ms you will be billed for 42ms, not 100ms. This instantly makes everyone’s lambda bills cheaper without anyone having to lift a finger. It’s the best kind of optimization! However, this might not mean much in… &lt;a href="https://theburningmonk.com/2020/12/serverless-at-reinvent-2020-hot-takes-1/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/yan-cui/"&gt;Yan Cui&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://blog.dbi-services.com/database-announcements-at-reinvent-2020/"&gt;Database announcements at re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;There are 3 important new launches announced around databases: Babelfish for Aurora, Aurora Serverless v2 and AWS Glue Elastic Views but let’s start by a recap of the pre-reInvent new features from this year… &lt;a href="https://blog.dbi-services.com/database-announcements-at-reinvent-2020/"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/franck-pachot/"&gt;Franck Pachot&lt;/a&gt;, AWS Data Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/aws-heroes/deploying-a-ml-model-using-the-new-aws-lambda-container-image-functionality-4e7o"&gt;Deploying a ML model using the new AWS Lambda Container Image Functionality&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;This week at re:Invent we saw AWS announce the ability to bring your own container to Lambda functions. The scenario that gets me super excited is the deployment of ML models inside Lambda. Before, it was just too awkward for most use cases to do ML in Lambda but I will demonstrate below that it is very easy now… &lt;a href="https://dev.to/aws-heroes/deploying-a-ml-model-using-the-new-aws-lambda-container-image-functionality-4e7o"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/matt-coulter/"&gt;Matt Coulter&lt;/a&gt;, AWS DevTools Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/aws-heroes/an-aws-hero-reacts-to-the-io2-block-express-announcement-4d70"&gt;An AWS Hero reacts to the io2 Block Express announcement&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;I want to talk about the elegance that is io2 Block Express and why it truly is the first "Cloud SAN". In a traditional high performance and highly available Storage Area Network, data traffic between a storage array and the consuming server rides on a dedicated network… &lt;a href="https://dev.to/aws-heroes/an-aws-hero-reacts-to-the-io2-block-express-announcement-4d70"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/dave-stauffacher/"&gt;Dave Stauffacher&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://hichaelmart.medium.com/using-container-images-with-aws-lambda-7ffbd23697f1"&gt;Using container images with AWS Lambda&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Container Image Support has just been announced for AWS Lambda and it’s a pretty big deal — I’m very excited because it’s something I’ve wanted for years… &lt;a href="https://hichaelmart.medium.com/using-container-images-with-aws-lambda-7ffbd23697f1"&gt;(read full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/michael-hart/"&gt;Michael Hart&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://www.stackery.io/blog/the-year-of-serverless/"&gt;The Year of Serverless&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Danilo and Sheen are incredibly smart engineers and have done great things at the LEGO group. They’re also both great at sharing their knowledge. From the talk abstract: After experiencing scaling issues on Black Friday, the LEGO team fully refactored its monolith to serverless microservices... &lt;a href="https://www.stackery.io/blog/the-year-of-serverless/"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/farrah-campbell/"&gt;Farrah Campbell&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://www.jeremydaly.com/aurora-serverless-v2-preview/"&gt;Aurora Serverless v2: The Good, the Better, and the Possibly Amazing&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;That all changed with the introduction of Amazon Aurora Serverless v2. I finally got access to the preview and spent a few hours trying to break it. My first impression? This thing might just be a silver bullet! I know that’s a bold statement. 😉 But even though I’ve only been using it for a few hours… &lt;a href="https://www.jeremydaly.com/aurora-serverless-v2-preview/"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/jeremy-daly/"&gt;Jeremy Daly&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://sbstjn.com/blog/aws-lambda-container-docker-example/"&gt;AWS Lambda Container Image Support example for Node.js&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;I build a Continuous Integration and Continuous Deployment setup for AWS Lambda functions with docker images using GitHub Actions. Together with Semantic Releases and Conventional Commits, you can focus on writing your code. Automation takes care everything else... &lt;a href="https://sbstjn.com/blog/aws-lambda-container-docker-example/"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/sebastian-mueller/"&gt;Sebastian Müller&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://mistwire.com/2020/12/reinvent-2020-recap-week-1/"&gt;re:Invent 2020 re:Cap (week 1)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;A tacit acknowledgement that other computers exist on the planet that DO NOT belong to AWS. This will make multicloud efforts easier even though Jassy still did not say the word “multicloud”... &lt;a href="https://mistwire.com/2020/12/reinvent-2020-recap-week-1/"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/chris-williams/"&gt;Chris Williams&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 2
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/breadcentric/teach-me-amazon-codeguru-3dp3"&gt; Teach me, Amazon CodeGuru&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;CodeGuru Reviewer is a code analysis utility provided by AWS. It initially provided analysis for Java, this year Python was added. I haven't used it before, mainly because all of my Java code is work code and I haven't had much to run it against… &lt;a href="https://dev.to/breadcentric/teach-me-amazon-codeguru-3dp3"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/tomasz-ptak/"&gt;Tomasz Ptak&lt;/a&gt;, AWS Machine Learning Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/breadcentric/teach-me-amazon-codeguru-3dp3"&gt;Lambda Containers with Rails; A Perfect Match!&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;A few weeks ago when I started this serverless &amp;amp; container series we talked about how to use Docker in your AWS Lambda projects with SAM. Who could have known that today I get to share in the recent AWS Lambda Container Image Support news by announcing that Lamby works out of the box with both ZIP and Container deployment packages...&lt;br&gt;
&lt;a href="https://dev.to/aws-heroes/lambda-containers-with-rails-a-perfect-match-4lgb"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/ken-collins/"&gt;Ken Collins&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://zamirajaupaj.medium.com/machine-learning-keynote-liveblog-re-invent-2020-9abab404a280"&gt;AWS Machine Learning keynote live re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;A detailed breakdown of the announcements for the AWS ML Keynote... &lt;a href="https://zamirajaupaj.medium.com/machine-learning-keynote-liveblog-re-invent-2020-9abab404a280"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/zamira-jaupaj/"&gt;Zamira Jaupaj&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=BDe8833La5A&amp;amp;feature=youtu.be"&gt;#ImAtReInvent - AWS reInvent 2020 Machine Learning Keynote Analysis Special&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/BDe8833La5A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/mike-chambers/?did=dh_card&amp;amp;trk=dh_card"&gt;Mike Chambers&lt;/a&gt;, AWS Machine Learning Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/aws-heroes/aws-heroes-reactions-to-swami-sivasubramanian-keynote-on-machine-learning-cjj"&gt;AWS Heroes reactions to Swami Sivasubramanian keynote on Machine Learning&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Since talking about machine learning is super cool, and AWS is announcing a lot of new features and services, Swami is not the only keynote with AI stuff in it: Andy Jassy delivered a couple of mind-blowing news last Tuesday, and Dr. Matt Wood joined Swami to further deep dive... &lt;a href="https://dev.to/aws-heroes/aws-heroes-reactions-to-swami-sivasubramanian-keynote-on-machine-learning-cjj"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/luca-bianchi/"&gt;Luca Bianchi&lt;/a&gt;, AWS Serverless Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://virtualgill.medium.com/all-the-machine-learning-announcements-at-aws-re-invent-2020-ce3b9f917599"&gt;All the Machine Learning Announcements at AWS re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Feeling a little overwhelmed by all the Machine Learning announcements so far? Here’s your quick catch-up... &lt;a href="https://virtualgill.medium.com/all-the-machine-learning-announcements-at-aws-re-invent-2020-ce3b9f917599"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/gillian-armstrong/"&gt;Gillian Armstrong&lt;/a&gt;, AWS Machine Learning Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/davebuildscloud/recap-of-the-re-invent-2020-s3-announcements-3akj"&gt;Recap of the Re:Invent 2020 S3 announcements&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;This week I thought it would be good to recap the list of S3 announcements that have been made thus far during the conference... &lt;a href="https://dev.to/davebuildscloud/recap-of-the-re-invent-2020-s3-announcements-3akj"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/dave-stauffacher/"&gt;Dave Stauffacher&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://acloudguru.com/blog/engineering/sagemaker-clarify-is-the-most-important-reinvent-announcement-of-the-year"&gt;SageMaker Clarify is the most important announcement of re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;I literally cheered when Swami Sivasubramanian announced Amazon SageMaker Clarify, which expands the capabilities of SageMaker by detecting and mitigating bias in datasets and models. I believe Amazon SageMaker Clarify is the most important announcement out of AWS re:Invent this year... &lt;a href="https://acloudguru.com/blog/engineering/sagemaker-clarify-is-the-most-important-reinvent-announcement-of-the-year"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/kesha-williams/"&gt;Kesha Williams&lt;/a&gt;, AWS Machine Learning Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://juvchan.medium.com/aws-re-invent-2020-machine-learning-keynote-recap-7f14e31819fa"&gt;AWS re:Invent 2020 Machine Learning Keynote Recap and Highlights&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Welcome to the first-ever Machine Learning Keynote at AWS re:Invent. Let’s recap the key highlights in their chronological order... &lt;a href="https://juvchan.medium.com/aws-re-invent-2020-machine-learning-keynote-recap-7f14e31819fa"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/juv-chan/"&gt;Juv Chan&lt;/a&gt;, AWS Machine Learning Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://www.infoq.com/news/2020/12/aws-s3-strong-consistency/"&gt;Amazon S3 Now Delivers Strong Read After Write Consistency&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;To guarantee higher availability and better performances, S3 has for years relied on an eventual consistency model. During the first week of re:invent, AWS announced that S3 now supports strong read-after-write consistency.... &lt;a href="https://www.infoq.com/news/2020/12/aws-s3-strong-consistency/"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/renato-losio/"&gt;Renato Losio&lt;/a&gt;, AWS Data Hero&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://acloudguru.com/blog/engineering/breaking-down-the-werner-vogels-keynote-reinvent-2020"&gt;Breaking Down The Werner Vogels Keynote – re:Invent 2020&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;When Dr. Werner Vogels, the CTO of Amazon, takes the stage, builders listen. Why? Because every year Dr. Vogels, or simply “Werner” as he’s better known, speaks directly to the core challenges that people building in the cloud face... &lt;a href="https://acloudguru.com/blog/engineering/breaking-down-the-werner-vogels-keynote-reinvent-2020"&gt;(read the full article)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By &lt;a href="https://aws.amazon.com/developer/community/heroes/mark-nunnikhoven/"&gt;Mark Nunnikhoven&lt;/a&gt;, AWS Community Hero&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Community Builders Program</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Wed, 12 Aug 2020 14:19:07 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-community-builders-program-6kf</link>
      <guid>https://dev.to/aws-builders/aws-community-builders-program-6kf</guid>
      <description>&lt;p&gt;I'm Andrew Brown 👋&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I'm an AWS Community Hero&lt;/li&gt;
&lt;li&gt;I moderate the #AWS tag here on DEV&lt;/li&gt;
&lt;li&gt;and I provide mentorship to the AWS Community Builders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS has an exciting new community program that you can be apart of that is open to all technical levels, the primary requirement is a passion for AWS 💓.&lt;/p&gt;

&lt;p&gt;In fact some DEV members here are builders such as:&lt;/p&gt;

&lt;p&gt;So let me tell you all about it!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is AWS Community Builders?
&lt;/h2&gt;

&lt;p&gt;The AWS Community Builders (CB) is a cloud community program officially organized by AWS. The program is designed to support enthusiastic AWS community members by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical mentorship&lt;/li&gt;
&lt;li&gt;Exclusive networking opportunities &lt;/li&gt;
&lt;li&gt;Virtual speak events&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Think of it like getting special attention and support from AWS&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  AWS Community Builder Categories
&lt;/h2&gt;

&lt;p&gt;AWS Community Builders are designated but not limited to a very specific AWS topic/category. The following categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Networking and Content Delivery&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;li&gt;Gravitron / Arm Development&lt;/li&gt;
&lt;li&gt;Data (Databases, Analytics, Blockchain)&lt;/li&gt;
&lt;li&gt;Developer Tools&lt;/li&gt;
&lt;li&gt;Game Tech&lt;/li&gt;
&lt;li&gt;Mobile and Web Apps&lt;/li&gt;
&lt;li&gt;Management, Governance and Migration&lt;/li&gt;
&lt;li&gt;Security, Identity &amp;amp; Compliance&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Focus your attention on a specific category of interest&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why would want to join the AWS Community Builders?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AWS Product Team Previews
&lt;/h3&gt;

&lt;p&gt;AWS Product Teams are the AWS engineers who are responsible for building AWS Services and Products&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exclusive webinars with AWS engineers demoing of a preview of AWS Services, Product or Service Features&lt;/li&gt;
&lt;li&gt;Direct feedback loop to influence developer of  pre-release features&lt;/li&gt;
&lt;li&gt;Opportunities to write / blog about preview features&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AWS Subject Matter Experts (SMEs)
&lt;/h3&gt;

&lt;p&gt;An SME is a person recognized with having expert knowledge in a particular topic eg. Cloud Security&lt;br&gt;
Exclusive and early access webinar, Q&amp;amp;A and presentations from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Developer/Startup Advocates&lt;/li&gt;
&lt;li&gt;AWS Product Marketing Managers&lt;/li&gt;
&lt;li&gt;AWS Heroes&lt;/li&gt;
&lt;li&gt;Jeff Barr 🤞&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Fast track your AWS knowledge and gain unique community opportunities &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  AWS Promotional Credits
&lt;/h3&gt;

&lt;p&gt;AWS Credits are the equivalent of US dollars that can be spent on most AWS cloud resources.&lt;br&gt;
These AWS credits are provided to you to power creative community projects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accepted members will receive AWS Credits&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AWS Networking
&lt;/h3&gt;

&lt;p&gt;When joining the AWS Community Builders you are networked with all other active builders&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exclusive access to the AWS Community Builders private Slack Channel&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How do you join the AWS Community Builders?
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Step 1 - Apply
&lt;/h3&gt;

&lt;p&gt;On the AWS Community Builders page, you have to click apply:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fs_TXMBM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kzbvc18c450yjzromu9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fs_TXMBM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kzbvc18c450yjzromu9z.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://amzn.to/33gDSJY"&gt;https://amzn.to/33gDSJY&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 - Choose a category
&lt;/h3&gt;

&lt;p&gt;You need to choose your preferred first and second technical category. If accepted into the program you’ll be assigned to that category.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uUuFLsgd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p7g138h3r01pqsf07wr0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uUuFLsgd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p7g138h3r01pqsf07wr0.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Categories help align applicants with groups so AWS can align resources to the group. Anyone in any category can participate in virtually every opportunity, so you’re not limited by being in one group.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 3 - Share your cloud story
&lt;/h3&gt;

&lt;p&gt;Share your cloud story in 1000 characters or less to AWS&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9VGAPEvU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kv8ir358c9c90mpkd26y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9VGAPEvU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kv8ir358c9c90mpkd26y.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 - Share your Social Media Profiles
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Dj0S2eJu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5q73u960m8i9unc9tmeq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dj0S2eJu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5q73u960m8i9unc9tmeq.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5 - Share Links to Blogs, Videos, Events etc…
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VoXC9ui2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t7tp5and2bf75iwex2da.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VoXC9ui2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t7tp5and2bf75iwex2da.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6 - Fill out Survey
&lt;/h3&gt;

&lt;p&gt;Fill out a very short survey about your online and in-person community activities&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--swLTrFfQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qrmgdemt9rjz9yitz1ar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--swLTrFfQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qrmgdemt9rjz9yitz1ar.png" alt="Alt Text" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Program Requirments
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You must be 18 years or older&lt;/li&gt;
&lt;li&gt;Open to everyone globally (with exception to countries under US embargo)&lt;/li&gt;
&lt;li&gt;Applications are reviewed and accepted twice a year&lt;/li&gt;
&lt;li&gt;There is no cost to apply or to hold membership&lt;/li&gt;
&lt;li&gt;Eligible for all technical levels:
Level 100 (Beginner), Level 200 (Intermediate), Level 300 (Advanced), Level 400 (Expert)&lt;/li&gt;
&lt;li&gt;Technical accuracy and community engagement can be more important than technical depth.&lt;/li&gt;
&lt;li&gt;Membership lasts for a year, and you must re-apply every year to renew membership.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  I want to become a builder but I need ideas
&lt;/h2&gt;

&lt;p&gt;If you are enthusiastic about AWS but have yet to build up any online content here are some suggestions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submit a long-form and in-depth article to freeCodeCamp.org for publication&lt;/li&gt;
&lt;li&gt;Create a cloud developer blog on Hashnode.com and document your journey&lt;/li&gt;
&lt;li&gt;Write short “How-to” tutorials on DEV.to under the AWS tag&lt;/li&gt;
&lt;li&gt;Start a bi-monthly Twitch.tv live-stream or join AWS live-streams and engage in the comments.&lt;/li&gt;
&lt;li&gt;Start an email newsletter for your interested topic and send out consolidated weekly links eg. AWS Cloud Security&lt;/li&gt;
&lt;li&gt;Start a technical podcast and publish on Spotify&lt;/li&gt;
&lt;li&gt;Participate in the #100DaysOfCloud challenge&lt;/li&gt;
&lt;li&gt;Start a LinkedIn Group for your specific topic of interest&lt;/li&gt;
&lt;li&gt;Start a Youtube channel &lt;a href="https://www.youtube.com/FooBar_codes"&gt;https://www.youtube.com/FooBar_codes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Participate as a speaker at AWS User Groups &lt;a href="https://aws.amazon.com/developer/community/usergroups/"&gt;https://aws.amazon.com/developer/community/usergroups/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Teach a topic on a Twitter with of tweet-size lessons chained together by replies&lt;/li&gt;
&lt;li&gt;Reshare AWS Developer Advocate content and bring in engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Once I’m accepted as a “builder” what am I supposed to do?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Join Virtual Calls&lt;/li&gt;
&lt;li&gt;Participate in mentorship opportunities&lt;/li&gt;
&lt;li&gt;Continue to share or produce educational and technical content&lt;/li&gt;
&lt;li&gt;Actively engage with and help build the AWS community&lt;/li&gt;
&lt;li&gt;Demonstrate continued interest in learning more about AWS&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;I hope that gives you an idea of the AWS Builders community program and I hope you apply and I see you on the other side!&lt;/p&gt;

&lt;p&gt;Again here's the link to apply. &lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://amzn.to/33gDSJY"&gt;https://amzn.to/33gDSJY&lt;/a&gt; 👈&lt;/p&gt;

&lt;p&gt;Get an application in before &lt;strong&gt;September 15th&lt;/strong&gt; &lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Rich Draft</title>
      <dc:creator>Andrew Brown 🇨🇦</dc:creator>
      <pubDate>Wed, 24 Jun 2020 13:58:42 +0000</pubDate>
      <link>https://dev.to/andrewbrown/rich-draft-3lgg</link>
      <guid>https://dev.to/andrewbrown/rich-draft-3lgg</guid>
      <description></description>
    </item>
  </channel>
</rss>
