<?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: Tiffany</title>
    <description>The latest articles on DEV Community by Tiffany (@tiffanyjachja).</description>
    <link>https://dev.to/tiffanyjachja</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%2F362118%2Fa3d85d45-e403-47ee-87bc-ee4e9a732b0d.jpg</url>
      <title>DEV Community: Tiffany</title>
      <link>https://dev.to/tiffanyjachja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tiffanyjachja"/>
    <language>en</language>
    <item>
      <title>How to create your virtual event platform with AWS IVS</title>
      <dc:creator>Tiffany</dc:creator>
      <pubDate>Fri, 04 Jun 2021 00:15:18 +0000</pubDate>
      <link>https://dev.to/aws-builders/how-to-create-your-virtual-event-platform-with-aws-ivs-111a</link>
      <guid>https://dev.to/aws-builders/how-to-create-your-virtual-event-platform-with-aws-ivs-111a</guid>
      <description>&lt;p&gt;Over the last year, businesses were forced to make a sudden pivot towards virtual events, and most were very unprepared for the change. Instead of traveling for business functions and enjoyment, we logged into conferencing and digital platforms and services. The pivot to digital experiences is expected to be semi-permanent, and business are expected to delivery high quality digital experiences for their audiences.&lt;/p&gt;

&lt;p&gt;Reaching your market and growing your brand through video experiences doesn't have to be expensive, difficult, or time-consuming. In this blog post, we'll share how you can host your virtual event using Amazon Interactive Video Service (Amazon IVS). Follow along with this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Amazon Interactive Video Service
&lt;/h2&gt;

&lt;p&gt;Amazon Interactive Video Service (Amazon IVS) is a live video streaming service that offers low-latency video streaming and playback. Amazon IVS managed streaming services lowers the bar for businesses to offer high quality video streaming anywhere in the world. Amazon IVS is simple to use and scalable for large audiences. The IVS SDK lets viewers easily stream through the web, iOS, or Android.&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%2F3hmbvyjx9fhmgf0lovcc.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%2F3hmbvyjx9fhmgf0lovcc.png" alt="image001"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this guide, we will create a virtual event platform using &lt;a href="https://obsproject.com/" rel="noopener noreferrer"&gt;Open Broadcast Software&lt;/a&gt; (OBS) and the Amazon IVS API and player SDK to embed the stream into a web-based application.&lt;/p&gt;

&lt;p&gt;As shown in the image above OBS is the streaming software that will broadcast a live video stream to the Amazon IVS service. The Amazon IVS API and player SDK will allow us to embed the stream into a web, iOS, or Android application and build additional interactive capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  To get started with your first stream
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://obsproject.com/download" rel="noopener noreferrer"&gt;Download and Install Open Broadcast Software&lt;/a&gt;. This streaming tool will help you get started with setting up your video stream.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/ivs/" rel="noopener noreferrer"&gt;Create an Amazon IVS channel&lt;/a&gt;. Navigate to the Amazon IVS service to create a new video stream channel called live-event-stream. Here, we used the preconfigured default configurations.  &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%2F67k3c8y8whu9eccki3ss.png" alt="image002"&gt;
&lt;/li&gt;
&lt;li&gt;After creating a channel, you will see your stream configuration details in the Amazon IVS dashboard. Make a note of your stream configuration for the next step when we begin configuring our stream through OBS.
&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%2Fqnqoqu6fh088aii699nw.png" alt="image003"&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In OBS, enter the channel's stream configuration. The OBS Auto-Configuration Wizard will prompt you to set up a new stream. In the Service drop-down menu, select the Custom… option. Next, enter the corresponding ingest server and stream key provided by the Amazon IVS console.&lt;br&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%2Filwubki89t2426b1dwsa.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%2Filwubki89t2426b1dwsa.png" alt="image005"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Next and wait for the OBS to validate your configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, set up your media sources and begin the streaming broadcast in OBS.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fvavessydofhaw8iu3zji.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%2Fvavessydofhaw8iu3zji.png" alt="image006"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;If the setup is correct, your video stream will appear in the Amazon IVS console. As shown below:&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%2F1h3b9oslvajvklpe59bp.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%2F1h3b9oslvajvklpe59bp.png" alt="image008"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have set up our video stream to be used for our virtual event, let's use the Amazon IVS player SDK to build our virtual event application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integrating Video into a web application with Amazon IVS
&lt;/h2&gt;

&lt;p&gt;Amazon IVS offers two Player SDK types for developers to integrate with their framework of choice. The Amazon IVS Player SDK for Web is a lightweight option for developers looking to customize their applications. Alternatively, the Amazon IVS Player Tech for Video.js is the full-featured option for developers who may already be using &lt;a href="https://videojs.com/" rel="noopener noreferrer"&gt;Video.js&lt;/a&gt;. This guide will use the &lt;a href="https://docs.aws.amazon.com/ivs/latest/userguide/SPVJI.html" rel="noopener noreferrer"&gt;Video.js Amazon IVS Player&lt;/a&gt; to customize our live stream video player and add it to a simple web page.&lt;/p&gt;

&lt;p&gt;Below is a screenshot of a basic website created for the virtual event, {Unscripted}. There is little functionality for the event date itself, so we will need to use the player library to add our video stream to the webpage.&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%2Fabmpbsjv0rsqkaeic3ls.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%2Fabmpbsjv0rsqkaeic3ls.png" alt="image009"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Amazon IVS Video.js Player SDK to load the stream source:
&lt;/h3&gt;

&lt;p&gt;In your application code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Include the following script tag (to add the latest version of the Amazon IVS player).
&lt;code&gt;&amp;lt;script src="https://player.live-video.net/1.2.0/amazon-ivs-player.min.js"&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Register the Amazon IVS tech with Video.js using the registerIVSTech function: &lt;code&gt;registerIVSTech(videojs);&lt;/code&gt; The videojs object is provided by Video.js.&lt;/li&gt;
&lt;li&gt;Create an instance of the player and set the source stream using the playblack url found in your channel's configuration dashboard.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Initialize player
var player = videojs('amazon-ivs-videojs', {
    techOrder: ["AmazonIVS"]
}, () =&amp;gt; {
    console.log('Player is ready to use!');
       // Play stream
    player.src(PLAYBACK_URL);
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the PLAYBACK_URL variable should be replaced with the playback URL of the source stream you want to load for your application. In this guide, we used the playback URL found in our channel's configuration dashboard.&lt;/p&gt;

&lt;p&gt;After following these steps and starting live stream broadcast through OBS, the {Unscripted} event page now streams live content to its audience.&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%2F6p51brrxerv2zimg1tve.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%2F6p51brrxerv2zimg1tve.png" alt="image011"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's worthwhile building additional capabilities and integrations into your virtual event platform solution, but this guide showcased an introduction to the Amazon IVS player. If you'd like more examples of using the Amazon IVS Player SDK, I recommend checking out additional &lt;a href="https://github.com/aws-samples/amazon-ivs-player-web-sample" rel="noopener noreferrer"&gt;Amazon IVS Player Web SDK samples&lt;/a&gt;. The Amazon IVS Player SDK also offers the ability to record sessions for playback later, allowing you video on-demand capabilities.&lt;/p&gt;

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

&lt;p&gt;We saw annual industry conference events like AWS: ReInvent move towards a virtual experience. Despite the pandemic, smaller business and individual conference organizers can still grow market awareness, reach their communities, and create lasting impressions by leveraging video services. This post shared a guide to building your own scalable virtual event platform using Amazon Interactive Video Service (Amazon IVS).&lt;/p&gt;

&lt;p&gt;If you'd like to try Amazon IVS, it is available for AWS customers. Check out the product page and get started &lt;a href="https://aws.amazon.com/ivs/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. I hope this post helps you leverage IVS to create a memorable virtual experience!&lt;/p&gt;

&lt;p&gt;Here's to making virtual events a fulfilling experience!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Nevertheless, Code in 2021!</title>
      <dc:creator>Tiffany</dc:creator>
      <pubDate>Fri, 05 Mar 2021 01:53:59 +0000</pubDate>
      <link>https://dev.to/tiffanyjachja/nevertheless-code-in-2021-50ef</link>
      <guid>https://dev.to/tiffanyjachja/nevertheless-code-in-2021-50ef</guid>
      <description>&lt;p&gt;Hi All,&lt;/p&gt;

&lt;p&gt;Thanks for reading my letter to the community. I hope this inspires you to keep coding in 2021 and beyond.&lt;/p&gt;

&lt;p&gt;Love,&lt;br&gt;
Tiff&lt;/p&gt;

&lt;h2&gt;
  
  
  My most recent achievement involves…
&lt;/h2&gt;

&lt;p&gt;My most recent achievement is finishing an AR system that projects videos onto billboards and other target objects. &lt;/p&gt;

&lt;p&gt;I've been coding for almost ten years now. And I'm continually finding my most significant achievements are always ahead of me. Sometimes it's happiness because I'm just now growing my GitHub presence. Sometimes it's successfully debugging a problem I've been trying to figure out for 24 hours straight. &lt;/p&gt;

&lt;p&gt;Recently, I learned that I have a different way of coding and developing my solutions. I'm not much of a person who obsesses over hyperparameter tuning, and I'm not stubborn or obsessed with my code. That means I am more likely to experiment through heuristics and combining algorithms. There are pros and cons to this style, but it doesn't take away from what I can achieve, and it certainly doesn't take away from how other people end up solving the same problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  My advice for allies to support underrepresented folks who code is...
&lt;/h2&gt;

&lt;p&gt;My advice to allies to support underrepresented folks who code is to make your intentions clear. &lt;/p&gt;

&lt;p&gt;I remember when I didn’t feel like I had peers or managers on my side—not having people supporting or advocating my growth hurt in a lot of ways. I believed I was objectively a high-performing member of my team, but I lost my way. I thought I wouldn’t be able to meet my personal and career goals. &lt;/p&gt;

&lt;p&gt;And at the time, I had several people, both peers, and managers telling me that my chances were low or too new or too young. What changed my perspective was when one person taking the time to get to know me and share their intentions to help support and mentor me throughout several paths and actions that I could take given where I was in my career. It’s not about the people who don’t believe in you or don’t see you for who you are. You get to choose whose opinion and feedback matters. And there are only things that you can do. It’s when someone is willing to step up and bring those forward that an underrepresented person who’s been discouraged can continue to grow in their way. &lt;/p&gt;

&lt;p&gt;Everyone has their path, and I think one great way to support someone is to remind them that they own that path. If you'd like to support someone, let them know. Encourage them to make the developments needed to progress and grow in the ways that work best for them.&lt;/p&gt;

&lt;h2&gt;
  
  
  My biggest goal is…
&lt;/h2&gt;

&lt;p&gt;My biggest goal for 2021 is to support my community and provide more opportunities for people looking to grow their tech careers. I'd love for more people to feel empowered and inspired to own their paths and make the most out of the journey. &lt;/p&gt;

&lt;p&gt;There's a number of ways you can look at work, jobs, and coding. I'm kind of a passion-minded person, so a lot of the work I enjoy involves helping others. To each their own!&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Photo Cover by &lt;a href="https://unsplash.com/@atgranberry?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Aidan Granberry&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/letter?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

</description>
      <category>wecoded</category>
    </item>
    <item>
      <title>Observe20/20: A clear look at observability</title>
      <dc:creator>Tiffany</dc:creator>
      <pubDate>Wed, 08 Apr 2020 16:34:34 +0000</pubDate>
      <link>https://dev.to/tiffanyjachja/observe20-20-a-clear-look-at-observability-1poc</link>
      <guid>https://dev.to/tiffanyjachja/observe20-20-a-clear-look-at-observability-1poc</guid>
      <description>&lt;p&gt;April 6th, &lt;a href="https://observe2020.io"&gt;Observe20/20&lt;/a&gt;&lt;br&gt;
The event was excellent. The virtual sessions held lively audience participation and conversations. The speaker line consisted of individuals across disciplines sharing the findings related to the observability ecosystems and its applications in their respectable fields.&lt;/p&gt;

&lt;p&gt;As I watched the speakers present, I noticed a common thread that brought us together. Observability allows users to understand and explain their systems. This thread is something that continues to drive my findings and thoughts around software delivery.&lt;br&gt;
I shared my session on “Continuous Efficiency for Every Pipeline” towards the end of the day. The purpose of the session was to share how observability concepts and telemetry data could fit into our software delivery. Here are the highlights from my session:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software delivery is the process of delivering software features to an end customer.&lt;/li&gt;
&lt;li&gt;Traditional software delivery focuses on building, testing, and deploying artifacts. The challenge in this is that you haven’t reduced the risks involved with deployments.&lt;/li&gt;
&lt;li&gt;We use software delivery pipelines to get from point a to b in that process in a repeatable and reliable way. Amongst industries, fully automated software delivery operations are reasonably rare.&lt;/li&gt;
&lt;li&gt;Consider how post-deployment processes such as operationalizing and monitoring can inform our next iteration of work.&lt;/li&gt;
&lt;li&gt;Observability for Verification starts with exposing service and application-level details. If you can track endpoints through metrics or failing service requests and latency through distributed tracing, then you begin to react to those anomalies.&lt;/li&gt;
&lt;li&gt;Continuous Verification is the process of using your telemetry data to detect abnormal behaviors such you can take predefined action based on the rules you’ve defined in your software delivery pipeline.&lt;/li&gt;
&lt;li&gt;Observability is not just an Operations responsibility or problem. We should consider that as organizations scale, manual processes do not.&lt;/li&gt;
&lt;li&gt;You can build sustainable and efficient pipelines by four tracking key deployment metrics. This work was shared in the Accelerate book by Nicole Forsgren and Gene Kim.

&lt;ul&gt;
&lt;li&gt;Deployment Frequency&lt;/li&gt;
&lt;li&gt;Lead time for changes&lt;/li&gt;
&lt;li&gt;Mean Time to Recover&lt;/li&gt;
&lt;li&gt;Change Failure Rate&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Also consider shared visibility and responsibility around cloud costs from:

&lt;ul&gt;
&lt;li&gt;idle dev environments&lt;/li&gt;
&lt;li&gt;services with overallocated resources&lt;/li&gt;
&lt;li&gt;differences in cost between versions of services&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;I enjoy this talk because it shows that everyone with a software delivery stake (developers, operations, DevOps, SREs, and tech leaders)can benefit from visibility into their systems and reducing TOIL. You don’t have to be an expert in observability, OpenTelemetry, metrics, logs, or traces to start somewhere on this journey of better software delivery. But I believe the journey does have to start somewhere, and it can start with some of these ideas.&lt;/p&gt;

&lt;p&gt;Shortly after my session, the conference joined together for a panel session. I had a little bit of a high from my talk. I felt that I’d have some thoughts and experiences to offer around implementing and putting to practice observability doing so in a relatively large and complex environment as a Consultant last year. The panel was a short session lasting about 30 minutes of air time. For those looking for answers around observability, I have some. So here were my thoughts around the questions from the panel discussion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There’s always the need to drive decisions based on data, so becoming a user of observability is fairly straightforward. The OpenTelemetry project is a fairly new and large project where users who are looking to give back can grow that community.&lt;/li&gt;
&lt;li&gt;Open standards produce definitions that support communication around processes in practice. Take for example the OpenTracing API and how it helped define distributed tracing concepts like spans and traces.&lt;/li&gt;
&lt;li&gt;Every field has jargon that practitioners and users often need to navigate. I don’t see it as a disservice in the observability space to introduce patterns and concepts that apply to so many environments and systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In terms of learning observability or putting it into practice, it’s important to start somewhere.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The reality of implementing and introducing new technologies to an organization is that not every user needs to be an expert to benefit or use that tool.&lt;/li&gt;
&lt;li&gt;The business value in observability is exploring the unknown unknowns. Sometimes this starts by introducing or starting with one aspect of observability, logs, metrics, or traces. Even if you expose one metric or instrument one span and realize later you need more, you’re able to iterate on these benefits fairly quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the words of Paul Bruce (event organizer), this event aims to “encourage growth in OpenTelemetry and other relevant open-source projects related to increasing visibility, transparency, and traceability of data across software teams.” For anyone catching up with the details of the conference, I hope this another dependable resource around observability.&lt;/p&gt;

</description>
      <category>observability</category>
      <category>softwaredelivery</category>
      <category>conference</category>
      <category>opentelemetry</category>
    </item>
  </channel>
</rss>
