Loading
DevOps

How to Deploy a HeyEmoji Slack App to AWS using Terraform

Last Updated: December 07, 2022

HeyEmoji is a fantastic reward system teams can use to recognize each other's accomplishments, dedication, and hard work. Once you get it set up, you can mention a colleague's Slack username in any channel along with a pre-configured reward emoji - you can even include a short description of what they did that was so awesome it deserved a shoutout.

The best part? When you send an emoji to a colleague, they get emoji points, which can be tracked on a leaderboard. Competing to see who can be most helpful, considerate, or skilled at their jobs is a pretty fun way to make the day fly by. 

Want to get HeyEmoji on your own work Slack channel? This tutorial walks you through how to deploy the HeyEmoji Slack app to AWS using Terraform+Ansible so your team can enjoy Slack-generated kudos. 

Phil Henning

Phil Henning

Angular

TypeScript Features Every Angular Developer Needs to Know

If you’re an Angular developer, you’re missing out if you’re not using advanced TypeScript features to help you build better code. 

Fábio Englert Moutinho

Fábio Englert Moutinho

Angular

Manage Form-Driven State with ngrx-forms (Part 2)

This post is a continuation from Part 1, where we set up a test project with NgRx and ngrx-forms in our Angular application. For part 2, we will validate our form.

Kyle Nazario

Kyle Nazario

Angular

Manage Form-Driven State with ngrx-forms (Part 1)

If your Angular application already uses NgRx, you know the value of writing good reducers and using one-way data flow. However, that knowledge may not be enough to keep the biggest form in your app from being a rat’s nest of FormGroups and related logic. Forget keeping components under 50 lines of code - your form logic alone blows past that.

Kyle Nazario

Kyle Nazario

Angular

When to Use the Non-Null Assertion Operator in Angular

If you've recently made the switch to using Strict Mode for Angular, good job, you're on your way to writing better code and governing a more maintainable codebase! However, your team may encounter new TypeScript "errors" they haven't seen before, like "Property 'myClassMember' has no initializer and is not definitely assigned in the constructor.ts". To find out more about this error and how to resolve it using the Non-null Assertion Operator, check out my post on dev.to here: https://dev.to/bitovi/non-null-assertion-operator-in-angular-g5l

Jennifer Wadella

Jennifer Wadella

DevOps

DevOps Automation using StackStorm - BitOps Secrets Management

In a recent series of blog posts, I drew up how to go from a basic StackStorm installation and pack deployed using Ansible, to moving that entire custom deployment to a one-touch cloud deployment using BitOps while only modifying a handful of files in the process.

We only barely scratched the surface of our implementation, and we can always go further. One aspect I tried to be mindful of throughout the guides was the various ways of managing of secrets. In this guide we will detail how we can utilize an AWS Key Management Service (KMS) key as well as AWS Systems Manager (SSM) and Parameter Store to take that a step further.

In practical terms: we'll create a BitOps before hook script we use to retrieve all of the secret variables we need from AWS, and demonstrate how we can load those into the BitOps container environment for usage within our existing Ansible StackStorm playbook.

Dylan Lundquist

Dylan Lundquist