<?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: Alik Khilazhev</title>
    <description>The latest articles on DEV Community by Alik Khilazhev (@alikhil).</description>
    <link>https://dev.to/alikhil</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F247811%2F1c34568a-dc9f-422f-ac4e-c99e620b56fa.jpeg</url>
      <title>DEV Community: Alik Khilazhev</title>
      <link>https://dev.to/alikhil</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alikhil"/>
    <language>en</language>
    <item>
      <title>How to Quickly Prepare for Software Engineering Interviews</title>
      <dc:creator>Alik Khilazhev</dc:creator>
      <pubDate>Thu, 23 Apr 2026 22:40:38 +0000</pubDate>
      <link>https://dev.to/alikhil/how-to-quickly-prepare-for-software-engineering-interviews-2pk4</link>
      <guid>https://dev.to/alikhil/how-to-quickly-prepare-for-software-engineering-interviews-2pk4</guid>
      <description>&lt;p&gt;A few months ago, I found myself needing to prepare for a series of job interviews within a very limited timeframe. It was a stressful experience, but it ultimately worked out well. I decided to share my notes and reflections in case they’re helpful to others in a similar situation.&lt;/p&gt;

&lt;p&gt;This is especially relevant if you’re not actively job hunting and suddenly receive an interview invitation, leaving you with limited time to prepare but a strong desire to maximize your chances of success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: The tips described in this post may be more useful for senior engineers with hands-on experience and engineering intuition.&lt;/p&gt;

&lt;h2&gt;
  
  
  HR Interview
&lt;/h2&gt;

&lt;p&gt;The internet is full of articles listing all possible HR interview questions. I recommend spending a bit of time on them just to understand what to expect and not be surprised.&lt;/p&gt;

&lt;p&gt;However, in my humble opinion, there are two main points to focus on during HR interview preparation.&lt;/p&gt;

&lt;p&gt;First, you need a short story that tells your experience briefly. Avoid listing every bullet point from your CV. Instead, focus on highlighting your key achievements. Also, your story must be aligned with the position you are applying to. Yes, you might need to adjust your story for different jobs at different companies.&lt;/p&gt;

&lt;p&gt;Second, it’s important to have a clear motivation. Why do you want to change your job, and why this company/role? What kind of job are you looking for?&lt;/p&gt;

&lt;h2&gt;
  
  
  System Design
&lt;/h2&gt;

&lt;p&gt;If you have some experience doing System Design interviews or have never done it, start by learning the &lt;a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/delivery" rel="noopener noreferrer"&gt;Delivery framework&lt;/a&gt;. Understand each section.&lt;/p&gt;

&lt;p&gt;Watch at &lt;a href="https://www.youtube.com/watch?v=Nfa-uUHuFHg" rel="noopener noreferrer"&gt;least one video&lt;/a&gt; on how it’s done. The more, the better. These videos from &lt;a href="https://www.youtube.com/@hello_interview" rel="noopener noreferrer"&gt;Hello Interview channel&lt;/a&gt; are really good, though.&lt;/p&gt;

&lt;p&gt;If you are applying to a FAANG company, you may search for &lt;a href="https://systemdesign.io/" rel="noopener noreferrer"&gt;leaked system design questions&lt;/a&gt; from that company and spend some time preparing for them. But there is no guarantee that you will get the same topic, thus I would not recommend spending &lt;strong&gt;all your time&lt;/strong&gt; here.&lt;/p&gt;

&lt;p&gt;If you can, do a mock interview. Ask a friend or find someone to practice with.&lt;br&gt;
If you can’t, then try to walk through alone, but talk through everything out loud.&lt;/p&gt;

&lt;p&gt;During the interview, treat the interviewer as a colleague, ask questions, ensure you understand the problem, and that you have not missed any important requirements before building the design of the system.&lt;/p&gt;

&lt;p&gt;Don’t rush.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live coding
&lt;/h2&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%2Foy622dvjicvv0lfjet5e.jpeg" 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%2Foy622dvjicvv0lfjet5e.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This part is really tricky. If the company tends to use LeetCode-style interviews, there is no shortcut here. You need to solve hundreds of them to really feel confident. You may need to refresh your memory on algorithms you feel less confident about (for example, I always forget about corner cases for binary search).&lt;/p&gt;

&lt;p&gt;Again, if it’s a big / well-known company, you can try to search for leaked coding interview questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Behavioral interview
&lt;/h2&gt;

&lt;p&gt;S.T.A.R (situation task action result) &amp;amp; C.A.R.L (context action result learning)&lt;/p&gt;

&lt;p&gt;There are dozens of questions you could be asked in behavioral interviews. And you’re expected to structure your answers using the STAR framework. This means you need to tell a story by defining a context, your actions, and results.  You could go and just prepare a STAR format answer to all such questions, but it will take a lot of time, and it’s suboptimal. This, combined with the fact that the same stories can be used for different questions, makes the situation easier for you. You can prepare 7–10 stories that will cover most of the questions. During preparation, you can write them as text, but don’t read them during the interview. It tends to sound unnatural.&lt;/p&gt;

&lt;p&gt;When telling your story using the STAR method, make sure your final sentence clearly highlights a positive outcome. Adjust your tone to emphasize this closing part so it stands out.&lt;/p&gt;

&lt;p&gt;The STAR framework is a standard. But also check CARL in some questions, it would be good to tell what you have learned from that story.&lt;/p&gt;

&lt;p&gt;Here are some materials that helped me to prepare for a behavioral interview:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://youtu.be/bBvPQZmPXwQ?si=s1ZbiomG5ouanRye" rel="noopener noreferrer"&gt;Hello Interview - Behavioral Interview Discussion with Ex-Meta Hiring Committee Member&lt;/a&gt;- must watch Behavioral interview, although I would recommend watching it even before the HR interview, because it gives a bunch of helpful tips about self-presentation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://thebehavioral.substack.com/" rel="noopener noreferrer"&gt;https://thebehavioral.substack.com/&lt;/a&gt; - Strategies, tips, and resources to prepare for your next behavioral interview from a FAANG+ insider.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Walkthrough
&lt;/h2&gt;

&lt;p&gt;Some companies have such an interview stage. It’s quite unpopular but still exists.&lt;br&gt;
You’re asked to present a project or problem you worked on. You explain the context, problem, solution, results, and your role in this story. It’s like showing the result of your work to colleagues from different departments/teams.&lt;/p&gt;

&lt;p&gt;This stage is very open-ended. You are not given specific instructions, and there is not much information on the internet with recommendations on how to prepare and conduct such interviews.&lt;br&gt;
When I found out I would have this interview, I was initially shocked and unsure how to prepare, as I didn’t know what to expect. It wasn't until I realized that in reality, &lt;strong&gt;it’s you, the interviewee, who rules this interview&lt;/strong&gt;. You choose the project, decide what to include and omit, control the level of detail, and you are coming up with the story you know, with all the answers for all possible questions, because it’s your story.&lt;/p&gt;

&lt;p&gt;So, make the most of this stage. Prepare your story, make a few slides / notes / architecture sketches.&lt;/p&gt;

&lt;p&gt;Don’t dig into details too much. Leave a space for the questions.&lt;/p&gt;

&lt;p&gt;And even if there is no dedicated interview, you may be asked to tell in detail about a certain problem/project you were working on. So, be prepared. Have your story!&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;When answering open-ended questions, aim to &lt;strong&gt;tell stories where the scale of the problem matches the level of the role you’re applying for&lt;/strong&gt;. For example, if you are asked, “Tell me about a challenging/interesting problem/task you were working on recently.” Optimizing an SQL query by adding an index may be fine for junior roles, but it won’t carry enough weight for senior positions. Interviewers would expect to hear something bigger, challenging, higher stakes, and often involving cross-team collaboration, such as migrating a large system to Kubernetes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question back&lt;/strong&gt;. You should ask questions to learn more about the company, their culture, the hiring manager’s management style, and what they like or dislike about their work. Prepare a list of questions before the interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start preparing in advance&lt;/strong&gt;. Even if you’re not planning to change jobs anytime soon, you can begin investing in your future by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;solving one LeetCode problem a day&lt;/li&gt;
&lt;li&gt;keeping track of tasks/projects you’ve completed, along with your achievements (many companies require this anyway for performance reviews) – this would be a foundation for your stories in behavioral and project walkthrough interviews.&lt;/li&gt;
&lt;li&gt;keeping your CV and LinkedIn up to date.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>interview</category>
    </item>
    <item>
      <title>Kubernetes In-Place Pod Resize</title>
      <dc:creator>Alik Khilazhev</dc:creator>
      <pubDate>Mon, 29 Dec 2025 09:00:00 +0000</pubDate>
      <link>https://dev.to/alikhil/kubernetes-in-place-pod-resize-454i</link>
      <guid>https://dev.to/alikhil/kubernetes-in-place-pod-resize-454i</guid>
      <description>&lt;p&gt;About six years ago, while operating a large Java-based platform in Kubernetes, I noticed a recurring problem: our services required significantly higher CPU and memory during application startup. Heavy use of Spring Beans and AutoConfiguration forced us to set inflated resource requests and limits just to survive bootstrap, even though those resources were mostly unused afterwards.&lt;/p&gt;

&lt;p&gt;This workaround never felt right. As an engineer, I wanted a solution that reflected the actual lifecycle of an application rather than its worst moment.&lt;/p&gt;

&lt;p&gt;I opened an &lt;a href="https://github.com/kubernetes/kubernetes/issues/83111" rel="noopener noreferrer"&gt;issue&lt;/a&gt;  in the Kubernetes repository describing the problem and proposing an approach to adjust pod resources dynamically without restarts. The issue received little discussion but quietly accumulated interest over time (13 👍 emoji reaction). Every few months, an automation bot attempted to mark it as stale, and every time, I removed the label. This went on for nearly six years...&lt;/p&gt;

&lt;p&gt;Until the release of Kubernetes 1.35 where In-Place Pod Resize feature was &lt;a href="https://kubernetes.io/blog/2025/12/19/kubernetes-v1-35-in-place-pod-resize-ga/" rel="noopener noreferrer"&gt;marked as stable&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What In-Place Pod Resize Brings
&lt;/h2&gt;

&lt;p&gt;In-Place Pod Resize allows Kubernetes to update CPU and memory requests and limits without restarting pods, whenever it is safe to do so. This significantly reduces unnecessary restarts caused by resource changes, leading to fewer disruptions and more reliable workloads.&lt;/p&gt;

&lt;p&gt;For applications whose resource needs evolve over time, especially after startup, this feature provides a long-missing building block.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impact on VerticalPodAutoscaler
&lt;/h2&gt;

&lt;p&gt;The new &lt;code&gt;resizePolicy&lt;/code&gt; field is configured at the pod spec level. While it is technically possible to change pod resources manually, doing so does not scale. In practice, this feature should be driven by a workload controller.&lt;/p&gt;

&lt;p&gt;At the moment, the only controller that supports in-place pod resize is the Vertical Pod Autoscaler (VPA).&lt;/p&gt;

&lt;p&gt;There are two enhancement proposals enable this behavior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kubernetes/autoscaler/tree/455d29039bf6b1eb9f784f498f28769a8698bc21/vertical-pod-autoscaler/enhancements/4016-in-place-updates-support" rel="noopener noreferrer"&gt;AEP-4016: Support for in place updates in VPA&lt;/a&gt; which introduces &lt;code&gt;InPlaceOrRecreate&lt;/code&gt; update mode&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler/enhancements/7862-cpu-startup-boost" rel="noopener noreferrer"&gt;AEP-7862: CPU Startup Boost&lt;/a&gt; which is about temporarily boosting pod by giving more cpu during pod startup. This is conceptually similar to the approach proposed in my original issue.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is an example of Deployment and VPA using both AEP features:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apps/v1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deployment&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;matchLabels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example&lt;/span&gt;
  &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example&lt;/span&gt;
    &lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;containers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;app&lt;/span&gt;
          &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-heavy-java-app:stable&lt;/span&gt;
          &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;containerPort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;
          &lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1000m&lt;/span&gt;
              &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1024Mi&lt;/span&gt;
            &lt;span class="na"&gt;limits&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2000m&lt;/span&gt;
              &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2048Mi&lt;/span&gt;

&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;autoscaling.k8s.io/v1"&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;VerticalPodAutoscaler&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example-vpa&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;targetRef&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;apps/v1"&lt;/span&gt;
    &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deployment&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example&lt;/span&gt;
  &lt;span class="na"&gt;updatePolicy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;updateMode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;InPlaceOrRecreate"&lt;/span&gt;
  &lt;span class="na"&gt;resourcePolicy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;containerPolicies&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;containerName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;app"&lt;/span&gt;
        &lt;span class="na"&gt;minAllowed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;250m"&lt;/span&gt;
          &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;512Mi"&lt;/span&gt;
        &lt;span class="na"&gt;maxAllowed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;3000m"&lt;/span&gt;
          &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8192Mi"&lt;/span&gt;
        &lt;span class="c1"&gt;# The CPU boosted resources can go beyond maxAllowed.&lt;/span&gt;
        &lt;span class="na"&gt;startupBoost&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Factor"&lt;/span&gt;
            &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With such configuration pod will have doubled cpu requests and limits during startup. During the boost period no resizing will happen.&lt;/p&gt;

&lt;p&gt;Once the pod reaches the &lt;code&gt;Ready&lt;/code&gt; state, the VPA controller scales CPU down to the currently recommended value.&lt;/p&gt;

&lt;p&gt;After that, VPA continues operating normally, with the key difference that resource updates are applied in place whenever possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;Does this feature fully solve the problem described above? Only partially.&lt;/p&gt;

&lt;p&gt;First, most application runtimes still impose fundamental constraints. Java and Python runtimes do not currently support resizing memory limits without a restart. This limitation exists outside of Kubernetes itself and is tracked in the OpenJDK project via &lt;a href="https://bugs.openjdk.org/browse/JDK-8359211" rel="noopener noreferrer"&gt;an open ticket&lt;/a&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%2Fcz0qdilgn4tk1vvt6uno.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%2Fcz0qdilgn4tk1vvt6uno.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Second, Kubernetes does not yet support decreasing memory limits, even with in-place Pod Resize enabled. This is a known limitation documented in the enhancement proposal for &lt;a href="https://github.com/kubernetes/enhancements/tree/758ea034908515a934af09d03a927b24186af04c/keps/sig-node/1287-in-place-update-pod-resources#memory-limit-decreases" rel="noopener noreferrer"&gt;memory limit decreases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a result, while in-place Pod Resize effectively addresses CPU-related startup spikes, memory resizing remains an open problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;In place Pod Resize gives a foundation for cool new features like StartupBoost and makes use of VPA more reliable. While important gaps remain, such as &lt;a href="https://github.com/kubernetes/kubernetes/issues/135670" rel="noopener noreferrer"&gt;memory decrease support&lt;/a&gt; and &lt;a href="https://github.com/kubernetes/kubernetes/issues/126891" rel="noopener noreferrer"&gt;scheduling race condition&lt;/a&gt;, this change represents a meaningful step forward.&lt;/p&gt;

&lt;p&gt;For workloads with distinct startup and steady-state phases, Kubernetes is finally beginning to model reality more closely.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>sre</category>
    </item>
    <item>
      <title>Contributing to Open Source: Why It Matters and How to Start</title>
      <dc:creator>Alik Khilazhev</dc:creator>
      <pubDate>Thu, 18 Dec 2025 09:53:48 +0000</pubDate>
      <link>https://dev.to/alikhil/contributing-to-open-source-why-it-matters-and-how-to-start-4m4i</link>
      <guid>https://dev.to/alikhil/contributing-to-open-source-why-it-matters-and-how-to-start-4m4i</guid>
      <description>&lt;p&gt;Whether you’re curious about open source or wondering how to make a meaningful impact, this post guides you through the process. You’ll learn why contributing is important, discover the different ways to get involved, and find practical steps to take your first contribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;First of all, why should you contribute to open source?&lt;/p&gt;

&lt;h3&gt;
  
  
  Giving back
&lt;/h3&gt;

&lt;p&gt;Everyone, from freelance engineers to Big Tech companies and even governments, uses Open Source Software (OSS). Some use it less, others more, but almost everyone depends on it in one way or another. Most of us are &lt;em&gt;consumers&lt;/em&gt; of open source.&lt;/p&gt;

&lt;p&gt;Contributing to OSS means giving something back. This is especially important given the many cases of projects (e.g &lt;a href="https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/#history-and-challenges" rel="noopener noreferrer"&gt;nginx-ingress&lt;/a&gt;, &lt;a href="https://github.com/external-secrets/external-secrets/issues/5084" rel="noopener noreferrer"&gt;external-secrets&lt;/a&gt;) being deprecated due to maintainer burnout, lack of community support, or overwhelming workloads.&lt;/p&gt;

&lt;p&gt;It is true that some OSS projects are backed by large companies and maintained by engineers who are paid to work on them. However, the half of open source projects are still maintained by individuals in their spare time for free (&lt;a href="https://www.linuxfoundation.org/blog/open-source-maintainers-what-they-need-and-how-to-support-them" rel="noopener noreferrer"&gt;source&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;In this sense, contributing to OSS can be seen as a form of digital volunteering. Some companies (&lt;a href="https://www.linkedin.com/posts/matthieublumberg_when-running-a-platform-using-open-source-activity-7382301443698892800-3St-?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAABsF7nEBwwglPayi0aSCflAk2mD2nv-HVCA" rel="noopener noreferrer"&gt;Criteo&lt;/a&gt;, &lt;a href="https://www.futurice.com/blog/year-2015-in-company-sponsored-open-sourcehttps://www.futurice.com/blog/year-2015-in-company-sponsored-open-source" rel="noopener noreferrer"&gt;Futurice&lt;/a&gt;) even offer paid volunteer time (VPTO) specifically for open-source contributions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning
&lt;/h3&gt;

&lt;p&gt;Another strong reason to contribute to open source is personal growth.&lt;/p&gt;

&lt;p&gt;Every contribution becomes a learning opportunity because it places you inside a real, production-grade codebase rather than a controlled tutorial environment. You learn how projects are structured, how architectural decisions are made, how backward compatibility is maintained, and how trade-offs are handled in practice. Often this means working with unfamiliar tools, languages, or ecosystems, which naturally expands your technical range.&lt;/p&gt;

&lt;p&gt;At the same time, open source strongly develops communication and collaboration skills. Issues and pull requests force you to articulate problems clearly, propose solutions in a way others can evaluate, and explain &lt;em&gt;why&lt;/em&gt; a particular approach makes sense. Feedback from maintainers and contributors exposes you to different perspectives and constraints, requiring you to adapt, clarify, and sometimes rethink your ideas.&lt;/p&gt;

&lt;p&gt;Because most collaboration happens asynchronously and in writing, you also improve your ability to communicate precisely and concisely. Over time, this structured, public collaboration sharpens how you discuss technical topics, handle reviews, and work effectively with distributed teams. These are the same skills required in modern engineering organizations, making open source a highly practical training ground.&lt;/p&gt;

&lt;h3&gt;
  
  
  Networking and professional reputation
&lt;/h3&gt;

&lt;p&gt;Open source contribution naturally leads to networking, even if you are not actively trying to “network.” By participating in issues, code reviews, and pull requests, you start interacting with maintainers and contributors from different companies, countries, and levels of seniority. Over time, these repeated interactions build familiarity and trust. People begin to recognize your name, your areas of expertise, and the quality of your work.&lt;/p&gt;

&lt;p&gt;Regular contributions can turn these lightweight interactions into professional relationships. Maintainers may invite you to collaborate more closely, grant you additional responsibilities, or even recommend you for roles on their teams. In many cases, job opportunities arise not from formal applications, but from someone already knowing how you work.&lt;/p&gt;

&lt;p&gt;Another important, and often underestimated, benefit of open source contribution is visibility. Most professional work is hidden behind NDAs and internal repositories, making it difficult to demonstrate your real impact. Open source work, on the other hand, is public by default. Your commits, pull requests, discussions, and design decisions are all visible and attributable to you.&lt;/p&gt;

&lt;p&gt;This public track record allows you to clearly show not only &lt;em&gt;what&lt;/em&gt; you built or improved, but also &lt;em&gt;how&lt;/em&gt; you collaborate, communicate, and respond to feedback. For recruiters and hiring managers, this is far more convincing than a list of skills on a résumé. In practice, open source contributions often function as a living portfolio and a long-term investment in your professional reputation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;Now that you understand why contributing matters, let’s look at how to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Natural way
&lt;/h3&gt;

&lt;p&gt;You might think that contributing to open source requires skills you do not have, a brilliant idea for a new library, or deep expertise in a specific domain. These beliefs often make OSS contribution feel unreachable.&lt;/p&gt;

&lt;p&gt;That is not the case.&lt;/p&gt;

&lt;p&gt;You do not need a revolutionary idea or special credentials. If you are an engineer who already writes code, you are capable of contributing.&lt;/p&gt;

&lt;p&gt;Here is a simple approach: the next time you are solving a problem using an open source tool and notice that it does not work as expected (a bug) or lacks a feature you need, do not immediately abandon the tool. Use your skills, and an LLM if needed, to investigate and try to fix the issue.&lt;/p&gt;

&lt;p&gt;If you succeed, open a pull request to the upstream repository. If you do not, create an issue and share your findings. That is still a contribution, and you will have learned something in the process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Good first issue
&lt;/h3&gt;

&lt;p&gt;If everything you use works perfectly and you do not notice any gaps, you can take a more deliberate approach.&lt;/p&gt;

&lt;p&gt;Make a list of projects you like, use, or want to learn more about. Browse their open issues and look for ones labeled “good first issue” or similar. Pick something that matches your current skill level and try to tackle it.&lt;/p&gt;

&lt;p&gt;If your list is short or you cannot find suitable issues, there are also curated lists of projects actively looking for contributors.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://goodfirstissue.dev/" rel="noopener noreferrer"&gt;https://goodfirstissue.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://forgoodfirstissue.github.com/" rel="noopener noreferrer"&gt;https://forgoodfirstissue.github.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://goodfirstissues.com/" rel="noopener noreferrer"&gt;https://goodfirstissues.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Open source is great, but keeping it that way requires people to contribute.&lt;br&gt;
It is not hard or unreachable. Anyone can do it, and the community needs more people like you.&lt;br&gt;
Start small, pick a project you love, and take your first step&lt;/p&gt;

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