Javier Cervantes

Principal Software Engineer, Gray Wolf

If you’re looking on how to keep 2 different repositories in sync and the source is hosted on github, you can use the mirror-repository action.

It’s straightforward to configure with the following steps:

1. Commit a file with the configuration:

.github/workflows/mirror-repo-sync.yml

on:
  push:
    branches:
      - develop

jobs:
  to_foundries:
    runs-on: ubuntu-20.04
    steps:

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: yesolutions/mirror-action@master
        with:
          REMOTE: ${{ secrets.GIT_REPO }}
          GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
          GIT_PASSWORD: ${{ secrets.GIT_PASSWORD }}

2. Create the secrets in the settings screen:

1. Review and document your current release process

Map all the activities that your team makes to deploy changes to your environments. There are no right or wrong answers, your first step is to understand where you are.

2. Generate a release checklist

Create a list of all the steps that need to take place for a release to happen. By capturing all the activities you can define an owner for each of them and make sure you keep them consistent.

3. Define a release cadence (and stick with it)

Having a regular schedule for releases will make you resolve any roadbloacks. After every release make sure you adjust your plan based on what you learn.

4. Build a script to release changes

Compile a list of commands to generate an artifact and push it to a shared enviroment. The main goal is to remove all manual steps from the deployment process.

5. Configure a deployment pipeline

Select a CI provider and translate your script to run in that tool and deploy with it. Jenkins, Github Actions and Bitbucket Pipelines are the more common options.

If you are using EC2 instances, the first thing you can try is AWS Cost Explorer rightzising recommendations to help you identify opportunities to downsize or terminate instances that are being underutilized to reduce costs.

Below is a recommendation example I got to modify an instance:

To enable rightsizing recommendations

  1. Open the AWS Cost Management at https://console.aws.amazon.com/cost-management/home

  2. In the navigation pane, choose Preferences.

  3. In the Recommendations section, choose Receive Amazon EC2 resource recommendations.

  4. Choose Save preferences.

To access rightsizing recommendations

  1. Sign in to the AWS Management Console and open the AWS Cost Management console at https://console.aws.amazon.com/cost-management/home

  2. In the navigation pane, choose Rightsizing recommendations.

If you are in the software development world probably you have noticed that things are working in different ways as it used to be in the past or as it is still happening in some other places.

What am I talking about?

  • Remote work
  • Asynchronous collaboration
  • Less managers and meetings (or none at all)
  • Happiness optimization
  • Flexible schedules and roles

This is a reality in some places, but it’s not everywhere because it requires a mental and attitude change toward how we understand work and how we organize.

This are the requirements to make it possible:

  • Trust: If you want to keep you need to be dependable in every sense.

  • Responsibility: You are no longer a child that need to be oriented or told what to do, and you shouldn't act as one.

  • Openness: Things are clear for everyone, you can’t hide.

  • Goal-Oriented: What you do is what other can see, being on an office for 8 hours isn't enough anymore.

I think we will continue to see more human work environments popping all over the world, where our actions would be lead by our passion and our will to collaborate.

Are we ready for it?

I was inspired in Steve Klabnik A Hypermedia API Reading List, so here are some resources if you want to learn more about this topic.

Articles

Videos

Books

Tutorials

Presentations

API examples/docs

Media Types

Podcasts

Mailing lists

Tools

Enter your email to subscribe to updates.