<?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: Shelley Benhoff</title>
    <description>The latest articles on DEV Community by Shelley Benhoff (@sbenhoff).</description>
    <link>https://dev.to/sbenhoff</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F766663%2F33f88c0c-47fc-47fc-b456-df73193c16d3.png</url>
      <title>DEV Community: Shelley Benhoff</title>
      <link>https://dev.to/sbenhoff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sbenhoff"/>
    <language>en</language>
    <item>
      <title>7 Soft Skills Every Software Developer Needs to Succeed</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Fri, 30 Oct 2026 15:48:53 +0000</pubDate>
      <link>https://dev.to/sbenhoff/7-soft-skills-every-software-developer-needs-to-succeed-310o</link>
      <guid>https://dev.to/sbenhoff/7-soft-skills-every-software-developer-needs-to-succeed-310o</guid>
      <description>&lt;p&gt;When it comes to the skills that contribute to success in software development, technical capabilities like programming languages and other technologies surely spring to mind. However, more than two decades of experience in the tech field taught me that technical expertise is not enough. Although many highly skilled developers I've seen or worked with were not the top in understanding the nuances of the field, they always communicated well and were ready to collaborate. Here are 7 soft skills every software developer needs to succeed, and ways to improve communication, teamwork, and career growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Communication
&lt;/h2&gt;

&lt;p&gt;Even the best code will bring little profit if you fail to explain it or work with people in any way. In your work as a developer, you will have to communicate with a variety of audiences, including project managers, stakeholders, designers, and other developers, so having good communication skills is vital.&lt;/p&gt;

&lt;p&gt;For instance, to communicate effectively with a non-technical stakeholder, it's better to speak of how your decision will impact the business rather than describe implementation specifics. &lt;/p&gt;

&lt;p&gt;How to develop: Practice explaining everything in plain language. In meetings, don't hesitate to ask questions to clarify important information and make sure everyone is on the same page.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Problem Solving
&lt;/h2&gt;

&lt;p&gt;A software developer faces new problems regularly. However, problem solving doesn't only consist of solving the issue technically. An excellent developer knows how to break down complicated problems into small parts, analyze possible approaches, evaluate their pros and cons, etc. For example, if an application experiences performance issues, you shouldn't rush into fixing it. First, you need to determine the root of the problem, gather relevant information, and evaluate possible solutions. &lt;/p&gt;

&lt;p&gt;How to develop: Think twice before doing anything. Identify the problem, and only then find its solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Adaptability
&lt;/h2&gt;

&lt;p&gt;Changes are frequent in the IT sphere, as we always deal with new technologies, new tools, and changing business priorities. Developers who are against changes sooner or later lose their edge, while those who eagerly try something new have great chances for successful career building.&lt;/p&gt;

&lt;p&gt;Throughout my career, I had to switch from being a software developer to working in education, and then back again. However, I managed to adapt to the situation, which allowed me to see things differently and open up a new career path.&lt;/p&gt;

&lt;p&gt;How to develop: Try to get used to new things as fast as possible and develop a habit of learning and experimenting.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Teamwork and Collaboration
&lt;/h2&gt;

&lt;p&gt;Although you may be responsible for a certain feature in your development, you still work together with the rest of the team: designers, testers, other developers, etc. Successful developers realize that cooperation consists of more than participation in discussions. It also implies knowledge sharing and constructive code reviews, among other things.&lt;/p&gt;

&lt;p&gt;For example, if you review code and notice some mistake in it, you shouldn't only tell about the error but should explain why there is one and how it can be corrected properly.&lt;/p&gt;

&lt;p&gt;How to develop: Actively take part in the code review and document your decisions. Assist your teammates as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Time Management
&lt;/h2&gt;

&lt;p&gt;Developers often have to deal with lots of assignments – developing new features, testing applications, participating in meetings, resolving production-related issues, etc. Without effective time management, you risk spending your whole day solving trivial tasks without getting the job done. This was another lesson that I got during my work as a software developer, and now I know that busyness does not necessarily mean productivity.&lt;/p&gt;

&lt;p&gt;How to develop: Always prioritize your tasks according to their priority level. Break big tasks into small ones, and communicate with your team in case of a potential delay in your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Emotional Intelligence
&lt;/h2&gt;

&lt;p&gt;Being emotionally intelligent means understanding your own feelings and the effect of your behavior and decisions on other people. This skill is important in receiving critical feedback, conflict resolution, handling stress at the end of projects, and so on. For example, imagine receiving critical feedback during code review. You shouldn't react to this with aggression, but try to analyze it and ask clarifying questions. Developers who are emotionally intelligent are usually better at building relationships, and often prepare themselves for leading positions in the future.&lt;/p&gt;

&lt;p&gt;How to develop: Practice active listening and receiving constructive criticism.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Knowing When to Ask for Help
&lt;/h2&gt;

&lt;p&gt;This is possibly the most undervalued skill of developers, which I have learned by myself. At the beginning of my career, I was embarrassed to ask someone any question because of being afraid of seeming not knowledgeable enough. Unfortunately, that led to spending lots of time on something that could be done faster with help. Eventually, I came up with a simple rule: I asked for help whenever I found myself working on the same task without any progress for an hour. Asking questions does not make you less of a developer. On the contrary, you show that you understand your limitations and value other people's time.&lt;/p&gt;

&lt;p&gt;How to develop: Set up a time limit for trying to fix some problem without any help, and in case of failure, feel free to contact other developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Can You Develop Your Soft Skills?
&lt;/h2&gt;

&lt;p&gt;These 7 soft skills every software developer needs to succeed tell us that technical knowledge isn't enough to have a successful career in software development, which means you should work on your soft skills in order to make your future better. If it's hard for you to get into a position of senior developer, grow as a leader, or choose the next career move, I am ready to help.&lt;/p&gt;

&lt;p&gt;Using my career development coaching services, I work one-to-one with you to help you understand yourself better, to cope with your problems, and to draw up a strategy for further professional development.&lt;/p&gt;

&lt;p&gt;Interested in investing in your career? Let's discuss it! &lt;a href="https://hoffstech.com/coaching" rel="noopener noreferrer"&gt;Get your free 30-minute consultation here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>careerdevelopment</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Docker vs. Kubernetes: What’s the Difference?</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Thu, 22 Oct 2026 17:02:29 +0000</pubDate>
      <link>https://dev.to/sbenhoff/docker-vs-kubernetes-whats-the-difference-n0l</link>
      <guid>https://dev.to/sbenhoff/docker-vs-kubernetes-whats-the-difference-n0l</guid>
      <description>&lt;p&gt;If you start your journey with containers and applications, you have surely heard of Docker and Kubernetes technologies. These solutions are very popular among application developers nowadays. So you can ask yourself what is the difference between Docker vs. Kubernetes: What's the Difference?&lt;/p&gt;

&lt;p&gt;Let's figure out the basics behind them.&lt;/p&gt;

&lt;p&gt;The easiest way to explain the difference between these solutions is that Docker is responsible for creating and running containers, while Kubernetes is for managing these containers. Let's see how these platforms operate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Docker?
&lt;/h2&gt;

&lt;p&gt;Docker is a containerization platform that enables software engineers to develop reusable container images. An image contains all that is required to launch applications. This technology eliminates typical issues like working applications in one environment and failing in others.&lt;/p&gt;

&lt;p&gt;Using Docker, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create container images for your applications&lt;/li&gt;
&lt;li&gt;Run containers in any environment&lt;/li&gt;
&lt;li&gt;Create development and test environments&lt;/li&gt;
&lt;li&gt;Make application deployment simpler&lt;/li&gt;
&lt;li&gt;Combine several containers using Docker Compose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So let's say you build an ASP.NET Core application. Normally, you should install and configure the application's requirements (.NET environment) in every place where you want to test it. You'll do this once when creating a Docker image of your application. Later, you can run this Docker image as a container on your computer, test server, and even in the cloud environment. And the most significant advantage here is the predictability.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Kubernetes?
&lt;/h2&gt;

&lt;p&gt;Kubernetes (usually abbreviated K8S) is an open-source platform that enables the automated deployment, scaling, and management of containerized applications. If the first step was to simplify the process of running applications in containers, now the question is how to simplify their management. And this is the main idea of Kubernetes.&lt;/p&gt;

&lt;p&gt;Kubernetes manages containers, grouping them into units called Pods. They are launched in the Kubernetes clusters of machines named nodes.&lt;/p&gt;

&lt;p&gt;There are a number of features that Kubernetes provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Autoscaling: scales the number of application replicas according to the load if there are corresponding rules&lt;/li&gt;
&lt;li&gt;Self-healing: can restart failed containers or replace failed pods&lt;/li&gt;
&lt;li&gt;Load balancing: distributes the traffic between replicas of the application&lt;/li&gt;
&lt;li&gt;Rolling updates: updates the application version in a gradual manner&lt;/li&gt;
&lt;li&gt;Service discovery: makes possible applications communication using names rather than IP addresses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, usually there are several replicas of your application running to deal with load. But you have a campaign that raises the traffic several times and requires extra replicas of your application. So Kubernetes, if there are the correct settings, will automatically increase and then decrease the number of replicas. It will make sure that the application can respond correctly to the requests while wasting fewer infrastructure resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker vs. Kubernetes: Differences
&lt;/h2&gt;

&lt;p&gt;So as you can see, both solutions can be applied to containers, but their purposes are somewhat different.&lt;/p&gt;

&lt;p&gt;When working with containerized applications, Docker and Kubernetes have distinct roles to play. While Docker is concerned about container creation, management, and execution, it makes for the right tool in terms of local software development and testing, and for smaller-scale applications. It is not hard to learn how to use Docker, and it provides for easy development of consistent working environments. &lt;/p&gt;

&lt;p&gt;In contrast, Kubernetes is intended for orchestration and management of container operations on multiple hosts at once and is particularly relevant for large-scale distributed applications. While Docker offers Docker Compose for working with more than one container, Kubernetes allows for automatic application scaling, load balancing, auto-healing, and rolling deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Docker and Kubernetes Work Together
&lt;/h2&gt;

&lt;p&gt;As you can see, these two technologies are not competitors. In some cases, both Docker and Kubernetes are required, and they work in concert. For example, think about an online shopping application. Your application consists of the frontend, API backend, and a database.&lt;/p&gt;

&lt;p&gt;Here you can use Docker and Kubernetes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application development: You develop frontend and backend services of your application&lt;/li&gt;
&lt;li&gt;Creating Docker Images: You package each application part into a container&lt;/li&gt;
&lt;li&gt;Testing the application locally: You can start the application using Docker Compose&lt;/li&gt;
&lt;li&gt;Publishing your images to a container registry&lt;/li&gt;
&lt;li&gt;Launching the application in Kubernetes&lt;/li&gt;
&lt;li&gt;Managing production workload: Using Kubernetes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It should be noted that Kubernetes doesn't use Docker Engine anymore by default. The main runtimes here are containerd and CRI-O. However, Docker images work well with Kubernetes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which One Should Be Learned First?
&lt;/h2&gt;

&lt;p&gt;If you are a beginner and you want to start using containerization technology, you will find it useful to start with Docker first. You should get the basic knowledge of containers, images, Dockerfile, networking, volumes, etc. Only after getting this information can you move on and study Kubernetes. So learn Pods, Deployments, Services, and other things related to Kubernetes that make it possible to handle applications. Also note that you may not need Kubernetes for each of your projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn Docker with Me
&lt;/h2&gt;

&lt;p&gt;Do you want to master Docker? There is a chance! My course &lt;a href="https://www.linkedin.com/learning/docker-your-first-project/your-first-docker-project" rel="noopener noreferrer"&gt;Docker: Your First Project&lt;/a&gt; on LinkedIn Learning is a part of the Docker Foundations Professional Certificate learning path. And it will show you how to develop your first containerized application.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>containers</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>What to Do When You Feel Stuck in Your Tech Career</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Tue, 20 Oct 2026 18:52:39 +0000</pubDate>
      <link>https://dev.to/sbenhoff/what-to-do-when-you-feel-stuck-in-your-tech-career-24ck</link>
      <guid>https://dev.to/sbenhoff/what-to-do-when-you-feel-stuck-in-your-tech-career-24ck</guid>
      <description>&lt;p&gt;How many times have you felt stuck in your career, like nothing new happens? Perhaps you have worked in the same position for a long time, have not improved your skill set, and cannot see what path your career will take next. Does it remind you of something?&lt;/p&gt;

&lt;p&gt;When you feel like you are stuck in your tech career, it is pretty discouraging because it can be difficult to find the right path when working in the IT sphere due to constant changes. However, as I found during my career path, feeling stuck does not always mean you are in the wrong sphere of business; you need a change sometimes.&lt;/p&gt;

&lt;p&gt;Here are 6 steps you should follow in order to find what to do when you feel stuck in your tech career.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Understand Why You Are Stuck
&lt;/h2&gt;

&lt;p&gt;To make a step forward in your career, understand why you feel you are stuck.&lt;/p&gt;

&lt;p&gt;Ask yourself questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you growing as a professional working in your current position?&lt;/li&gt;
&lt;li&gt;Is your job interesting to you?&lt;/li&gt;
&lt;li&gt;Can you be promoted inside the company where you are working?&lt;/li&gt;
&lt;li&gt;Are your contributions appreciated in the company?&lt;/li&gt;
&lt;li&gt;Are you burnt out or are you just bored with your work?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feeling stuck because of burnout and the feeling you have outgrown your current job are not the same thing. For example, if you love software development and your work seems to be repetitive, you should find a new challenge instead of making a turn in another direction. Finding the reason for your feeling can help you find the solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Decide What You Want to Have Next in Your Career
&lt;/h2&gt;

&lt;p&gt;Another very common mistake is telling you don't want to do something, instead of trying to understand what you do want to do. "It's time for me to have a new job" is easier to say than understanding why you need it.&lt;/p&gt;

&lt;p&gt;During my career path, I moved from developer to team lead, then to lead developer, and finally became a technology leader. I couldn't plan my 10-year perspective from the beginning of my career, so I took all steps that could offer me a new experience.&lt;/p&gt;

&lt;p&gt;Now, you should not understand your entire future path in detail. Try to define your goals in the near future. Perhaps, it means becoming a senior developer, taking a managerial position, working in DevOps, or some other area. What is more important, now you should think about the next step in your career, not about the entire future path.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Find Out What Additional Skills You Need To Reach Your Objectives
&lt;/h2&gt;

&lt;p&gt;After having decided on your next step in your career, think about the additional skills you need in order to get to the next level. For example, if you dream about being the technical lead, improving your coding skills is not enough.&lt;/p&gt;

&lt;p&gt;The additional skills can be, among others:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explaining complicated technical concepts to specialists in other fields&lt;/li&gt;
&lt;li&gt;Mentoring junior developers&lt;/li&gt;
&lt;li&gt;Making architectural decisions&lt;/li&gt;
&lt;li&gt;Prioritizing tasks and coordination&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or, for instance, if your dream is to become a cloud engineer or DevOps specialist, you will need to learn new technologies like Docker, Kubernetes, CI/CD pipelines, and cloud platforms.&lt;/p&gt;

&lt;p&gt;Obviously, you shouldn't learn everything at once. Take one or two skills that would help you come one step closer to your objectives.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Find Ways to Move Forward With Your Current Employer
&lt;/h2&gt;

&lt;p&gt;Sometimes the best option to break through your feeling of being stuck is to stay where you are and use all existing opportunities. Before you start your job search, you should analyze your current employer and see what opportunities are possible.&lt;/p&gt;

&lt;p&gt;Do you have opportunities to do some volunteering outside your routine tasks? Can you help your junior developers to become better? Are you able to run a small tech project? Discuss your opportunities to develop with your manager.&lt;/p&gt;

&lt;p&gt;For example, if you dream about becoming a lead developer, you can volunteer to manage a small project and lead all technical discussions. All these activities can increase your confidence and show that you are ready for new responsibilities. Of course, every company can offer such opportunities. In case you discussed your goals with your employer but there is no place for you, you can move forward in another way.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Talk to Somebody Who Has Already Had the Same Problems
&lt;/h2&gt;

&lt;p&gt;Being stuck can blind you and prevent you from noticing some obvious opportunities. Speaking to somebody who had the same experience can help you. Discuss your problems and obstacles with your mentor, former colleagues, or career coach. Tell them about your situation, your goals, and difficulties, and ask them what helped you overcome the mentioned issues.&lt;/p&gt;

&lt;p&gt;As a career coach for IT professionals, I often observe that people underestimate their experience and abilities. Discussing the issue with somebody else opens new opportunities for you.&lt;/p&gt;

&lt;p&gt;You do not have to solve everything alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Make an Action Plan and Start Realizing It
&lt;/h2&gt;

&lt;p&gt;You can consider changing your career for a month and do nothing. Making the action plan instead of waiting for a perfect plan can help you start acting.&lt;/p&gt;

&lt;p&gt;If you want to be a leader, you can schedule a meeting with your manager. If you dream about working with some new technologies, develop a project for yourself. And if you are ready to make applications for new jobs, update your CV and LinkedIn.&lt;/p&gt;

&lt;p&gt;Create some achievable goals for the next 30 days and plan the steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to Get Your Career Moving?
&lt;/h2&gt;

&lt;p&gt;In case you are feeling stuck, not quite understand how to move forward, or need to make some advances in your career, I can help. Together we will analyze your goals and obstacles, and find some ways to move forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hoffstech.com/coaching" rel="noopener noreferrer"&gt;Book Your Free Career Coaching Consultation!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>careerdevelopment</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to Access a Running Container with Docker Exec</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Wed, 14 Oct 2026 15:53:58 +0000</pubDate>
      <link>https://dev.to/sbenhoff/how-to-access-a-running-container-with-docker-exec-3cpg</link>
      <guid>https://dev.to/sbenhoff/how-to-access-a-running-container-with-docker-exec-3cpg</guid>
      <description>&lt;p&gt;You've created your application, placed it into a container, and deployed it. However, your application seems to behave strangely. It is unable to connect to the database, your configuration file doesn't load properly, or you've got an error message that doesn't really say anything.&lt;/p&gt;

&lt;p&gt;So far, you've checked your container's logs and couldn't get enough information out of them. Wouldn't it be great to enter the container and check everything manually?&lt;/p&gt;

&lt;p&gt;And here comes the &lt;code&gt;docker exec&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;In this article, I will cover how to access a running container with Docker exec, execute commands inside containers, and troubleshoot some typical problems without stopping your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Docker Exec
&lt;/h2&gt;

&lt;p&gt;Using the &lt;code&gt;docker exec&lt;/code&gt; command, you can execute any command inside an already running container.&lt;/p&gt;

&lt;p&gt;The most useful feature of this command is the possibility to open an interactive shell allowing you to examine the container's filesystem, processes, and the environment.&lt;/p&gt;

&lt;p&gt;It will help you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check your configuration files and environment variables&lt;/li&gt;
&lt;li&gt;Verify that your application files are in the right directory&lt;/li&gt;
&lt;li&gt;Troubleshoot networking and connectivity problems&lt;/li&gt;
&lt;li&gt;Check running processes&lt;/li&gt;
&lt;li&gt;Execute diagnostic commands without stopping your container&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But remember that containers are lightweight, so they might lack some of the tools that are usually installed on a regular host machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Find Your Running Container
&lt;/h3&gt;

&lt;p&gt;Before you access your container, you should find out which container you want to investigate.&lt;/p&gt;

&lt;p&gt;Open a terminal and type:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command will display the list of running containers together with their container IDs, names, images, and statuses.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;`CONTAINER ID &amp;nbsp; IMAGE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NAMES&lt;/p&gt;

&lt;p&gt;a1b2c3d4e5f6 &amp;nbsp; nginx:latest &amp;nbsp; Up 10 minutes&amp;nbsp; my-web-app`&lt;/p&gt;

&lt;p&gt;Here we have an Nginx container called &lt;code&gt;my-web-app&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can use either container ID or name when executing Docker commands. I prefer using names because it's easier to remember them.&lt;/p&gt;

&lt;p&gt;Open an Interactive Shell Inside Your Container&lt;/p&gt;

&lt;p&gt;Now that you've found the container you want to work with, you can access it and open the interactive shell:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker exec -it my-web-app /bin/bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here is what each part of the command means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;docker exec: executes a command inside a running container&lt;/li&gt;
&lt;li&gt;-i: keeps standard input open for interaction with the shell&lt;/li&gt;
&lt;li&gt;-t: allocates a pseudo-TTY for interactive use&lt;/li&gt;
&lt;li&gt;my-web-app: specifies a container that you want to use&lt;/li&gt;
&lt;li&gt;/bin/bash: starts a bash shell in this container&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The -it flag is actually two separate options combined for convenience.&lt;/p&gt;

&lt;p&gt;And now you've entered the shell of your container.&lt;/p&gt;

&lt;p&gt;But keep in mind that not all Docker images have a Bash shell installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Troubleshooting
&lt;/h2&gt;

&lt;p&gt;Now that you're inside your container, let's have a look at several practical examples of troubleshooting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 1: Checking Your Application Files
&lt;/h3&gt;

&lt;p&gt;Suppose that your application is unable to load a configuration file.&lt;/p&gt;

&lt;p&gt;You can use the following command to check the filesystem:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls -la /app&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command will show you the list of files in &lt;code&gt;/app&lt;/code&gt; directory, assuming that your application files are located in this directory.&lt;/p&gt;

&lt;p&gt;You can check a particular file by using the &lt;code&gt;cat&lt;/code&gt; command, for example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat /app/config.json&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This allows you to verify that your file exists and has the correct settings in it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 2: Checking Environment Variables
&lt;/h3&gt;

&lt;p&gt;As a common practice, your containerized application uses environment variables for configuration.&lt;/p&gt;

&lt;p&gt;To check them, you can use the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;printenv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can check a particular variable:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;printenv NODE_ENV&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If your application requires &lt;code&gt;NODE_ENV&lt;/code&gt; to be set to &lt;code&gt;production&lt;/code&gt;, this command will check that it is so.&lt;/p&gt;

&lt;p&gt;Remember that it is a good practice not to share environment variables because they might include sensitive information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 3: Network Connectivity Problems
&lt;/h3&gt;

&lt;p&gt;Let's say your application cannot connect to another service.&lt;/p&gt;

&lt;p&gt;You can try to use the following command to check it:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -I http://api-service:8080&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command sends an HTTP HEAD request to the service specified and outputs its headers.&lt;/p&gt;

&lt;p&gt;In case of failure, you might have a networking or DNS problem, or the service is unavailable.&lt;/p&gt;

&lt;p&gt;Keep in mind that some diagnostic tools might not be included in your container image.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Executing Commands Without Opening a Shell
&lt;/h2&gt;

&lt;p&gt;Sometimes you don't need to open an interactive shell to check your container.&lt;/p&gt;

&lt;p&gt;For example, you can list files from your terminal directly:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker exec my-web-app ls -la /usr/share/nginx/html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can check a particular environment variable too:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker exec my-web-app printenv NODE_ENV&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It is a great feature when you want to run a single command and don't want to open a shell session.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Leaving the Shell
&lt;/h2&gt;

&lt;p&gt;When you've finished troubleshooting, just type:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will exit your interactive shell session.&lt;/p&gt;

&lt;p&gt;Leaving the shell doesn't stop your container! Your application continues working as before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices When Using Docker Exec
&lt;/h2&gt;

&lt;p&gt;Although &lt;code&gt;docker exec&lt;/code&gt; is a powerful diagnostic tool, there are a couple of things to consider.&lt;/p&gt;

&lt;p&gt;First, don't make any permanent changes in a running container. All changes in the writable filesystem of your container will disappear when your container is destroyed and built again.&lt;/p&gt;

&lt;p&gt;Instead, update your Dockerfile or your application source code when needed and build your container again.&lt;/p&gt;

&lt;p&gt;Also, don't install unnecessary debugging tools in your production containers. Keeping container images small decreases their attack surface and increases the efficiency of deployment.&lt;/p&gt;

&lt;p&gt;And finally, don't forget that you can use &lt;code&gt;docker exec&lt;/code&gt; only in a running container. If your container stops immediately after starting, you need to investigate its logs or the configuration first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you want to learn more about working with Docker containers?
&lt;/h2&gt;

&lt;p&gt;Then you may have a look at my &lt;a href="https://linkedin.com/learning/docker-your-first-project" rel="noopener noreferrer"&gt;Docker: Your First Project&lt;/a&gt; course on LinkedIn Learning. It is a part of the Docker Foundations Professional Certificate learning path, where you will get hands-on experience building and running containers.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>containers</category>
    </item>
    <item>
      <title>5 Signs It's Time For a Career Change</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Mon, 12 Oct 2026 20:05:58 +0000</pubDate>
      <link>https://dev.to/sbenhoff/5-signs-its-time-for-a-career-change-6e4</link>
      <guid>https://dev.to/sbenhoff/5-signs-its-time-for-a-career-change-6e4</guid>
      <description>&lt;p&gt;Do you ever start a day wondering: “Is this what I am really meant to do for the next five years?” Of course, every employee has bad days at work. It might be due to a challenging project, unrealistic deadlines, or an unpleasant manager. However, experiencing a lack of motivation for some weeks or even months doesn’t mean that you have picked the wrong career path.&lt;/p&gt;

&lt;p&gt;I’ve been working in tech for over 25 years. Being a developer, then a team lead, lead developer, and finally a technology leader, I have seen a lot of things over these years. I can assure you that professional growth doesn’t always mean progressing in your career. So here are 5 signs you have to consider for changing your career.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. You Don't See Yourself Improving
&lt;/h2&gt;

&lt;p&gt;As soon as you enter your profession, you see all the challenges you have to face. You learn a lot and develop your skills. However, with the passing of time, you stop discovering anything new and do the same routine again.&lt;/p&gt;

&lt;p&gt;For example, you have been a software developer for 5 years, working with the same application all the time. Now, you know the codebase perfectly and know how to deal with any issue associated with it. However, you understand that it’s becoming a routine and you cannot learn anything new. While the other developers in your company study cloud technologies, AI, and the latest trends in development.&lt;/p&gt;

&lt;p&gt;On the one hand, you feel quite comfortable in your current position, but on the other hand, you understand that you are losing ground. Before making a decision, try to ask yourself if there are some ways to improve within your company. Perhaps, you can participate in some new projects or become a leader. If you check everything and still feel like you are at a dead end, maybe it’s high time for change.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. You Feel Like Work Isn't Interesting For You
&lt;/h2&gt;

&lt;p&gt;There are no ideal professions. We all have meetings, administrative tasks, and projects we don’t like. However, what if you have lost the joy of doing your work?&lt;/p&gt;

&lt;p&gt;For example, let’s imagine that you are a senior developer who worked very hard to become an engineering manager. You have succeeded and feel proud of yourself, but after some years of performance reviews, budget meetings, project planning, and similar tasks, you realize that you miss your days as a developer.&lt;/p&gt;

&lt;p&gt;Actually, you aren’t dissatisfied with your company. You just understood that you are not interested in management anymore. It doesn’t mean that your experience was useless. On the contrary, your leadership skills can make you a much better technical leader or individual contributor. In short, sometimes, a change in your career means a change in your place within it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Your Career Is No Longer in Tune With Your Life Goals
&lt;/h2&gt;

&lt;p&gt;What was important for you at the age of 25 is completely different from what matters to you when you are 35, 45, or 55. At the early stages of your career, you may concentrate on getting a higher position and higher salary, developing your skills, and having promotions. However, after some time, you may understand that the balance has changed and now you value flexibility, interesting work, stability, and more time for your family. Actually, it’s quite normal that your priorities have changed.&lt;/p&gt;

&lt;p&gt;Let’s suppose that you are a technology leader, leading several development teams. You have a nice salary and position, but your job includes a lot of travelling, evening and weekend work. Several years ago, this situation fitted you well, but now you want to have more freedom in your schedule and some time for your hobbies.&lt;/p&gt;

&lt;p&gt;Perhaps you can consider consulting, teaching, technical writing, or any other profession that does not require so much responsibility. What you have to ask yourself is whether your career helps you to have the life you want to have. If your priorities have changed, maybe you have to change your career as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. You're Stressed All the Time
&lt;/h2&gt;

&lt;p&gt;Stress is a natural thing in any profession, especially in tech, because of tight deadlines and a rapidly changing environment. However, you shouldn’t feel stress all the time. Otherwise, you risk burning out. Maybe you spend most of your evenings and weekends at work. Or you have to spend Sundays preparing for a new working week. Or you feel exhausted from your work and cannot do anything else.&lt;/p&gt;

&lt;p&gt;Let’s imagine that you are a lead developer of a critical production application. Your team is understaffed, the deadlines are unrealistic, and you are always fixing urgent bugs and solving emergencies. You’ve discussed the problems with the leaders of your company several times, but nothing has changed. Finally, your stress affects your life negatively. It disturbs your sleep, hurts your relationships with people, and influences your health.&lt;/p&gt;

&lt;p&gt;Before making a decision about changing your career, try to understand whether your stress is caused by your profession or the way you organize your work. Maybe you should find another company or another team to work with. However, if your profession requires you to have so much stress all the time, maybe you have to change your profession.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. You Keep Dreaming About Something Different
&lt;/h2&gt;

&lt;p&gt;Sometimes, the clearest sign of the necessity to change your career is that you constantly dream about something else. Maybe you researched different types of work, took some online courses, and imagine yourself working in some other profession. Then you start dreaming about these careers.&lt;/p&gt;

&lt;p&gt;For example, you are an experienced developer who loves mentoring young people. You always volunteer to introduce new hires in your company, explain something technical to them, and help them to build their career paths. Eventually, you start dreaming about how nice it would be to teach or to train developers. Such dreams may be the sign that you have to change your career path.&lt;/p&gt;

&lt;p&gt;However, being interested in some other type of work doesn’t necessarily mean that you have to change your job immediately. Instead, you can try to understand this sphere better. You can volunteer for some projects, communicate with people who work in this sphere, and experiment. Perhaps, you will find a new career path for yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Act When You Want To Change Your Career?
&lt;/h2&gt;

&lt;p&gt;Recognition of your desire to change your career is the first step. However, figuring out what to do next may be challenging, especially if you spent many years building your professional background. The good news is that changing your career path doesn’t necessarily mean that you have to forget about all your experience.&lt;/p&gt;

&lt;p&gt;Your technical skills, leadership experience, communication skills, and ability to solve problems may be useful in many other spheres and jobs. And, actually, you don’t have to make a big step right away. You can start with understanding what is missing in your current career, search for some opportunities, and build a realistic plan. Remember that you don’t have to know where you want to go yet. It’s enough to know what to do next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready To Move Your Career Forward?
&lt;/h2&gt;

&lt;p&gt;If you feel stuck, are considering changing your career, or are looking for advice on what to do next, I can help you. We will figure out your goals, search for some opportunities, and build a realistic plan to move your career forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hoffstech.com/coaching" rel="noopener noreferrer"&gt;Learn more about career coaching and schedule a free consultation.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
    <item>
      <title>Getting Started with .NET and Docker Tutorial</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Wed, 18 Dec 2024 18:27:05 +0000</pubDate>
      <link>https://dev.to/sbenhoff/getting-started-with-net-and-docker-tutorial-31o0</link>
      <guid>https://dev.to/sbenhoff/getting-started-with-net-and-docker-tutorial-31o0</guid>
      <description>&lt;p&gt;In today’s development landscape, Docker has become an essential tool for containerizing applications. It allows developers to create, deploy, and run applications in isolated environments, ensuring consistency across different stages of development and deployment. In this Getting Started with .NET and Docker Tutorial, I’ll guide you through creating a .NET project in Visual Studio with Docker container support, enabling you to leverage Docker for simplified deployment and scalability.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/fA3A6yb6KQs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Docker Desktop
&lt;/h2&gt;

&lt;p&gt;First, you need to download and install Docker Desktop from the &lt;a href="http://docker.com/products/docker-desktop" rel="noopener noreferrer"&gt;Docker website&lt;/a&gt;. You can leave all of the default options checked during the installation process. Once it’s downloaded, sign in using your Docker Hub account. If you don’t have an account, you can sign up at &lt;a href="https://hub.docker.com" rel="noopener noreferrer"&gt;hub.docker.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once Docker Desktop is running, right-click on the icon in your system tray and select “Switch to Windows containers.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fi10mqt22lqdlok0a72sa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fi10mqt22lqdlok0a72sa.png" alt="Image description" width="296" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you get an error message saying that you need to enable Windows containers, run the PowerShell script specified in the dialog in a terminal with admin rights and restart your PC. Then, make sure to start Docker Desktop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fdqqepcjx6vy9hy7nj34x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fdqqepcjx6vy9hy7nj34x.png" alt="Image description" width="570" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a .NET Core Project in Visual Studio
&lt;/h2&gt;

&lt;p&gt;You also need Visual Studio 2022 Community Edition which you can get from &lt;a href="https://visualstudio.microsoft.com/vs/community/" rel="noopener noreferrer"&gt;visualstudio.microsoft.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Open Visual Studio 2022 and click Create a new project in the welcome dialog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ft05mcllp7h3wapqaqgp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ft05mcllp7h3wapqaqgp9.png" alt="Image description" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Create a new project dialog, search for “.net core web app” and select the ASP.NET Core Web App (Razor Pages) template. Then, click Next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fxu2n2bmoeyy5zc0knh2v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fxu2n2bmoeyy5zc0knh2v.png" alt="Image description" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Name the project AspNetCoreDockerDemo and select the location where you want to create an application. Then, click Next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffuputvib1ts37jusjjk9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffuputvib1ts37jusjjk9.png" alt="Image description" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Additional information dialog, ensure “Configure for HTTPS” is unchecked and the “Enable container support” box is checked. In the Container OS dropdown, select Windows. Then, in the Container Build Type dropdown, select Dockerfile and then click Create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fo27pzy9iqpvhg2isnut6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fo27pzy9iqpvhg2isnut6.png" alt="Image description" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewing the Dockerfile
&lt;/h2&gt;

&lt;p&gt;In the solution explorer, you should see a Dockerfile. Let’s take a look at this in detail.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;br&gt;
This stage sets up the base runtime environment your application will run on.    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Base Image:&lt;/strong&gt; Uses the ASP.NET Core runtime image (not the SDK), ensuring a minimal, efficient runtime environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WORKDIR /app:&lt;/strong&gt; Sets the working directory inside the container to /app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EXPOSE 8080:&lt;/strong&gt; Informs Docker that the container listens on port 8080 at runtime.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-1809 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["AspNetCoreDockerDemo/AspNetCoreDockerDemo.csproj", "AspNetCoreDockerDemo/"]
RUN dotnet restore "./AspNetCoreDockerDemo/AspNetCoreDockerDemo.csproj"
COPY . .
WORKDIR "/src/AspNetCoreDockerDemo"
RUN dotnet build "./AspNetCoreDockerDemo.csproj" -c %BUILD_CONFIGURATION% -o /app/build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;br&gt;
This stage is responsible for restoring dependencies and compiling your application.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ARG BUILD_CONFIGURATION=Release:&lt;/strong&gt; Defines a build-time argument to specify the build configuration (defaulting to Release).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WORKDIR /src:&lt;/strong&gt; Sets the working directory to /src, where your source code will be copied.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;COPY [“AspNetCoreDockerDemo/AspNetCoreDockerDemo.csproj”, “AspNetCoreDockerDemo/”]:&lt;/strong&gt; Copies the project file into the container.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RUN dotnet restore “./AspNetCoreDockerDemo/AspNetCoreDockerDemo.csproj”:&lt;/strong&gt; Restores all required NuGet packages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;COPY . .:&lt;/strong&gt; Copies the entire source code into the container (to /src).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WORKDIR “/src/AspNetCoreDockerDemo”:&lt;/strong&gt; Navigates into the project’s source directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RUN dotnet build …:&lt;/strong&gt; Builds the project in the specified configuration, outputting compiled artifacts to /app/build.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./AspNetCoreDockerDemo.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;br&gt;
This stage publishes the built application into a folder ready for deployment.    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ARG BUILD_CONFIGURATION=Release:&lt;/strong&gt; Reuses the configuration argument to ensure consistent build mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RUN dotnet publish … -o /app/publish:&lt;/strong&gt; Publishes the application, which includes precompiled binaries and all necessary runtime files, into /app/publish. The /p:UseAppHost=false parameter helps reduce the image size by excluding certain host executables on some platforms.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "AspNetCoreDockerDemo.dll"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;br&gt;
This is the final image that will actually be run. It uses the smaller runtime image and includes only the essential published files. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WORKDIR /app:&lt;/strong&gt; Ensures the working directory is /app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;COPY –from=publish /app/publish .:&lt;/strong&gt; Copies the published output from the publish stage into the final image.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ENTRYPOINT [“dotnet”, “AspNetCoreDockerDemo.dll”]:&lt;/strong&gt; Specifies the command that runs when the container starts. It launches the ASP.NET Core application using the .dll file compiled and published in previous stages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Running the .NET Web Application in a Docker Container
&lt;/h2&gt;

&lt;p&gt;Now, let’s run our application. In the top toolbar, click the start button. This will open your browser and you should see the Welcome page!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffmxx4ynh1sdfk5y6gfez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffmxx4ynh1sdfk5y6gfez.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you look at Docker Desktop, you will see the container for our application. This is where you can view the container logs and inspect the container to aid in troubleshooting.&lt;/p&gt;

&lt;p&gt;With Visual Studio, Docker integration makes it easy to containerize and deploy .NET applications. By following these simple steps, you can create, build, and run a Docker container for your .NET projects, enabling more efficient and consistent development and deployment workflows. &lt;/p&gt;

&lt;h2&gt;
  
  
  Get Valuable Learning Resources Delivered To Your Inbox Every Wednesday!
&lt;/h2&gt;

&lt;p&gt;You can learn more about this Getting Started with .NET and Docker Tutorial in my &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Tech Career Newsletter&lt;/a&gt;. This newsletter will give you insight into multiple stages of your career so that you can form your career plan, overcome learning blockers, and stay competitive in today’s crowded job market. It includes featured content from authors and influencers in my network to help you navigate your career and learn new skills. Subscribe today at &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;hoffstech.com/newsletter&lt;/a&gt; and set yourself up for career success!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>dotnet</category>
      <category>dotnetcore</category>
      <category>devops</category>
    </item>
    <item>
      <title>Docker Run vs Docker Start</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Wed, 11 Dec 2024 15:15:47 +0000</pubDate>
      <link>https://dev.to/sbenhoff/docker-run-vs-docker-start-3gcm</link>
      <guid>https://dev.to/sbenhoff/docker-run-vs-docker-start-3gcm</guid>
      <description>&lt;p&gt;Docker has revolutionized the way we build, ship, and run applications, offering developers an efficient way to manage containerized environments. Among the numerous Docker commands, docker run and docker start are two of the most commonly used, yet they often cause confusion among beginners. This blog post will clarify the difference between the docker run and docker start commands, provide walkthroughs for their usage, and discuss use cases where each is applicable.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/CCOtVeJX8Cc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker Run Command
&lt;/h2&gt;

&lt;p&gt;The docker run command creates and starts a new container from an image. Think of it as a two-in-one command: it initializes a container (if one doesn’t already exist) and starts it immediately. The syntax is docker run, followed by the options, image name, startup command, and arguments.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker run [OPTIONS] IMAGE [COMMAND] [ARG...]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Some key options you will often encounter include:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-d: Runs the container in detached mode (in the background).
-it: Runs the container interactively with a terminal.
--name: Assigns a custom name to the container.
-p: Maps host and container ports.
-v: Mounts a volume to persist data.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Running a Docker Container
&lt;/h2&gt;

&lt;p&gt;Let’s create a new container to run an Nginx web server. I’m going to use the integrated terminal in Docker Desktop. First, we need to pull the Nginx image using the docker pull command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Next, we will run the container for the nginx image using the docker run command. We will give the container the name my-nginx, then map port 8080 on the Docker host to TCP port 80 in the container. We will run the container in detached mode and then specify the image name.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker run --name my-nginx -p 8080:80 -d nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We can verify that the container is running in Docker Desktop. Clicking the link in the Ports column will open the Nginx start page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ff9yeufdp5ds22im2fwrl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ff9yeufdp5ds22im2fwrl.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can stop the container by clicking stop next to the container name. The container will exit but still exist in a “stopped” state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fskvc0cnrbjetumouq40l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fskvc0cnrbjetumouq40l.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Docker Start Command
&lt;/h2&gt;

&lt;p&gt;The docker start command is used to restart an existing container that was previously stopped. Unlike docker run, it does not create a new container.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker start [OPTIONS] CONTAINER&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Some options you may encounter frequently include:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-i: Attaches STDIN for interactive mode.
-a: Attaches the container’s output (logs).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now let’s start our stopped nginx container. You can either click the start button next to the stopped container in Docker Desktop or use the docker start command with the name of the container.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker start my-nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should see a green bullet indicating that the container is running. Click on the port link and you should see the nginx welcome page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Differences Between Docker Run vs Docker Start Commands
&lt;/h2&gt;

&lt;p&gt;The key difference between Docker run and start is that Docker run creates and starts a new container whereas Docker start starts an existing stopped container.&lt;/p&gt;

&lt;p&gt;Some use cases for the Docker run command include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First-time setup: Use docker run when creating a container from an image for the first time.&lt;/li&gt;
&lt;li&gt;    Different configurations: If you need a container with a different setup (e.g., custom ports, environment variables), docker run allows you to configure these at runtime.&lt;/li&gt;
&lt;li&gt;    Stateless apps: For containers where you don’t need to retain any data, docker run is ideal since it creates a fresh instance every time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some use cases for the Docker start command include:    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusing containers: When you want to resume a container that was previously stopped without losing its state or data.&lt;/li&gt;
&lt;li&gt;    Preserving logs and files: Stopped containers retain their logs and file systems. Use docker start to pick up where you left off.&lt;/li&gt;
&lt;li&gt;    Faster startup: Starting an existing container is quicker than creating a new one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding the difference between docker run vs docker start is crucial for efficient Docker usage. While docker run is the go-to for creating new containers, docker start shines in scenarios where you need to resume work on an existing one. Mastering these commands will help streamline your workflow and improve container management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Valuable Learning Resources Delivered To Your Inbox Every Wednesday!
&lt;/h2&gt;

&lt;p&gt;You can learn more about this topic in my Tech Career Newsletter. This newsletter will give you insight into multiple stages of your career so that you can form your career plan, overcome learning blockers, and stay competitive in today’s crowded job market. It includes featured content from authors and influencers in my network to help you navigate your career and learn new skills. Subscribe today at &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;hoffstech.com/newsletter&lt;/a&gt; and set yourself up for career success!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Dealing with Layoffs</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Wed, 04 Dec 2024 16:50:41 +0000</pubDate>
      <link>https://dev.to/sbenhoff/dealing-with-layoffs-1f3a</link>
      <guid>https://dev.to/sbenhoff/dealing-with-layoffs-1f3a</guid>
      <description>&lt;p&gt;Dealing with layoffs is an unfortunate reality in the tech industry, where shifting market demands, economic pressures, and organizational restructuring can lead to workforce reductions. If you’ve recently been laid off or know someone who has, it’s essential to approach the situation strategically. Here’s how to cope, rebuild, and thrive after a layoff.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/t6VgbgFnL60"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledge Your Emotions
&lt;/h2&gt;

&lt;p&gt;Experiencing a layoff can trigger the five stages of grief—denial, anger, bargaining, depression, and acceptance—each playing a unique role in the emotional process. At first, denial may manifest as disbelief, making it hard to grasp the reality of the situation. Anger can follow, directed at the company, managers, or even the broader economic climate. During bargaining, you might find yourself wishing things could have gone differently, replaying scenarios where the layoff might have been avoided. Depression may settle in as the weight of uncertainty about the future takes hold, but this stage is also a time for self-reflection. Finally, acceptance brings clarity and readiness to move forward, allowing you to channel your energy into rebuilding your career. Recognizing these stages can help you process your emotions constructively and emerge stronger.&lt;/p&gt;

&lt;p&gt;It doesn’t help that layoffs tend to happen at the start or during Q4 of the calendar year which is right before the holidays. And, of course, companies tend not to hire during this time and there’s an uptick in available jobs starting in late January. Being unemployed and uncertain about your future during the holidays is hard but you should focus on the good in your life and spend time with family and friends who understand your situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review Your Finances
&lt;/h2&gt;

&lt;p&gt;After a layoff, reviewing your finances is a critical first step to maintaining stability. Start by evaluating your savings, expenses, and any severance or unemployment benefits available. Identify essential expenses and areas to cut costs, such as pausing subscriptions, reducing dining out, or renegotiating bills like insurance or utilities. Simultaneously, consider opportunities to generate passive income. For instance, creating content on platforms like YouTube can be rewarding in terms of sharing knowledge, building a following, and earning ad revenue or sponsorships over time. Additionally, explore selling digital products like e-books, launching a podcast, or offering an online course in your area of expertise. Diversifying income streams not only cushions financial pressures but also opens new avenues for long-term growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluate Your Career Goals
&lt;/h2&gt;

&lt;p&gt;A layoff can be a pivotal moment to reevaluate your career goals and align them with your passions and skills. Consider whether you want to stay in your current field or pivot to a new role or industry. Reflect on what aspects of your previous job brought you fulfillment and where you felt limited. This is also a chance to explore emerging trends, such as AI or green technology, and determine if your skills align with these growing sectors. Setting clear, actionable goals can help you focus your job search and steer your career in a more satisfying direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upgrade Your Skills
&lt;/h2&gt;

&lt;p&gt;The tech industry evolves rapidly, and staying competitive often requires continuous learning. Use your downtime to sharpen existing skills or acquire new ones.&lt;/p&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Online Platforms: Websites like Pluralsight, Udemy, and LinkedIn Learning offer affordable courses in programming, project management, and more.&lt;/li&gt;
&lt;li&gt;    Certifications: Consider certifications like AWS, Google Cloud, or Scrum Master to boost your resume.&lt;/li&gt;
&lt;li&gt;    Community Projects: Look out for hackathons or coding meetups (e.g., via Meetup.com) where open-source contributions are often encouraged.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reconnect with Your Network
&lt;/h2&gt;

&lt;p&gt;Your professional network can be invaluable in helping you find new opportunities. Reach out to former colleagues, mentors, and industry contacts to let them know you’re seeking your next role.&lt;/p&gt;

&lt;p&gt;Strategies:   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: Update your profile to reflect your most recent achievements and post about your job search (if you feel comfortable doing so).&lt;/li&gt;
&lt;li&gt;    Meetups and Events: Attend local or virtual industry meetups to expand your connections.&lt;/li&gt;
&lt;li&gt;    Alumni Networks: Leverage alumni associations or previous employer networks for job leads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prepare Your Cover Letter and Resume
&lt;/h2&gt;

&lt;p&gt;A strong cover letter and resume can set you apart in a competitive job market. Tailor your resume to each role by highlighting relevant skills and quantifiable achievements, such as “led a team of 10 developers to deliver a project 20% under budget.” For the cover letter, avoid generic statements and instead demonstrate enthusiasm for the company and role by connecting your experience to their mission and needs. Keep both documents concise, well-formatted, and free of errors to leave a lasting impression on hiring managers. Remember to customize your applications to reflect the unique requirements of each role. A generic resume or cover letter is less likely to stand out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore Alternatives to Full-Time Employment
&lt;/h2&gt;

&lt;p&gt;Consider alternative career paths if traditional full-time roles are not immediately available. Some of your options include:    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Freelancing: Platforms like Upwork and Toptal connect tech professionals with project-based work.&lt;/li&gt;
&lt;li&gt;    Consulting: Offer expertise to smaller companies or startups on a short-term basis.&lt;/li&gt;
&lt;li&gt;    Entrepreneurship: Use your skills to launch a side hustle or startup idea.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Layoffs, while painful, can serve as a turning point for growth. By approaching the situation with a clear plan and a positive mindset, you can emerge stronger, more skilled, and ready for the next phase of your career.&lt;/p&gt;

&lt;p&gt;You can learn more about setting yourself up for success and standing out above the crowd in my book, Lead Developer Career Guide. Learn the skills you need to move through your tech career, with expert advice on mentoring teams, handling clients and project managers, and keeping your head in emergencies. &lt;a href="https://amzn.to/3ODOvgn" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to get your copy from Amazon!&lt;/p&gt;

</description>
      <category>career</category>
      <category>careerdevelopment</category>
    </item>
    <item>
      <title>Lead Developer Career Guide – on Amazon!</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Wed, 20 Nov 2024 19:49:51 +0000</pubDate>
      <link>https://dev.to/sbenhoff/lead-developer-career-guide-on-amazon-516h</link>
      <guid>https://dev.to/sbenhoff/lead-developer-career-guide-on-amazon-516h</guid>
      <description>&lt;p&gt;I’m thrilled to announce the release of my book, Lead Developer Career Guide, now available on &lt;a href="https://amzn.to/3Zp13i9" rel="noopener noreferrer"&gt;Amazon&lt;/a&gt; in both print and Kindle formats! After years of working in tech and supporting developers at every stage of their careers, I wrote this guide to help others achieve the skills and mindset needed to become successful leaders in our industry. Steve Buchanan, author and Principal PM Manager at Microsoft, wrote the foreword. You can check it out on Amazon here: &lt;a href="https://amzn.to/3Zp13i9" rel="noopener noreferrer"&gt;Lead Developer Career Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Wrote Lead Developer Career Guide
&lt;/h2&gt;

&lt;p&gt;As a developer who moved into leadership roles, I realized there was a gap in resources available for guiding developers who wanted to grow their leadership skills and advance their careers. I’ve had countless conversations with developers who feel ready to take on more responsibility but don’t know how to make that transition. This book is the resource I wish I’d had early on, and I’m excited to share the insights I’ve gathered to support you on your journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Inside
&lt;/h2&gt;

&lt;p&gt;In Lead Developer Career Guide, I cover all the skills and strategies developers need to become effective leaders, including:    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building a Leadership Mindset: Learn how to think like a leader and take responsibility for your team’s success.&lt;/li&gt;
&lt;li&gt;Communication Skills: From feedback to conflict resolution, mastering communication is essential for any developer leader.&lt;/li&gt;
&lt;li&gt;Coaching and Mentoring: Discover techniques to support your team’s growth and create a collaborative work environment.&lt;/li&gt;
&lt;li&gt;Career Growth Strategies: Practical advice on how to advance your career, set goals, and achieve work-life balance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each chapter includes actionable advice, tips, and examples from real-world scenarios that I’ve encountered throughout my career. Whether you’re a developer hoping to take on more leadership responsibilities, or you’re already in a lead role looking to improve your skills, this guide provides a clear roadmap for growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Case Studies
&lt;/h2&gt;

&lt;p&gt;This book includes case studies from other authors and influencers in my network. I want to thank them for taking the time to speak with me and review the final product. Contributors include Chloe Condon, Dan Wahlin, Deborah Kurata, Edidiong Asikpo, Gabriela Martinez Sanchez, Jamie Maguire, Maureen Josephine Onyango, Ryan Lewis, Scott Hanselman, and Steve Buchanan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who This Book Is For
&lt;/h2&gt;

&lt;p&gt;This book is for developers of all levels who want to excel in leadership roles, from those just beginning their journey to seasoned leaders looking to refine their approach. I also wrote it for anyone passionate about fostering a positive, inclusive work environment where teams can thrive. If you’re eager to elevate your impact and make meaningful contributions to your team, this book is for you.&lt;br&gt;
Join Me on This Journey&lt;/p&gt;

&lt;p&gt;Writing Lead Developer Career Guide has been a labor of love, and I’m honored to be able to share it with all of you. I can’t wait to hear your thoughts on the book, and I’m excited to see how it will help developers grow their skills, take on new challenges, and build fulfilling careers in leadership.&lt;/p&gt;

&lt;p&gt;Thank you for your support, and I look forward to hearing how &lt;a href="https://amzn.to/3Zp13i9" rel="noopener noreferrer"&gt;Lead Developer Career Guide&lt;/a&gt; impacts your career journey!&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>What is a Container Registry</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Mon, 11 Nov 2024 17:31:29 +0000</pubDate>
      <link>https://dev.to/sbenhoff/what-is-a-container-registry-2594</link>
      <guid>https://dev.to/sbenhoff/what-is-a-container-registry-2594</guid>
      <description>&lt;p&gt;What is a container registry? In this article, we’ll dive into what a container registry is, how it differs from a repository, and why both are essential for containerized applications. We’ll also cover how to use public and private repositories on Docker Hub. So, first things first: What exactly is a container registry? The terms registry and repository in Docker are closely related but refer to different things. Here’s a breakdown of each:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wIdBRQXm8_o"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Container Registry
&lt;/h2&gt;

&lt;p&gt;A container registry is a service where Docker images are stored and managed. It’s essentially a centralized location that hosts one or more repositories, allowing users to store, share, and distribute Docker images. Think of it as a server or library where images are kept and managed.&lt;/p&gt;

&lt;p&gt;Common examples of container registries include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker Hub: A public registry hosted by Docker where users can share images publicly or privately.&lt;/li&gt;
&lt;li&gt;Amazon ECR (Elastic Container Registry): A private registry service by AWS.&lt;/li&gt;
&lt;li&gt;Google Container Registry: A private registry service by Google Cloud.&lt;/li&gt;
&lt;li&gt;Private Registries: Organizations can also set up their own private container registries within their infrastructure, often using open-source tools like Harbor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;A repository is a specific location within a registry where a particular image, or a set of related images, is stored. Repositories are used to organize images, often by software name or project. For example, you might have a repository for nginx or my-app.&lt;/p&gt;

&lt;p&gt;Each repository can contain multiple versions (or tags) of an image. For example, the nginx repository on Docker Hub has tags like latest, 1.19, 1.20, which represent different versions of the nginx image.&lt;/p&gt;

&lt;p&gt;Example to Illustrate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Registry: Docker Hub (the entire platform).&lt;/li&gt;
&lt;li&gt;Repository: nginx (a specific project or application within Docker Hub).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you refer to an image with docker pull nginx:latest, you are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accessing the registry (Docker Hub by default unless specified otherwise).&lt;/li&gt;
&lt;li&gt;Pulling an image from a specific repository (nginx).&lt;/li&gt;
&lt;li&gt;Fetching a specific tag or version (latest).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Docker Hub is the most popular public registry out there, and it’s an excellent resource for anyone working with Docker. Docker Hub hosts official images for many popular applications, libraries, and even complete environments. You’ll find images for popular applications like MySQL, NGINX, Redis, and even the operating systems you may want to use in your containers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with a Public Repository
&lt;/h2&gt;

&lt;p&gt;Let’s jump into some hands-on examples. First, we’ll start with public repositories, which are visible to everyone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Docker Desktop. This is the application you need to run Docker commands and it’s available for Windows, Mac, and Linux.&lt;/li&gt;
&lt;li&gt;Go to Docker Hub, and if you don’t have an account, create one—it’s free and only takes a minute.&lt;/li&gt;
&lt;li&gt;Once you’re logged in, you can search for any public image you might need. Look up the ‘nginx’ image, a popular web server.&lt;/li&gt;
&lt;li&gt;Make sure you’re logged into your Docker Hub account in Docker Desktop so that you can pull and push images to and from your registry (we’ll get into that in a bit).&lt;/li&gt;
&lt;li&gt;Switch to your terminal in Docker Desktop. We can pull the nginx image from Docker Hub by running this command: &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fei4j89onh89zkevix07t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fei4j89onh89zkevix07t.jpg" alt="Image description" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can verify that the image has been pulled by going to the images tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fsvtpkk3u3sweqtml6923.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fsvtpkk3u3sweqtml6923.jpg" alt="Image description" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This command pulls the latest ‘nginx’ image from Docker Hub to your local machine. After pulling, you can run it using a simple command like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker run -d -p 8080:80 nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And just like that, you’ve started an nginx server on your machine! Now, you can access it at &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt;. With public images, it’s that easy to start running well-maintained applications. But let’s say you want to store this image in your own public repository.&lt;/p&gt;

&lt;p&gt;Go to Docker Hub and on the repositories tab, click create repository. Name the repository nginx and set it to public. Then, click Create. Notice how it shows you the docker command to push to this repository. You just need to have your username in the tag for the image so let’s go ahead and set that up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fdeqig1wopjfmmab30vaj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fdeqig1wopjfmmab30vaj.jpg" alt="Image description" width="800" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in the terminal, type the command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker tag nginx username/nginx:v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will set a tag that is linked to your repository and it includes the version which is a best practice. Now we can push this to our public repository on docker hub by typing:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker push username/nginx:v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once that’s done, you can verify that the image was pushed by going to the repository in Docker Hub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F2n0manzaim5h6vz7spc3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F2n0manzaim5h6vz7spc3.jpg" alt="Image description" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with a Private Repository
&lt;/h2&gt;

&lt;p&gt;Public images are great, but what if you want to store a private image that only you or your team members can access? Docker Hub offers private repositories for this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On Docker Hub, go to your dashboard and click on ‘Create Repository.’&lt;/li&gt;
&lt;li&gt;Give your repository a name, I’ll call this nginx-private, set it to ‘Private,’ and click ‘Create.’&lt;/li&gt;
&lt;li&gt;If you were adding team members to this repository, you would do that on the collaborators tab which requires a paid subscription.&lt;/li&gt;
&lt;li&gt;Now, let’s tag and push an image from your local environment to this private repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffczl9cgufgqaz70t51jm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffczl9cgufgqaz70t51jm.jpg" alt="Image description" width="800" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in the terminal, we’re going to do the same thing we did earlier for the public repository. We’ll tag our image:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker tag nginx username/nginx-private:v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, we can push this image to our private repository by typing:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker push sbenhoff/nginx-private:v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command works because we are logged into Docker Hub via Docker Desktop. If you’re using a different terminal, you would have to log into your Docker Hub account using the docker login command. And again, once that’s done, you can verify that the image was pushed by going to the repository in Docker Hub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F07qv3qgmikhp59erim5x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F07qv3qgmikhp59erim5x.jpg" alt="Image description" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To pull the private image from Docker Hub on another machine or by a team member, they’ll need Docker Hub credentials and permission to access the repository.&lt;/p&gt;

&lt;p&gt;Once logged in, they can pull the image using the standard command format:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker pull username/nginx-private:v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After pulling, they can run the image just like any other container. With Docker Hub’s private repositories, you have more control over who can access your sensitive or work-specific images.&lt;br&gt;
Conclusion&lt;/p&gt;

&lt;p&gt;So, to summarize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A container registry, like Docker Hub, stores your Docker images and can be public or private.&lt;/li&gt;
&lt;li&gt;Public images on Docker Hub are freely available for everyone, which is fantastic for quick access to popular software.&lt;/li&gt;
&lt;li&gt;Private repositories on Docker Hub let you secure images for specific teams or purposes, giving you added privacy and control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffwoabxsro9havvxawdjm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffwoabxsro9havvxawdjm.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get Valuable Learning Resources Delivered To Your Inbox Every Wednesday!&lt;/p&gt;

&lt;p&gt;You can learn more about this topic in my &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Tech Career Newsletter&lt;/a&gt;. This newsletter will give you insight into multiple stages of your career so that you can form your career plan, overcome learning blockers, and stay competitive in today’s crowded job market. It includes featured content from authors and influencers in my network to help you navigate your career and learn new skills. &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Subscribe&lt;/a&gt; today and set yourself up for career success!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>container</category>
      <category>containers</category>
    </item>
    <item>
      <title>Scrum 101: A Beginner's Guide to Agile Project Management</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Mon, 04 Nov 2024 20:15:04 +0000</pubDate>
      <link>https://dev.to/sbenhoff/scrum-101-a-beginners-guide-to-agile-project-management-583b</link>
      <guid>https://dev.to/sbenhoff/scrum-101-a-beginners-guide-to-agile-project-management-583b</guid>
      <description>&lt;p&gt;Scrum is a lightweight methodology that allows teams to deliver valuable results quickly and effectively. It's based on the Agile principles of flexibility, collaboration, and continuous improvement. The Scrum framework consists of a set of practices and roles that work together to deliver high-quality products in a timely manner. The three key roles in Scrum are the Product Owner, the Scrum Master, and the Development Team. Here's a quick Scrum 101 beginners guide to help you get started using the Scrum framework.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/li5_s9S6K88"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Owner
&lt;/h2&gt;

&lt;p&gt;The Product Owner is responsible for defining the product vision and ensuring that the team is working on the highest-priority features. They are the voice of the customer and work closely with stakeholders to understand their needs and expectations. The Product Owner creates and maintains the product backlog, which is a list of features that need to be developed. They prioritize the backlog based on the value each feature provides to the customer. Throughout the project, the Product Owner ensures that the team is delivering a product that meets the customer's needs and provides value to the business.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scrum Master
&lt;/h2&gt;

&lt;p&gt;The Scrum Master is a servant leader who facilitates the Scrum process and ensures that the team follows the Scrum framework. They coach the team on Scrum practices and principles, and help them identify and remove any obstacles that may prevent them from delivering value. The Scrum Master is responsible for facilitating Scrum ceremonies, such as the Daily Scrum, Sprint Review, and Sprint Retrospective. They also ensure that the team is following the Scrum values of commitment, courage, focus, openness, and respect. The Scrum Master helps the team improve their process and performance over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development Team
&lt;/h2&gt;

&lt;p&gt;The Development Team is responsible for building the product and delivering it in iterations called Sprints. The Development Team is self-organizing and cross-functional, meaning that it includes all the skills needed to deliver the product. The team members collaborate closely to build the product and may pair program or work in small groups to complete tasks. The Development Team is responsible for estimating the effort required to complete each feature, selecting items from the backlog to work on during the Sprint, and delivering a potentially shippable product increment at the end of each Sprint. The team is also responsible for continuously improving their process and performance over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Scrum
&lt;/h2&gt;

&lt;p&gt;One of the main benefits of Scrum is that it allows teams to adapt to changes quickly. For example, let's say you're working on a software development project and the customer requests a new feature. With Scrum, you can easily add the new feature to the backlog and prioritize it based on the customer's needs. The team can then work on the feature in the next Sprint, which typically lasts two to four weeks. This allows the team to deliver value to the customer quickly and respond to changing requirements as needed.&lt;/p&gt;

&lt;p&gt;Another benefit of Scrum is that it promotes collaboration and transparency. The Scrum framework includes several ceremonies, such as the Daily Scrum, Sprint Review, and Sprint Retrospective, which allow the team to communicate and collaborate effectively. For example, during the Daily Scrum, the team members discuss what they accomplished the previous day, what they plan to do today, and if there are any obstacles or issues that need to be addressed. This allows the team to stay aligned and identify any issues early on.&lt;/p&gt;

&lt;p&gt;Finally, Scrum encourages continuous improvement. During the Sprint Retrospective, the team reflects on the Sprint and identifies what went well, what didn't go well, and what can be improved in the next Sprint. This allows the team to learn from their mistakes and make adjustments as needed.&lt;/p&gt;

&lt;p&gt;Scrum is a powerful Agile project management framework that can help teams deliver high-quality products quickly and efficiently. By using Scrum, project managers can promote collaboration, transparency, and continuous improvement within their teams. If you're new to Scrum, consider taking a Scrum Master certification course or working with a Scrum coach to help you get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F9clop58sabz3wyg6dpgp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F9clop58sabz3wyg6dpgp.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get Valuable Learning Resources Delivered To Your Inbox Every Wednesday!&lt;/p&gt;

&lt;p&gt;You can learn more tips on learning soft skills for devs in my &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Tech Career Newsletter&lt;/a&gt;. This newsletter will give you insight into multiple stages of your career so that you can form your career plan, overcome learning blockers, and stay competitive in today's crowded job market. It includes featured content from authors and influencers in my network to help you navigate your career and learn new skills. &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Subscribe&lt;/a&gt; today and set yourself up for career success!&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>How To Overcome Imposter Syndrome In The Workplace</title>
      <dc:creator>Shelley Benhoff</dc:creator>
      <pubDate>Sat, 17 Jun 2023 15:46:32 +0000</pubDate>
      <link>https://dev.to/sbenhoff/how-to-overcome-imposter-syndrome-in-the-workplace-5c11</link>
      <guid>https://dev.to/sbenhoff/how-to-overcome-imposter-syndrome-in-the-workplace-5c11</guid>
      <description>&lt;p&gt;Imposter syndrome can be a common challenge for Junior Developers. It's the feeling that you don't belong, that you're not good enough, and that any day now, someone will find out that you're a fraud. These thoughts can be demotivating and can hold you back from achieving your full potential. However, the good news is that you can learn how to overcome imposter syndrome in the workplace with the right mindset and strategies.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/LG-dU8rW2xg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Recognize Your Own Accomplishments
&lt;/h2&gt;

&lt;p&gt;It's important to recognize your accomplishments and celebrate your successes, no matter how small they may seem. Take the time to reflect on what you've achieved so far in your career, whether it's a successful project, a new skill you've learned, or positive feedback from colleagues. Write down your accomplishments and keep them in a place where you can see them regularly, such as a sticky note on your computer screen or a note on your phone. This will help you remember your achievements and boost your confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embrace Learning Opportunities
&lt;/h2&gt;

&lt;p&gt;It's normal to feel like you don't know everything. But the truth is, no one knows everything, and there's always something new to learn. Embrace learning opportunities, whether it's taking on a challenging project or attending a conference. This will help you grow your skills and knowledge, and it will also help you realize that everyone has something to learn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect With Others
&lt;/h2&gt;

&lt;p&gt;Connecting with others in your field can be a great way to overcome imposter syndrome. Attend meetups, join online forums, or find a mentor who can offer guidance and support. Talking to others about their experiences and challenges can help you realize that you're not alone in your feelings of self-doubt. You may even find that others look up to you for your unique perspective and skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice Self-Care
&lt;/h2&gt;

&lt;p&gt;Taking care of your physical and mental health is important for overcoming imposter syndrome. Make sure you're getting enough sleep, eating healthy, and taking breaks when you need them. Exercise can also be a great way to relieve stress and improve your mood. Additionally, consider talking to a therapist or counselor if you're struggling with imposter syndrome or other mental health issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reframe Negative Thoughts
&lt;/h2&gt;

&lt;p&gt;When you start to feel like an imposter, try to reframe your thoughts in a more positive light. Instead of thinking, "I don't know what I'm doing," try thinking, "I'm still learning, and that's okay." Instead of focusing on your mistakes, focus on what you've learned from them. Remember that everyone makes mistakes, and they're an opportunity to grow and improve.&lt;/p&gt;

&lt;p&gt;Imposter syndrome can be a challenge for Junior Developers, but it can be overcome with the right mindset and strategies. Remember to recognize your accomplishments, embrace learning opportunities, connect with others, practice self-care, and reframe negative thoughts. By doing so, you can boost your confidence and achieve your full potential in the workplace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More Tips On How To How To Overcome Imposter Syndrome in the Workplace With My Tech Career Newsletter!
&lt;/h2&gt;

&lt;p&gt;Get Valuable Learning Resources Delivered To Your Inbox Every Wednesday!&lt;/p&gt;

&lt;p&gt;You can learn more tips on how to overcome imposter syndrome in the workplace for Junior Developers, Senior Developers, Lead Developers, Project Managers, and Tech Leadership in my &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Tech Career Newsletter&lt;/a&gt;. This newsletter will give you insight into multiple stages of your career so that you can form your career plan, overcome learning blockers, and stay competitive in today's crowded job market. It includes featured content from authors and influencers in my network to help you navigate your career and learn new skills. &lt;a href="https://hoffstech.com/newsletter" rel="noopener noreferrer"&gt;Subscribe&lt;/a&gt; today and set yourself up for career success!&lt;/p&gt;

</description>
      <category>career</category>
      <category>careerdevelopment</category>
    </item>
  </channel>
</rss>
