Giter Club home page Giter Club logo

automatetheboringstuff's Introduction

Welcome to my profile!

Previously I have always used my corporate github accounts, but I have decided its time to start showing off some personal projects and course work!


🦎 I am a DevOps Engineer from Canada.

  • 🔭 I’m currently working as a DevOps Engineer working primarily with Terraform, CircleCI, Bash, AWS, and GCP
  • 🌱 I’m currently learning Kubernetes, Docker, and Python
  • 📫How to reach me: Linkedin Badge
  • 🚀 Currently playing Starfield
  • ⚡ Fun fact about me... I have a dragon named Ada 🐉


What Others Have to Say About Me.

🦙 Colleagues Over LinkedIn 🦙

"Nicole's growth as a DevOps Engineer is truly remarkable. Her ability to rapidly acquire and implement new technologies speaks volumes about her dedication and adaptability. What's even more commendable is her unwavering support and willingness to assist whenever needed. Nicole without fail always has the brightest smile during morning standup and has been an absolute pleasure to work with." - Joel Kerfoot

"Nicole and I joined Paystone in the same cohort over a year ago. Since then, I've seen Nicole grow from strength to strength in her role as a DevOps Engineer. She is fearless in learning new technologies and jumping in to help anyone in need. If you are looking for a self-starter with a strong ability to learn and adapt, I highly recommend Nicole." - Chad Crowell

"If your DevSecOps team is missing an exceptional person, I cannot recommend anyone more highly than Nicole. She combines solid engineering instincts with a huge capacity for absorbing new technologies and applying those to find the best solution to a complex problem." - Steve Nield

"Nicole is a quick learner and a hard worker. She's a pleasure to work with, always having a smile on her face, and always willing to jump into a new challenges and lend a helping hand." - Richard Gibert

"Nicole is a truly nice person and an excellent co-worker"Tomo Nikolovski

"If your DevSecOps team is missing an exceptional person, I cannot recommend anyone more highly than Nicole. She combines solid engineering instincts with a huge capacity for absorbing new technologies and applying those to find the best solution to a complex problem. Here is a small slice of the impact she has had here at Paystone:

  1. Increased the velocity with which we can ship product changes by reducing the duration of our automated checks by 62%
  2. Increased reliability of the NiceJob app by implementing an automated check against any product change which ensures the correct level of test-coverage
  3. Led a migration of all ML infrastructure to a dedicated GCP project
  4. Increased security of our billing systems by consolidating and normalizing IAM bindings across a complex, distributed, legacy architecture " - Steve Nield

🎆 Colleagues at Paystone When I got Promoted 🎆

“Nicole is a pleasure to work with due to her attention to detail, tenacity, and positive attitude that reflects a “can do” spirit. She has made invaluable contributions, including her recent achievements in improving the quality our codebase through E2E testing with Cypress and the successful implementation of code coverage rules and reporting, Nicole’s hard work is truly commendable, and I extend my heartfelt congratulations on her well-deserved promotion.” - Alex Zvaniga

“Since Nicole has joined the DevOps team, she has demonstrated an unending desire to learn and grow in her position. This growth has been a great asset to us as we have been able to give her large projects and she has been able to take these on independently allowing DevOps to cover more ground.” - Mark DeBaets

“Nicole has an infectious positive energy that makes working on any project with her a lot of fun. I’ve also learned a lot from her, not least because she is always willing to take the time to help out and share knowledge.” - Nash Taylor

“It has been an absolute pleasure to work with Nicole over the past year. We have been able to overcome many challenges and persevere time and time again through our continued collaboration. Being able to confide in Nicole with regards to both work and life matters has been an incredible source of support and a true blessing. Thanks Nicole and congratulations on your well-deserved promotion!” - Dylan Masschelein

“Nicole and I joined Paystone at the same time and have worked pretty closely since. Her fearlessness and proactive approach to things has always impressed me. It’s been great witnessing her grow in her role and I’m excited to see where her future takes her!” - Chad Crowell


🛠️ Tools and Languages 🛠️

CI/CD

Infrastructure as Code

Coding and Scripting

Containers and Container Orchestration

Monitoring and Observability

Cloud

Database(s)

Package Managers and Artifact Repositories

automatetheboringstuff's People

Contributors

garrowni avatar ngarrow avatar

Watchers

 avatar

automatetheboringstuff's Issues

Character Picture Grid

Character Picture Grid
Say you have a list of lists where each value in the inner lists is a one-character string, like this:

grid = [['.', '.', '.', '.', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['.', 'O', 'O', 'O', 'O', 'O'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]

Think of grid[x][y] as being the character at the x- and y-coordinates of a “picture” drawn with text characters. The (0, 0) origin is in the upper-left corner, the x-coordinates increase going right, and the y-coordinates increase going down.

Copy the previous grid value, and write code that uses it to print the image.

..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....

Hint: You will need to use a loop in a loop in order to print grid[0][0], then grid[1][0], then grid[2][0], and so on, up to grid[8][0]. This will finish the first row, so then print a newline. Then your program should print grid[0][1], then grid[1][1], then grid[2][1], and so on. The last thing your program will print is grid[8][5].

Also, remember to pass the end keyword argument to print() if you don’t want a newline printed automatically after each print() call.

Comma Code

Comma Code - https://automatetheboringstuff.com/2e/chapter4/
Say you have a list value like this:

spam = ['apples', 'bananas', 'tofu', 'cats']

Write a function that takes a list value as an argument and returns a string with all the items separated by a comma and a space, with and inserted before the last item. For example, passing the previous spam list to the function would return 'apples, bananas, tofu, and cats'. But your function should be able to work with any list value passed to it. Be sure to test the case where an empty list [] is passed to your function.

The Collatz Sequence

Original Outline from Book
The Collatz Sequence - https://automatetheboringstuff.com/2e/chapter3/

Write a function named collatz() that has one parameter named number. If number is even, then collatz() should print number // 2 and return this value. If number is odd, then collatz() should print and return 3 * number + 1.

Then write a program that lets the user type in an integer and that keeps calling collatz() on that number until the function returns the value 1. (Amazingly enough, this sequence actually works for any integer—sooner or later, using this sequence, you’ll arrive at 1! Even mathematicians aren’t sure why. Your program is exploring what’s called the Collatz sequence, sometimes called “the simplest impossible math problem.”)

Remember to convert the return value from input() to an integer with the int() function; otherwise, it will be a string value.

Hint: An integer number is even if number % 2 == 0, and it’s odd if number % 2 == 1.

The output of this program could look something like this:

Enter number:
3
10
5
16
8
4
2
1

Input Validation
Add try and except statements to the previous project to detect whether the user types in a noninteger string. Normally, the int() function will raise a ValueError error if it is passed a noninteger string, as in int('puppy'). In the except clause, print a message to the user saying they must enter an integer.

  • collatz function
  • add user input
  • add validation

Coin Flip Streaks

Coin Flip Streaks - https://automatetheboringstuff.com/2e/chapter4/
For this exercise, we’ll try doing an experiment. If you flip a coin 100 times and write down an “H” for each heads and “T” for each tails, you’ll create a list that looks like “T T T T H H H H T T.” If you ask a human to make up 100 random coin flips, you’ll probably end up with alternating head-tail results like “H T H T H H T H T T,” which looks random (to humans), but isn’t mathematically random. A human will almost never write down a streak of six heads or six tails in a row, even though it is highly likely to happen in truly random coin flips. Humans are predictably bad at being random.

Write a program to find out how often a streak of six heads or a streak of six tails comes up in a randomly generated list of heads and tails. Your program breaks up the experiment into two parts: the first part generates a list of randomly selected 'heads' and 'tails' values, and the second part checks if there is a streak in it. Put all of this code in a loop that repeats the experiment 10,000 times so we can find out what percentage of the coin flips contains a streak of six heads or tails in a row. As a hint, the function call random.randint(0, 1) will return a 0 value 50% of the time and a 1 value the other 50% of the time.

You can start with the following template:

import random
numberOfStreaks = 0
for experimentNumber in range(10000):
    # Code that creates a list of 100 'heads' or 'tails' values.

    # Code that checks if there is a streak of 6 heads or tails in a row.
print('Chance of streak: %s%%' % (numberOfStreaks / 100))

Of course, this is only an estimate, but 10,000 is a decent sample size. Some knowledge of mathematics could give you the exact answer and save you the trouble of writing a program, but programmers are notoriously bad at math.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.