<?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: Justin 👨🏾‍💻</title>
    <description>The latest articles on DEV Community by Justin 👨🏾‍💻 (@justinjoeman).</description>
    <link>https://dev.to/justinjoeman</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%2F514937%2Fb32c4303-94d0-4e35-b722-ea0aa6501e55.jpeg</url>
      <title>DEV Community: Justin 👨🏾‍💻</title>
      <link>https://dev.to/justinjoeman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/justinjoeman"/>
    <language>en</language>
    <item>
      <title>How do you begin architecting a solution in AWS? Part 1</title>
      <dc:creator>Justin 👨🏾‍💻</dc:creator>
      <pubDate>Mon, 10 Jan 2022 12:16:30 +0000</pubDate>
      <link>https://dev.to/justinjoeman/how-do-you-begin-architecting-a-solution-in-aws-part-1-3jda</link>
      <guid>https://dev.to/justinjoeman/how-do-you-begin-architecting-a-solution-in-aws-part-1-3jda</guid>
      <description>&lt;p&gt;Every so often we may be presented with an idea or business problem that needs to be solved. Often as engineers or architects we are the ones that are presented with the challenge of coming up with a way to solve it. Do you ever wonder &lt;em&gt;"Where do I start?"&lt;/em&gt;. In this series of blog posts, I will break down how I like to approach these to deliver a solution that works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use case
&lt;/h3&gt;

&lt;p&gt;Let's say we wanted to create a shorturl service that anyone on the internet could use hosting it in AWS. For this use case, we will keep the feature set fairly basic. We want to be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Create a short URL&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We want a user to be able to go to our website &lt;code&gt;http://urlshort.com/&lt;/code&gt; for example, input a long URL that they want shortened and have this optionally emailed to the for their records.&lt;/p&gt;

&lt;p&gt;The short URL will look something like &lt;code&gt;http://urlshort.com/XmPLe&lt;/code&gt; which would be in place of a longer URL such as &lt;code&gt;http://mywebsite.mydomain.com/downloads/2021/april/files/private/shared/trailer.mov&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Access the real URL using the short url&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We want a user to be able to enter the short URL &lt;code&gt;http://urlshort.com/XmPLe&lt;/code&gt; into their web browser and be redirected to the real URL such as &lt;code&gt;http://mywebsite.mydomain.com/downloads/2021/april/files/private/shared/trailer.mov&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Beginning the process
&lt;/h3&gt;

&lt;p&gt;The stages of my process usually follows a pattern similar to this:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. If I was to do this as a human, what does the process look like from a high level or how would I do this physically?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Lets say the long url is someone's name and address (real URL / value) that they have asked me to store. I could write these details in a green notebook (website/frontend and datastore). Each name and address would appear on its own page in the notebook starting from 1. Let's say we have 10 different entries across 10 pages numbered 1 – 10 (keys). With this we have a way to translate a short url (key) to a real url (value).&lt;/li&gt;
&lt;li&gt;If I or the user wanted to add a new entry, I would open the green notebook, go to an empty page, say page 11, check if it is empty. If it is, I would enter new details. If it was not empty, I would go to the next page (creating a different key) until I found an empty one to create the entry (API / backend logic).&lt;/li&gt;
&lt;li&gt;After creating a new entry, I might write down the key on a piece of paper saying &lt;em&gt;"Dave's details are on page 11 in the green notebook"&lt;/em&gt; and hand this back to the requester to share with anyone they wanted to (notifying a user to remind them where the details are).&lt;/li&gt;
&lt;li&gt;Someone might come to me and say &lt;em&gt;"I want to see the details at number 7 as I need to retrieve/use this address"&lt;/em&gt;. I would go to the green notebook, find the key or page "7" and get the details. From there I would return the details to the requester (API / backend logic).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This analogy and human process translates to what our shorturl service would be doing.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;em&gt;"How would I mirror that human process and do this using a single machine/server ONCE?"&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;One way could be to create a text file in a folder with a unique name and add the information I need stored inside that text file. If we follow the number pattern from 0, our file name would be &lt;code&gt;0.txt&lt;/code&gt; and our real url would be stored inside that file. To retrieve the details I'd open the file and copy / paste the url into the browser.&lt;/p&gt;

&lt;p&gt;The goal here isn't to work out the most efficient way to do this once. It's just to do it once. Working out the most efficient way will come later. We generally refer to that type of thing as an &lt;em&gt;"implementation detail"&lt;/em&gt; which is something to be solved later.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. &lt;em&gt;"How would I do this TWICE? How would I do this X times?"&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;If we refer back to point 2, we have a very basic approach to doing this once. Doing multiple times could range from a number of approaches.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One way would be a program/script with a menu. One option would prompt the user for a value to be stored, the script generates a unique file to store the value and gives the user the filename as a key. Another option on the menu would prompt the user for the key. Once input, opens the file, reads the value and returns this to the user.&lt;/li&gt;
&lt;li&gt;You could also use the previous approach but store the data differently. You may choose to store all the data in one file, like a &lt;code&gt;json&lt;/code&gt; file called &lt;code&gt;urls.json&lt;/code&gt; and append new entries to the file.&lt;/li&gt;
&lt;li&gt;You may even also install a small database on the local server to store your data there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again, the goal here aren't to work out the most efficient way to do this; it's just to get a feel for our options.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. &lt;em&gt;What are the main components we have identified?&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;For example &lt;em&gt;"Do we need a webpage? Do we need to store any data? How / where do we store the data? etc"&lt;/em&gt;. So far it would look like we need the following to meet our use case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A website / frontend (for users to input the real url details)&lt;/li&gt;
&lt;li&gt;A datastore (to store details of the short / real url)&lt;/li&gt;
&lt;li&gt;A backend API or program (to create, add and retrieve values from the datastore)&lt;/li&gt;
&lt;li&gt;A way to send notifications (to let a user know the details of the short url)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once I have covered these main areas to form a basic outline of the main components, I would then be able to evaluate which AWS services fit the use case. &lt;/p&gt;

&lt;h3&gt;
  
  
  Important considerations
&lt;/h3&gt;

&lt;p&gt;It is important to remember this is one of many approaches when trying to come up with a solution to implement. As there is some ambiguity in the use case in what exactly is required (&lt;a href="https://aws.amazon.com/blogs/apn/the-5-pillars-of-the-aws-well-architected-framework/"&gt;5 Pillars of the AWS Well Architected Framework&lt;/a&gt; anyone?), we would likely have more questions to clarify the requirements and not do more (or less) than is required. This approach can help us to avoid skipping steps and optimise for a better solution. However in the &lt;em&gt;"real world"&lt;/em&gt; there are a number of other important considerations that you should factor in with your approach. Some of these include but not limited to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much time and resource do we have to finish the project?&lt;/li&gt;
&lt;li&gt;What are the cost constraints?&lt;/li&gt;
&lt;li&gt;What are the absolute "red lines" or boundaries that cannot be crossed? For example stakeholder / business deadline, must meet a regulatory standard or data must be kept for minimum of 5 years for reporting etc&lt;/li&gt;
&lt;li&gt;Do we have to learn new technology? Can this be done without affecting a currently deployed application?&lt;/li&gt;
&lt;li&gt;What sort of performance do we need? Do we need it to be highly available, fault tolerant, redundant, secure and scalable?&lt;/li&gt;
&lt;li&gt;Do you want a monolith solution or make use of a microservices architecture?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Coming up in Part 2
&lt;/h2&gt;

&lt;p&gt;In the next blog post we will begin to look at each of the main components and evaluate which AWS Service or combination of services would help us achieve an end to end solution.&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>I wish I knew this when I was younger...</title>
      <dc:creator>Justin 👨🏾‍💻</dc:creator>
      <pubDate>Sat, 02 Jan 2021 16:49:03 +0000</pubDate>
      <link>https://dev.to/justinjoeman/i-wish-i-knew-this-when-i-was-younger-ofh</link>
      <guid>https://dev.to/justinjoeman/i-wish-i-knew-this-when-i-was-younger-ofh</guid>
      <description>&lt;p&gt;Do you ever look back back and think, &lt;em&gt;"I wish that I knew what I know now when I was younger?"&lt;/em&gt; I often do this as I discover something that was right there in my face my whole life. Usually, it would be a case where someone older or with more experience would be giving advice and I would listen, but not take the right action on it. Years later I would then come to a place and think &lt;em&gt;"if I had just done X like so and so said..."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;If you've ever felt like that, this post is for you. You'll be able to see &lt;em&gt;what&lt;/em&gt; you should do along with &lt;em&gt;why&lt;/em&gt; you should be doing it.&lt;/p&gt;

&lt;h4&gt;
  
  
  TL;DR
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You don't need to know everything about everything&lt;/li&gt;
&lt;li&gt;Focus on the basics, learn the advanced things as you need them&lt;/li&gt;
&lt;li&gt;Be vocal about what you are learning&lt;/li&gt;
&lt;li&gt;Be as helpful as possible while maintaining your priorities&lt;/li&gt;
&lt;li&gt;Teach / share the knowledge you have with others&lt;/li&gt;
&lt;li&gt;Know what you bring to the table&lt;/li&gt;
&lt;li&gt;Small consistent improvements = big returns later&lt;/li&gt;
&lt;li&gt;Learn how to disagree in a good way&lt;/li&gt;
&lt;li&gt;Don't be shy to ask for help&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  You don't need to know everything about everything
&lt;/h4&gt;

&lt;p&gt;Honestly, you don't. Working in tech there is &lt;em&gt;always something new&lt;/em&gt; to use/learn - a new programming language, a new framework, a new monitoring tool... While it is always beneficial to know a wide scope of what is available to fit your use case, you can't possibly know it all and you don't even need to in order to be effective at what you do. You can &lt;em&gt;learn what you need to know when you need to know it&lt;/em&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  Focus on the basics, learn the advanced things as you need them
&lt;/h4&gt;

&lt;p&gt;Following on from the previous point, what you do end up getting to know, focus on the basics instead of everything about said tech/subject. You'll go on a course/study for an exam or go through tutorials and they will often cover beginner to advanced material. &lt;em&gt;A lot&lt;/em&gt; of the intermediate/advanced parts are for &lt;em&gt;specific use cases&lt;/em&gt; which you may never encounter. Not to mention the more advanced topics are often just layers and &lt;em&gt;layers of the basics&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;This is why focusing on the basics is important - it will allow you to understand more complex matters as well as filter out what you might not need to solve a problem.&lt;/p&gt;

&lt;h4&gt;
  
  
  Be vocal about what you are learning
&lt;/h4&gt;

&lt;p&gt;This lets others know that you are learning a particular skill, especially people with influence. You don't need to mention it 600 times a day but in the odd conversation find a way to bring it up. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"How was your weekend?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"My weekend was good, I spent a little time reading up/practicing on X. I think it is something that can be useful for us so I'll be making my suggestions soon!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is important because it gets people used to you being associated with what you are learning. Moreover, it holds you accountable to yourself to see it through. In the work place when there is a problem or a new project on the horizon, people will seek you out/give you a chance once they are used to you becoming confident on the subject. This will help you &lt;em&gt;stand out from the crowd&lt;/em&gt; and get an early advantage. &lt;/p&gt;

&lt;h4&gt;
  
  
  Be as helpful as possible while maintaining your priorities
&lt;/h4&gt;

&lt;p&gt;People tend to remember those that have helped/tried to help them, especially if the help came with a positive attitude. We have all met that person at work that you you only ask for help when &lt;em&gt;there is nobody else to help&lt;/em&gt;... &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"This isn't my job, why are you asking me?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"If they listened to me you wouldn't be having this problem"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I'm only doing this because I don't want your boss to moan at my boss about me"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't be that person.&lt;/strong&gt; Be more like:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"This isn't my area of expertise, but have you tried X? If that doesn't work, I know that David knows more about this. Let's see what he thinks"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Sure, I can do this for you in about 30 mins as I'm just finishing X. Send me the details and message me again in an hour if I haven't done it by then."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Normally the Tech Support team will be this but it won't take long to do this quickly, as I know about it also"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The reason why you should be doing this when it doesn't get in the way of your main priorities, is you &lt;em&gt;build social capital and reputation&lt;/em&gt;. People are more likely to return the favour and help those they like. They trust you more. It increases the value of your work network. When it is time for pay reviews, promotions or new projects, management will ask others how they feel about you and positive feedback will only improve the rewards you get.&lt;/p&gt;

&lt;h4&gt;
  
  
  Teach/share the knowledge with others
&lt;/h4&gt;

&lt;p&gt;Giving others some insight into the things you have learned improves your work life for a number of reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;There will be &lt;em&gt;less demands on your time&lt;/em&gt; to do things they could do themselves without much effort.&lt;/li&gt;
&lt;li&gt;You build a &lt;em&gt;good reputation&lt;/em&gt; for giving guidance.&lt;/li&gt;
&lt;li&gt;In the event you're on holiday and there is a problem which is relatively easy to fix, but the knowledge hasn't been shared - this can turn into a much bigger problem where they will call you to fix. &lt;/li&gt;
&lt;li&gt;You can &lt;em&gt;evaluate where you are&lt;/em&gt;, and where you need to improve.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is especially important if you want to advance into management/senior positions. People tend to look up the management chain for direction when a decision needs to be made. &lt;/p&gt;

&lt;p&gt;This leads me on to the next point:&lt;/p&gt;

&lt;h4&gt;
  
  
  Know your worth
&lt;/h4&gt;

&lt;p&gt;Be &lt;em&gt;brutally&lt;/em&gt; honest with yourself about what you bring to the table - what you can/can't do, what you are willing to do, etc. You have to know your strengths and weaknesses in order to show a company why you should be employed/paid more. You can work this out in a number of ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;What&lt;/em&gt; skills do I have &amp;amp; how competent am I? &lt;/li&gt;
&lt;li&gt;Do I need help when using these skills or am I pretty much self sufficient?&lt;/li&gt;
&lt;li&gt;What seems to be the salary range for jobs asking for these skills?&lt;/li&gt;
&lt;li&gt;What is my reputation/social capital like?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;What&lt;/em&gt; are my &lt;em&gt;weaknesses&lt;/em&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having an idea of where you currently are will help you evaluate what/where you can improve, if you are on track for your own career goals and if you should be paid more. If you decide you should be paid more, you'll need to have a good idea in order to give your salary negotiation the best chance (&lt;em&gt;more on this in another post&lt;/em&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  Small consistent improvements = big returns later
&lt;/h4&gt;

&lt;p&gt;Spending a little time inside or outside of work learning things to help you during work is very beneficial. &lt;em&gt;Just 15 mins a day&lt;/em&gt; watching a YouTube tutorial/playing around with what you've learned at a basic level, listening to a podcast about something useful, will help more than you realise. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Small gains add up to big returns.&lt;/strong&gt; If someone said they would give you £1 today if you took 5 mins to take some shopping up some stairs for someone, you might think, &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"it's just £1, I won't do it"&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;If they came back and said they would give you &lt;em&gt;£1 for every day you spend 5 mins taking shopping upstairs to that same person&lt;/em&gt;, you might think, &lt;/p&gt;

&lt;p&gt;&lt;em&gt;"5 mins every day for £1 would be £365 by the end of the year!"&lt;/em&gt; and say yes. &lt;/p&gt;

&lt;p&gt;Think about investing in yourself in this way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;1% better every day for a year = 37% improvement overall&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's &lt;em&gt;just with a small time investment&lt;/em&gt;. You can do this on your lunch break, or travelling to and from work if you really can't afford to give up any time in the evenings. You can also do it while cooking, tidying up or even at the gym walking on a treadmill! &lt;/p&gt;

&lt;p&gt;This type of improvement is also &lt;em&gt;a lot easier to manage day to day&lt;/em&gt; vs trying to learn a lot in a short space of time. Think about it, it took us a long time of learning every day to be able to do maths or write sentences. So, why do you think you'll be able to learn and be competent in complex, modern day systems in a 2-3 day course? Our brains need time to process the information we receive - &lt;em&gt;make it easier on yourself&lt;/em&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Learn how to disagree in a good way
&lt;/h4&gt;

&lt;p&gt;Luckily for me, I learned this very early on! We've all been in a situation where our manager tells us &lt;em&gt;"We're going to do this because X, Y, Z"&lt;/em&gt;. The team who does the work knows it is a terrible idea, and is obligated to being the bearer of bad news. &lt;/p&gt;

&lt;p&gt;How do you respond?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;"That isn't a good idea. It won't work. I'm not doing that as it will make things worse, and then I'll get shouted at when it breaks. If we have to do it then don't blame me when things go wrong."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"I don't think that will work as planned because of X, Y and Z. A better solution might be something like this as you gain this and limit the negative effects of that. I think this is a much better solution, but if we stick with the original plan I'll do the best I can with it"&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In both you are disagreeing with the plan. The first response will leave people with the view that you're &lt;em&gt;being unhelpful and don't really care&lt;/em&gt; (remember social capital?). In the second response, you're &lt;em&gt;giving a reason&lt;/em&gt; why it won't work, &lt;em&gt;offering an alternative&lt;/em&gt; solution, in addition to &lt;em&gt;remaining positive&lt;/em&gt; in the disagreement.&lt;/p&gt;

&lt;p&gt;It is important to master this as there will always be a time when you have to disagree in the workplace - better that you can do this without leaving a bad feeling in the air.&lt;/p&gt;

&lt;h4&gt;
  
  
  Don't be shy to ask for help
&lt;/h4&gt;

&lt;p&gt;It's a great feeling when you get around a hard problem all by yourself. But sometimes, you have to ask yourself, &lt;em&gt;"Is the time spent getting there worth it?"&lt;/em&gt;. I could spend a day researching error codes, looking on StackOverFlow etc trying to fix a bug custom Python Script... &lt;em&gt;or&lt;/em&gt;, I could ask someone if they have encountered this before on this specific script. &lt;/p&gt;

&lt;p&gt;You have to know when it is a good time to ask for help &lt;em&gt;AND&lt;/em&gt; how to ask for help. These are some rules I try to follow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you encounter something you might need some help on, &lt;em&gt;set a time limit&lt;/em&gt; to try to resolve it on your own. You could do 30 mins of research and if you haven't found a solution, then move on to the next stage and ask for help.&lt;/li&gt;
&lt;li&gt;When you need to ask for help, give detail of the problem and what you've tried.
&lt;em&gt;"Can you help with this Kubernetes problem? The pod isn't starting and the error says X. I've had a google and it says the fix is Y which hasn't worked. Have you come across this before?"&lt;/em&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This shows that you've put the effort in yourself to solve the problem, but are coming to someone for their expertise. &lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;When I reflect back on my life and career, these are just some areas that I think about. In closing, I ask you this question:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What advice would you give your younger self?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Nice to meet you</title>
      <dc:creator>Justin 👨🏾‍💻</dc:creator>
      <pubDate>Sun, 15 Nov 2020 17:51:42 +0000</pubDate>
      <link>https://dev.to/justinjoeman/nice-to-meet-you-4a7f</link>
      <guid>https://dev.to/justinjoeman/nice-to-meet-you-4a7f</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Hello World!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I bet you've seen that one 1000 times... well make that 1001! I just wanted to introduce myself into the blogging world, let you know what to expect from my future posts and just get started as this isn't really something I've done before.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Who am I? What do I do?&lt;/em&gt;&lt;/strong&gt; My name is Justin and I'm a Devops Engineer in London.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Career&lt;/em&gt;&lt;/strong&gt; - Spanning over 10 years starting from Desktop Support -&amp;gt; SysAdmin -&amp;gt; DevOps Engineer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;What to expect&lt;/em&gt;&lt;/strong&gt; - Some of the things I've had the chance to experience / work with presented in the most simple way (tech jargon isn't my strong point and for me felt more like a barrier to learning). Things I wish I knew before I needed to know them and hopefully give the insight to things that I didn't have to others.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who am I? What do I do?
&lt;/h2&gt;

&lt;p&gt;My name is Justin, a DevOps Engineer working for a Sportsbook Management company in London. I've been working here maybe 8 &amp;amp; half years now because of all the great things I get to do and learn here. Some of the tech stack I get to touch as part of my role are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gitlab (for source control + Continuous Integration / Continuous Delivery aka CI/CD)&lt;/li&gt;
&lt;li&gt;Jenkins (building packages)&lt;/li&gt;
&lt;li&gt;Amazon Web Services (AWS)&lt;/li&gt;
&lt;li&gt;Docker (Containers)&lt;/li&gt;
&lt;li&gt;Kubernetes (Container orchestration - think what / when / where / how to run a container and supporting infrastructure)&lt;/li&gt;
&lt;li&gt;Python (part of scripting deployments / custom programs)&lt;/li&gt;
&lt;li&gt;Powershell (deployments / monitoring)&lt;/li&gt;
&lt;li&gt;Linux &amp;amp; Windows Servers (hosting our services)&lt;/li&gt;
&lt;li&gt;CheckMK (one part of our monitoring solution)&lt;/li&gt;
&lt;li&gt;Slack (was it even worth listing this?)&lt;/li&gt;
&lt;li&gt;More that I think I'll add in a later iteration&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Career background
&lt;/h2&gt;

&lt;h4&gt;
  
  
  The start
&lt;/h4&gt;

&lt;p&gt;I started my career as Frontline Desktop Support / Support Analyst on a trading floor (think Wolf of Wall Street but not as crazy) after deciding that if I was going to potentially work for the rest of my life, might as well be with something I know a little about and enjoy - fixing computers! I then took the &lt;a href="https://www.comptia.org/certifications/a"&gt;Comptia A+&lt;/a&gt; so that I could solidify what I already knew as well as get the chance to even get an interview to show my ability &amp;amp; drive. Here I earned a good working knowledge of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Basic networking skills&lt;/strong&gt; - VLANs / Firewalls &amp;amp; switches / Network patching / Troubleshooting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Basic troubleshooting skills&lt;/strong&gt; - Is it even on? Does it have power? Is it connected? What does the error message actually say? Have you googled that error message?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VMWare - Virtualisation&lt;/strong&gt; - Think another laptop within your laptop to do things on without physically having another laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How applications actually fit together&lt;/strong&gt; - very important as you'll rarely be using something in isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Soft skills&lt;/strong&gt; - Talking to people. Translating tech things into "everyday language". Managing deadlines / expectations. Being accountable for your actions / inactions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These things would become fundamental to the work I do now.&lt;/p&gt;

&lt;h4&gt;
  
  
  The next step
&lt;/h4&gt;

&lt;p&gt;From here I moved to the company I am with now - I don't actually remember the job title but essentially it was a cross between Desktop Support / Junior SysAdmin in the IT Operations team. Before too long I was promoted to a Windows Systems Administrator. Some of the things I learned in this role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solidified VMWare knowledge&lt;/strong&gt; - setup from start to finish, preparing / racking / network patching the server, installing the software, creating virtual machines &amp;amp; troubleshooting various things&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Involved in a Data Centre migration&lt;/strong&gt; - A lot of network troubleshooting here! Not to mention really learning about the monitoring systems and how crucial they were to knowing what is going on in your environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some of the more advanced Infrastructure concepts &amp;amp; principles&lt;/strong&gt; - Clustering / Active Directory management / DNS / Config management / Backups / Recovery from problems / Load-balancing / Network storage management / provisioning machine images / introduction to scripted deployments etc&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Working with developers&lt;/strong&gt; - brand new world here being at the end of the pipeline for getting their software into production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security "best practices"&lt;/strong&gt; - Nobody wants to get hacked, so think about some level of security at least in all the work you do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We used to work via Kanban where the developers worked in an Agile way. This often caused bottlenecks in getting things into production because of differing priorities and ways of working. The company decided to restructure which would take me to the next stage of my career.&lt;/p&gt;

&lt;h4&gt;
  
  
  Enter DevOps
&lt;/h4&gt;

&lt;p&gt;You could say I entered the world of DevOps by complete chance. You could argue that I was always doing DevOps. However we are &lt;strong&gt;NOT&lt;/strong&gt; going to have that argument on whether DevOps is a job role or a culture or both - you can read up about that if are interested otherwise we might be here all day!&lt;/p&gt;

&lt;p&gt;Either way I was here, suddenly placed in a new role, in a new team and called a DevOps Engineer and expected to know EVERYTHING from the jump. When I say &lt;em&gt;EVERYTHING&lt;/em&gt; I mean &lt;strong&gt;&lt;em&gt;EVERYTHING&lt;/em&gt;&lt;/strong&gt;; Docker, Jenkins, querying metrics &amp;amp; log files, build pipelines, source control, Gitlab CI pipelines, all those AWS services like CloudFormation, EC2, ELB, Security Groups etc. I mean if you've ever touched AWS you'll know those things in their own right take time to get up to speed - throw everything else in the mix as well as needing to support a team of 6 developers? &lt;strong&gt;lol&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It was the &lt;strong&gt;most&lt;/strong&gt; challenging thing I've ever had to handle at work but the key thing I kept telling myself was &lt;em&gt;"Rome wasn't built in a day. Skill up day by day, brick by brick."&lt;/em&gt; With that I then focused on learning maybe one small thing a day until I knew enough to be comfortable being somewhat "self sufficient". That took about a year and a half for me to feel that way. The most difficult part was detangling all the moving parts that make up the DevOps role. In a future post I'll probably try to help with that.&lt;/p&gt;

&lt;p&gt;Anyway, recently I've become &lt;strong&gt;AWS Certified&lt;/strong&gt; with the &lt;a href="https://aws.amazon.com/certification/certified-solutions-architect-associate/"&gt;&lt;strong&gt;AWS Solutions Architect Associate&lt;/strong&gt;&lt;/a&gt; which I am very proud of. I'll detail that experience in another post. I'm mentioning this at every opportunity I get. I already do this at work when speaking to any decision makers or even those asking for my advice on what we should do!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"As you know I've been studying for the AWS Solutions Architect and I came across a service that would be useful for us to use / optimise what we have..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What to expect from future posts
&lt;/h2&gt;

&lt;p&gt;In my future posts I'm going to do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Breakdown the knowledge&lt;/strong&gt; I've built up over the years in an easy to consume format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explain&lt;/strong&gt; tech and concepts in ways I wish someone would have just told me as if they were my mentor. So many times reading documentation trying to work out where it fits in. It can seem impossible and once I did it for the first time I was like "is that it?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Walkthrough&lt;/strong&gt; my thought processes when problem solving&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to's&lt;/strong&gt; regarding things I use that could be useful for you or match a use case you might have.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well that's it for now - until next time...&lt;br&gt;
Yours truly,&lt;br&gt;
Justin.&lt;/p&gt;

</description>
      <category>welcome</category>
    </item>
  </channel>
</rss>
