<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Staff Engineering on Peter Fulop</title><link>https://peterfulop.tech/tags/staff-engineering/</link><description>Recent content in Staff Engineering on Peter Fulop</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Peter Fulop</copyright><lastBuildDate>Sun, 12 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://peterfulop.tech/tags/staff-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Switching from doing to directing</title><link>https://peterfulop.tech/p/switching-from-doing-to-directing/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate><guid>https://peterfulop.tech/p/switching-from-doing-to-directing/</guid><description>&lt;img src="https://peterfulop.tech/p/switching-from-doing-to-directing/switching-from-doing-to-directing.png" alt="Featured image of post Switching from doing to directing" /&gt;&lt;p&gt;We are already in the era of AI-assisted software development. In that world, I think software engineers need to spend less time only doing and more time directing.&lt;/p&gt;
&lt;p&gt;I work with young, sharp, deeply motivated colleagues. Many of them are already strong builders. What I want to encourage is not less ambition or less hands-on work, but a shift in where more of their thinking goes. Not just into writing code, but into setting direction, shaping context, and taking responsibility for the outcome.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I use the word &amp;ldquo;directing&amp;rdquo; very intentionally.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;It means setting direction:&lt;/em&gt; sketching the architecture, defining standards, and establishing working patterns.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;It means shaping the script:&lt;/em&gt; building the context, boundaries, and guardrails that guide the work, then refining them as the solution evolves.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;It means owning the result:&lt;/em&gt; understanding what is being pushed to production and avoiding comprehension debt later, when the system needs to be supported, changed, or debugged.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I had this on my mind already, and then over the weekend I read Addy Osmani&amp;rsquo;s article &lt;a class="link" href="https://addyosmani.com/blog/career-advice-age-of-agents/" target="_blank" rel="noopener"
&gt;The Agent-Era Career&lt;/a&gt;. He touches several parts of how software engineering is changing in the agent era. The part I want to stay with here is simpler: directing is not about stepping away from the work. It is about being more deliberate about where human judgment is still needed most.&lt;/p&gt;
&lt;p&gt;For me, that starts with how much autonomy I give the tool. I do not think this should be treated as a fixed setting. If the task is small, easy to review, and easy to roll back, I am comfortable giving an agent more room. If the change affects production behavior, data quality, or something painful to unwind later, I want a much tighter loop.&lt;/p&gt;
&lt;p&gt;It also made me separate two skills that are easy to blur together. One is being clear enough about the task that the agent has a fair chance of doing something useful. The other is checking the output properly. Those are not the same skill. &lt;em&gt;A clean instruction does not remove the need for verification, and fast output does not mean safe output&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;That is why &lt;strong&gt;I keep coming back to ownership&lt;/strong&gt;. If agent-assisted code goes to production and causes trouble, the real issue is not who typed it first. The issue is whether the engineer behind it understood what was being shipped well enough. That is the standard I think we should keep.&lt;/p&gt;
&lt;p&gt;I am curious how this is handled in your team. Are experienced engineers still mainly expected to do more themselves, or to direct, verify, and own AI-assisted work more deliberately?&lt;/p&gt;
&lt;p&gt;After writing this, I realized that directing starts even earlier than setting context for an agent. In &lt;a class="link" href="https://peterfulop.tech/p/software-solutions-do-not-start-with-code/" target="_blank" rel="noopener"
&gt;Software solutions do not start with code&lt;/a&gt;, I explore the work that comes before implementation: understanding the real problem, identifying constraints, and building the mental model that makes useful direction possible.&lt;/p&gt;</description></item><item><title>Effectiveness anti-patterns — part 6: YAGNI: don’t abstract before the second use case</title><link>https://peterfulop.tech/p/yagni-dont-abstract-before-the-second-use-case/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://peterfulop.tech/p/yagni-dont-abstract-before-the-second-use-case/</guid><description>&lt;img src="https://peterfulop.tech/p/yagni-dont-abstract-before-the-second-use-case/yagni-dont-abstract-before-the-second-use-case.jpg" alt="Featured image of post Effectiveness anti-patterns — part 6: YAGNI: don’t abstract before the second use case" /&gt;&lt;h2 id="the-prototype-was-meant-to-ask-a-question"&gt;The prototype was meant to ask a question
&lt;/h2&gt;&lt;p&gt;YAGNI — You Aren&amp;rsquo;t Gonna Need It — is usually explained as: do not build something until you actually need it.&lt;/p&gt;
&lt;p&gt;The version of over-engineering I have learned to watch most carefully is not the dramatic one.&lt;/p&gt;
&lt;p&gt;It is the small, reasonable-looking abstraction that appears during a prototype.&lt;/p&gt;
&lt;p&gt;A new piece of work lands. The requirement is small, the user is one team, the use case is specific. The prototype has one job: answer the question on the table.&lt;/p&gt;
&lt;p&gt;Then a second thought appears:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If this works, others will probably want it too.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That thought is not wrong. It is often a useful instinct.&lt;/p&gt;
&lt;p&gt;The risk is letting it drive the first version.&lt;/p&gt;
&lt;p&gt;Instead of writing the simplest thing that answers the question, the prototype starts turning into a framework. A configuration layer. A second abstraction. Support for variants that nobody has asked for yet.&lt;/p&gt;
&lt;p&gt;The trap with prototypes is that I often know the least about the problem at the exact moment the future shape looks easiest to design.&lt;/p&gt;
&lt;p&gt;The second use case does not exist yet. The third is even less defined. But the blank file makes it easy to imagine a clean framework, all the right extension points, and all the variants that might arrive later.&lt;/p&gt;
&lt;p&gt;That can feel like care. Sometimes it is. Often, in a prototype, it is just over-engineering arriving early.&lt;/p&gt;
&lt;h2 id="a-ci-prototype-we-kept-intentionally-small"&gt;A CI prototype we kept intentionally small
&lt;/h2&gt;&lt;p&gt;A while back, our team wanted to improve how we shipped DAG images to our Cloud Composer environment.&lt;/p&gt;
&lt;p&gt;The pattern was roughly this: a data engineer built the image locally, pushed it to Artifact Registry from their laptop, and then updated the DAG. It worked, in the sense that production kept running. It also broke in small but annoying ways: wrong tag, stale dependency, local build differences, unclear ownership of what had actually been deployed.&lt;/p&gt;
&lt;p&gt;The agreed direction was to move image builds into CI.&lt;/p&gt;
&lt;p&gt;I took the work on. The goal was deliberately narrow: prove that one DAG image, for one representative pipeline, could be built and pushed automatically through GitHub Actions when its source folder changed.&lt;/p&gt;
&lt;p&gt;That was enough for the first question.&lt;/p&gt;
&lt;p&gt;While sketching the workflow, I could already see the reusable version.&lt;/p&gt;
&lt;p&gt;Multiple image conventions. Several target environments. Branch-based tagging. A registry abstraction. A small YAML schema for teams to declare their own build configuration.&lt;/p&gt;
&lt;p&gt;All of that might become useful later.&lt;/p&gt;
&lt;p&gt;But at that point we had one real pipeline, one team, and one deployment path. Turning that into a shared abstraction would have meant designing from guesses instead of evidence.&lt;/p&gt;
&lt;p&gt;In review, we named the trade-off explicitly: are we trying to prove the CI path, or are we designing the future deployment platform?&lt;/p&gt;
&lt;p&gt;That question helped keep the first version honest.&lt;/p&gt;
&lt;p&gt;So I kept the first version intentionally boring: one workflow file, one image, one Artifact Registry path, and one DAG folder. It also worked.&lt;/p&gt;
&lt;p&gt;The next morning someone copied it as a template for a second DAG image. The differences between the two were already enough to show that a shared abstraction would have needed more evidence.&lt;/p&gt;
&lt;p&gt;A few weeks later, another team asked if they could use the same pattern. Their setup had a separate registry, an environment-specific build step, and a security review checkpoint that did not exist in our pipeline. A shared platform designed too early would probably have made those changes harder, not easier.&lt;/p&gt;
&lt;p&gt;What we have now is a small library of similar GitHub Actions workflows, each specific to its team. There is some duplication. There is also no premature framework in the way.&lt;/p&gt;
&lt;p&gt;The day a shared abstraction is actually needed, we will have several concrete examples to abstract from instead of one example and a lot of imagined ones.&lt;/p&gt;
&lt;p&gt;I do not want to overstate it. This was a small, deliberately boring piece of CI.&lt;/p&gt;
&lt;p&gt;But it was a clean moment of restraint. We shipped the narrow version, and let the second real case teach us what the shared shape should be.&lt;/p&gt;
&lt;h2 id="what-i-had-to-admit"&gt;What I had to admit
&lt;/h2&gt;&lt;p&gt;For a long time I called this kind of thinking &amp;ldquo;planning ahead.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Sometimes that was true. Often it was a more comfortable story than the real one: abstraction was more interesting to write than the boring concrete version.&lt;/p&gt;
&lt;p&gt;Some of that came from my early object-oriented training. Open/closed. Dependency inversion. Interfaces before implementations. Those principles are useful in long-lived codebases. They are less useful when a prototype has one user, one use case, and one question to answer.&lt;/p&gt;
&lt;p&gt;Same habit. Different context.&lt;/p&gt;
&lt;p&gt;The simpler version is often harder to choose because it feels less impressive while you are writing it. But it is usually easier for the next person to read, review, debug, and change.&lt;/p&gt;
&lt;p&gt;That asymmetry took me longer to internalize than it should have.&lt;/p&gt;
&lt;h2 id="what-has-helped-in-practice"&gt;What has helped in practice
&lt;/h2&gt;&lt;p&gt;A few small habits have helped more than any framework or guideline.&lt;/p&gt;
&lt;p&gt;They line up with one of the points Addy Osmani makes in his chapter on this anti-pattern: by the time the imagined future requirement arrives, you will usually know more about the real problem than you do today. That has held up almost every time I have honored it, and bitten me almost every time I have ignored it.&lt;/p&gt;
&lt;p&gt;Before I add a parameter, abstraction, or configuration layer to a prototype, I try to finish one sentence honestly:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This exists in this prototype because the specific question being asked requires it.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If I cannot finish the sentence, the abstraction does not ship.&lt;/p&gt;
&lt;p&gt;I also try to write imagined future use cases down in a note or design doc, not in code. A note is cheap. An unused configuration option creates a small maintenance tax that can last for years.&lt;/p&gt;
&lt;p&gt;In design reviews, I try to name the temptation out loud: &lt;em&gt;&amp;ldquo;I wanted to make this generic. I am not going to. Here is why.&amp;rdquo;&lt;/em&gt; Saying it explicitly often makes other people more comfortable doing the same.&lt;/p&gt;
&lt;p&gt;The narrowness of the prototype is not a flaw. It is what lets the prototype answer the question quickly.&lt;/p&gt;
&lt;p&gt;If it is wrong, we can throw it away cheaply.&lt;/p&gt;
&lt;p&gt;If it is right, we can add the abstractions later, with more information than we had at the start.&lt;/p&gt;
&lt;p&gt;YAGNI does not mean ignoring future reuse.&lt;/p&gt;
&lt;p&gt;It means refusing to encode future reuse before the future has produced evidence.&lt;/p&gt;
&lt;h2 id="the-question-i-try-to-use-now"&gt;The question I try to use now
&lt;/h2&gt;&lt;p&gt;When I notice the temptation to generalize too early, I ask:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If I delete this abstraction right now, does the prototype still answer the question it was built to answer?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If the answer is yes, the abstraction does not belong in this version.&lt;/p&gt;
&lt;p&gt;It might belong later, when there is a second concrete case.&lt;/p&gt;
&lt;p&gt;But the next version is not what I am building today.&lt;/p&gt;</description></item><item><title>Effectiveness anti-patterns — part 5: when good work is invisible work</title><link>https://peterfulop.tech/p/invisible-work-make-the-work-legible/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://peterfulop.tech/p/invisible-work-make-the-work-legible/</guid><description>&lt;img src="https://peterfulop.tech/p/invisible-work-make-the-work-legible/effectiveness-antipaterns-05-invisible-work.png" alt="Featured image of post Effectiveness anti-patterns — part 5: when good work is invisible work" /&gt;&lt;p&gt;There is a sentence in &lt;a class="link" href="https://addyosmani.com/blog/" target="_blank" rel="noopener"
&gt;Addy Osmani&lt;/a&gt;&amp;rsquo;s chapter on &lt;a class="link" href="https://www.oreilly.com/library/view/the-effective-software/9798341638167/" target="_blank" rel="noopener"
&gt;engineering effectiveness anti-patterns&lt;/a&gt; that stayed with me longer than I expected: visibility issues often become critical when pursuing staff-level roles.&lt;/p&gt;
&lt;p&gt;This post is mostly a reflection on that idea and how it connects with platform and data infrastructure work I have seen, and sometimes made harder for myself.&lt;/p&gt;
&lt;p&gt;The uncomfortable part is simple: good work is not always visible work.&lt;/p&gt;
&lt;p&gt;That is especially true on platform teams.&lt;/p&gt;
&lt;h2 id="when-success-looks-like-silence"&gt;When success looks like silence
&lt;/h2&gt;&lt;p&gt;In product work, success often leaves a visible artifact.&lt;/p&gt;
&lt;p&gt;A feature ships. A customer-facing bug closes. A screen loads faster. Someone can point to the thing and say: this changed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Platform and data infrastructure work is different.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A pipeline that runs cleanly does not generate a Slack thread.&lt;/p&gt;
&lt;p&gt;A migration that does not break downstream BI does not produce an incident review.&lt;/p&gt;
&lt;p&gt;A Snowflake access policy that quietly enforces the right boundary does not get a demo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The better the work is, the less it may look like anything happened.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For a long time, I was comfortable with that. I liked the idea that reliable systems should be quiet. I still believe that. &lt;em&gt;Noise is not a sign of impact&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But I have also started to see the risk in taking that too far.&lt;/p&gt;
&lt;p&gt;If only the three people closest to the work understand what changed, what tradeoff was made, and what failure was avoided, then the work is not just quiet. It is partly invisible.&lt;/p&gt;
&lt;p&gt;That matters more as the scope gets wider.&lt;/p&gt;
&lt;h2 id="the-instinct-i-had-to-question"&gt;The instinct I had to question
&lt;/h2&gt;&lt;p&gt;I used to trust the idea that good work would eventually speak for itself.&lt;/p&gt;
&lt;p&gt;There is something honest in that instinct. I do not like performative visibility. I do not want every small task turned into a victory lap. Most engineering work is team work anyway, and claiming too much individual credit usually feels wrong.&lt;/p&gt;
&lt;p&gt;But I think I confused two different things.&lt;/p&gt;
&lt;p&gt;Not performing is good.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Not communicating is different.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If a migration avoided a BI outage, but nobody outside the immediate team knows what risk was avoided, then the result is not legible.&lt;/p&gt;
&lt;p&gt;If a production DAG runs without paging anyone, but the handoff decision, operational constraint, and ownership change are only remembered by the person who implemented it, then the system got better but the organizational memory did not.&lt;/p&gt;
&lt;p&gt;That is the part I had been underestimating.&lt;/p&gt;
&lt;p&gt;The work does not need a louder story. It needs a clearer record.&lt;/p&gt;
&lt;h2 id="the-distributed-team-version-of-the-problem"&gt;The distributed-team version of the problem
&lt;/h2&gt;&lt;p&gt;There is also a structural reason this matters.&lt;/p&gt;
&lt;p&gt;I work from Budapest. Some of the people who need to understand my work are in US or in other teams. They do not see the pull request as it happens. They do not sit in every refinement. They do not read every runbook.&lt;/p&gt;
&lt;p&gt;They see whatever surfaces.&lt;/p&gt;
&lt;p&gt;Incidents surface.&lt;/p&gt;
&lt;p&gt;Delivery dates surface.&lt;/p&gt;
&lt;p&gt;Cross-team blockers surface.&lt;/p&gt;
&lt;p&gt;But a lot of good platform work prevents those things from surfacing in the first place.&lt;/p&gt;
&lt;p&gt;That means the absence itself needs some shape.&lt;/p&gt;
&lt;p&gt;I do not mean exaggerating it. I mean writing down enough context that someone who was not in the room can still understand the decision.&lt;/p&gt;
&lt;p&gt;What could have broken?&lt;/p&gt;
&lt;p&gt;What tradeoff did we choose?&lt;/p&gt;
&lt;p&gt;Which downstream team was protected?&lt;/p&gt;
&lt;p&gt;What would we do differently if the same pattern had to work at ten times the scale?&lt;/p&gt;
&lt;p&gt;Those are small questions, but they change the usefulness of the update.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Airflow upgrade shipped&amp;rdquo; is a status line.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;We moved the pipeline to the newer 3.0.6 Airflow version, accepted some migration cost now, and reduced the risk of running critical data workflows on an aging orchestration layer&amp;rdquo; is closer to a decision someone else can repeat.&lt;/p&gt;
&lt;p&gt;The second version takes longer to write. It is also the version that carries judgment&lt;/p&gt;
&lt;h2 id="making-absences-legible"&gt;Making absences legible
&lt;/h2&gt;&lt;p&gt;The reframing that has helped me most is this:&lt;/p&gt;
&lt;p&gt;Much of platform work creates useful absences.&lt;/p&gt;
&lt;p&gt;No incident.&lt;/p&gt;
&lt;p&gt;No broken dashboard.&lt;/p&gt;
&lt;p&gt;No confused access path.&lt;/p&gt;
&lt;p&gt;No data scientist blocked because a notebook-to-DAG handoff was unclear.&lt;/p&gt;
&lt;p&gt;By default, those absences disappear.&lt;/p&gt;
&lt;p&gt;So I am trying to get better at &lt;strong&gt;making them legible without inflating them&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For me, that usually means a short note after meaningful work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what changed&lt;/li&gt;
&lt;li&gt;what risk it reduced&lt;/li&gt;
&lt;li&gt;what decision mattered&lt;/li&gt;
&lt;li&gt;who benefits from it&lt;/li&gt;
&lt;li&gt;what remains unresolved&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not a grand communication framework. It is closer to a small maintenance habit.&lt;/p&gt;
&lt;p&gt;The audience is not only leadership. It is also the future version of the team that will ask, three months later, why we made this choice and what we were optimizing for.&lt;/p&gt;
&lt;p&gt;When I do this well, it does not feel like self-promotion. It feels like design documentation written close to the moment when the context is still fresh.&lt;/p&gt;
&lt;p&gt;When I skip it, I usually regret it later.&lt;/p&gt;
&lt;h2 id="the-question-i-am-using-now"&gt;The question I am using now
&lt;/h2&gt;&lt;p&gt;I am still not naturally good at this.&lt;/p&gt;
&lt;p&gt;My default is to finish the work, move to the next thing, and assume the outcome is obvious. In platform work, it often is not.&lt;/p&gt;
&lt;p&gt;So I have started asking one question when I finish something that actually mattered:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If somebody two levels away from the work asked what changed, could they explain it in one sentence I would agree with?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If the answer is no, the work may still be good.&lt;/p&gt;
&lt;p&gt;It is just not legible yet.&lt;/p&gt;
&lt;p&gt;Sometimes the fix is a paragraph to my manager. Sometimes it is a short note in a shared channel. Sometimes it is a small design record. Sometimes it is a blog post like this one, written after I notice the same pattern more than once.&lt;/p&gt;
&lt;p&gt;The point is not to make every task visible.&lt;/p&gt;
&lt;p&gt;The point is to make the important decisions understandable outside the room where they happened.&lt;/p&gt;
&lt;p&gt;That feels, to me, like one of the quiet shifts from senior execution toward staff-level scope.&lt;/p&gt;
&lt;p&gt;Not louder work.&lt;/p&gt;
&lt;p&gt;More legible work.&lt;/p&gt;</description></item><item><title>A senior mindset is ultimately about trust</title><link>https://peterfulop.tech/p/senior-mindset-trust/</link><pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate><guid>https://peterfulop.tech/p/senior-mindset-trust/</guid><description>&lt;img src="https://peterfulop.tech/p/senior-mindset-trust/senior-mindset-trust.png" alt="Featured image of post A senior mindset is ultimately about trust" /&gt;&lt;p&gt;For a long time, I felt the pressure to always have an answer, or at least pretend I did.&lt;/p&gt;
&lt;p&gt;Gregor Ojstersek&amp;rsquo;s recent article in the Engineering Leadership newsletter really cuts through this myth. He argues that being comfortable saying &amp;ldquo;I don&amp;rsquo;t know&amp;rdquo; is actually a sign of experience, maturity, and true seniority.&lt;/p&gt;
&lt;p&gt;Because a senior mindset is ultimately about trust.&lt;/p&gt;
&lt;p&gt;A senior engineer isn&amp;rsquo;t the one who knows everything — it&amp;rsquo;s the one who responds confidently and constructively when they don&amp;rsquo;t know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;I don&amp;rsquo;t know yet, but I&amp;rsquo;ll look into it.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Let&amp;rsquo;s explore this together.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;I know someone who might have the answer.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What began as a light weekend read ended up strongly reinforcing something I deeply believe: honesty builds trust.&lt;/p&gt;
&lt;p&gt;Admitting you don&amp;rsquo;t know something isn&amp;rsquo;t a flaw — it&amp;rsquo;s part of being reliable, especially in senior roles.&lt;/p&gt;
&lt;p&gt;Highly recommended read: &lt;a class="link" href="https://newsletter.eng-leadership.com/p/saying-i-dont-know-is-a-sign-of-seniority" target="_blank" rel="noopener"
&gt;Saying &amp;ldquo;I don&amp;rsquo;t know&amp;rdquo; Is a Sign of Seniority For Me&lt;/a&gt; by &lt;a class="link" href="https://substack.com/@gregorojstersek" target="_blank" rel="noopener"
&gt;Gregor Ojstersek&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I&amp;rsquo;d love to hear what you think about this. Drop a comment on &lt;a class="link" href="https://www.linkedin.com/posts/fuloppeter_career-mindset-seniority-activity-7391025104161488896-1_f6" target="_blank" rel="noopener"
&gt;the related LinkedIn post&lt;/a&gt; or reach out directly.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>