<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://flowkap.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://flowkap.dev/" rel="alternate" type="text/html" /><updated>2025-07-07T11:50:04+00:00</updated><id>https://flowkap.dev/feed.xml</id><title type="html">Flowkap</title><subtitle>Software developer</subtitle><author><name>Flowkap</name></author><entry><title type="html">Visualizing Your Growth</title><link href="https://flowkap.dev/visualizing-your-growth/" rel="alternate" type="text/html" title="Visualizing Your Growth" /><published>2025-07-07T00:00:00+00:00</published><updated>2025-07-07T00:00:00+00:00</updated><id>https://flowkap.dev/visualizing-your-growth</id><content type="html" xml:base="https://flowkap.dev/visualizing-your-growth/"><![CDATA[<p>A while back I stumbled upon the <a href="https://github.com/jorgef/engineeringladders"><strong>Engineering Ladders</strong></a> project by
<a href="https://github.com/jorgef">Jorge Fioranelli</a>, a thoughtful, open-source framework for defining what different levels
look like for engineers, tech leads, and beyond. It breaks down roles into clear expectations: scope, influence,
technical depth, people impact, and
more.It’s an awesome resource for teams, but when I tried to apply it to myself I wanted to fiddle</p>

<p><strong>Why I Really Like This</strong></p>

<p>One thing I see a lot — especially in interviews — is people saying <em>“I’m a senior engineer.”</em> But what does that
actually mean? It’s definitely <strong>not</strong> just about coding for a certain number of years. Seniority shows up in what you
own, how you influence, how you help others grow, and how far your impact goes. It’s way
clearer to break that down than to just stick a label on someone.</p>

<p>I really like this tool because it makes that discussion practical. Instead of arguing about titles, I can ask a
candidate to map their ladder:</p>

<ul>
  <li>How do you see yourself in Technology, System, People, Process, and Influence?</li>
  <li>What examples back that up?</li>
  <li>Where do you want to grow next?</li>
</ul>

<p>This is so much better than just saying “You’re senior” or “You’re junior.” It turns vague self-labels into a concrete
map of skills and impact, for candidates and for ourselves.</p>

<ul>
  <li>A senior candidate can sketch their own chart before an interview.</li>
  <li>You can compare self-assessments with your team’s expectations.</li>
  <li>Or just help someone reflect: <em>Where am I strong? Where do I want to grow next?</em></li>
</ul>

<p><strong>My Own Snapshot</strong></p>

<p>When I ran my self-assessment, my radar landed around <strong>Masters</strong> on Technology, <strong>Leads</strong> on System, <strong>Coordinates</strong> on
People, <strong>Defines</strong> on Process, and <strong>Multiple Teams → Company</strong> on Influence. Visualizing it this way immediately
showed me:</p>

<ul>
  <li>Where I’m leaning more into org-wide impact.</li>
  <li>Where I could expand (e.g., mentoring other leads, not just engineers).</li>
  <li>And where my growth edges are next.</li>
</ul>

<p>It’s way more motivating than reading a wall of text!</p>

<p><img src="/images/engineering_ladder_20250707_115745.png" alt="image info" /></p>

<p><strong>The Nerd in Me</strong></p>

<p>For years, I’ve talked through these ladders verbally, in 1:1s, interviews, or mentoring sessions. But I always wanted
an <strong>automated way</strong> to generate these diagrams interactively.</p>

<p>Thanks to modern Python tooling (and a bit of AI help), this is easier than ever. I built a simple Python client for
generating Engineering Ladder radar charts, it’s free and open source on my
repo: <a href="https://github.com/Flowkap/engineering-ladder-assessment"><strong>engineering-ladder-assessment</strong> on GitHub</a></p>

<p>I honestly don’t know if there’s already something exactly like this out there, I just did it because it was fun,
useful for me, and maybe useful for you too.</p>

<p>🚀 <strong>Try It Yourself</strong></p>

<p>Give it a try, whether you want to map your own growth or assess candidates more meaningfully. Let it help you on your
journey, and see what insights come up. Give it a shot, I’m sure you won’t be disappointed!</p>]]></content><author><name>Flowkap</name></author><category term="Career" /><summary type="html"><![CDATA[A while back I stumbled upon the Engineering Ladders project by Jorge Fioranelli, a thoughtful, open-source framework for defining what different levels look like for engineers, tech leads, and beyond. It breaks down roles into clear expectations: scope, influence, technical depth, people impact, and more.It’s an awesome resource for teams, but when I tried to apply it to myself I wanted to fiddle]]></summary></entry><entry><title type="html">Some thoughts on CI/CD</title><link href="https://flowkap.dev/Some-thoughts-on-CI-and-CD/" rel="alternate" type="text/html" title="Some thoughts on CI/CD" /><published>2021-02-14T00:00:00+00:00</published><updated>2021-02-14T00:00:00+00:00</updated><id>https://flowkap.dev/Some-thoughts-on-CI-and-CD</id><content type="html" xml:base="https://flowkap.dev/Some-thoughts-on-CI-and-CD/"><![CDATA[<p>I recently read an article recommended by a college. It started with <em>“The moral of the story is, don’t treat the
symptoms: treat the cause.”</em> . The article was published a few weeks ago
on <a href="https://stackoverflow.blog/2021/01/19/fulfilling-the-promise-of-ci-cd/">Stack Overflow Blog</a> and I don’t want to
repeat the content here as you really should read the article yourself!</p>

<p>Anyway, after reading it I really started thinking about the matter a lot. I thought I’d do a lot CI/CD in the past
myself, but is this really true? To be frank, only partly. I’m a huge fan of automation including:</p>

<ul>
  <li>Unit / Integration tests</li>
  <li>Automated quality checks</li>
  <li>Custom shell extensions / scripts for recurring tasks</li>
  <li>Documentation creation (API docs, Plantuml etc)</li>
</ul>

<p>And of course automating as much of it using CI. But beside a few components I never really dig into CD a lot. The
answer of course is not as easy, as it partly was due to the structure of the organization I was working in, the project
structure, but most importantly and that’s the true cause if I really think about it: I was afraid of it!</p>

<p>What if the auto deploy breaks the environment? What if people get mad because I suggested it? … and so I did not do
it. Probably you had similar thoughts yourself before. Of course there are technical reasons as well, but you can solve
them if you really grieve for the CD automation.</p>

<p>So I did read this article and recapped why I’m not doing it. In the end all reasons seem really half-hearted. Like I
was usually one of the people deploying manually. That also broke the environment. And I rolled it back. I could’ve
rolled it back myself as well after auto deploy. But I would’ve saved a lot of time deploying in the first step.</p>

<p>Luckily a college is working on CD right now on my new job. It’s actually not the same who suggested the article, and
I’m super hyped about it! If I can help by any means to support this I’m all in for it! And probably it will change my
way of working as much as it did when I started using CI / test automation heavily. I’m really looking forward to auto
deploy my first increment of a feature on my new job next week :).</p>

<p>One more thing …</p>

<p>Actually a few weeks ago I stumbled across <a href="https://github.com/upptime/upptime">Upptime</a>. If you’re interested how to
utilize <a href="https://github.com/features/actions">GitHub Actions</a> not only as a CI/CD but also as a “Serverless” computation
platform you should check it out!
I’d like to be as clever as those peeps to having such a brilliant idea myself one day.</p>]]></content><author><name>Flowkap</name></author><category term="Automation" /><summary type="html"><![CDATA[I recently read an article recommended by a college. It started with "The moral of the story is, don’t treat the symptoms: treat the cause." [...]]]></summary></entry><entry><title type="html">Another typescript template</title><link href="https://flowkap.dev/Another-typescript-template/" rel="alternate" type="text/html" title="Another typescript template" /><published>2020-11-14T00:00:00+00:00</published><updated>2020-11-14T00:00:00+00:00</updated><id>https://flowkap.dev/Another-typescript-template</id><content type="html" xml:base="https://flowkap.dev/Another-typescript-template/"><![CDATA[<p>Yes I did it. Another <a href="https://github.com/Flowkap/typescript-node-template">typescript template</a> has made it into
existence. Why did I do this? More boilerplate on the internet will not help you might say, contribute to an existing
one you might say, and you’re of course not wrong. Kind of. The reason is the following: Node.js is still a very
versatile environment with many many things and libs to choose from. Also a lot of the popluar ones changed over time. A
lot. And thats what made me start this project: Incompatibilities in
between <a href="https://mochajs.org/">mocha</a> <a href="https://github.com/istanbuljs/nyc">nyc</a> and typescript to be specific.</p>

<p>It made my brain hurt to make it work again with recent version (mocha 8.x.x and nyc 15.x.x). Don’t get me wrong I love
those tools but they had several compatibility issues during the last 12 months that do make live harder for many
people. Actually after researching I found out that they fixed many bugs that were happening occasionally and creating
non deterministic results from time to time.</p>

<p>The problem that comes with it is wrong docs all over the internet. You know how it is, you find an upvoted answer on
Stackoverflow and you try it out. It doesnt work cause you overlooked that the response is like 3 years old. The libs /
tools changed and the response is not valid anymore. This is very much the case with docs on the combination
<code class="language-plaintext highlighter-rouge">mocha + nyc + typescript</code>.</p>

<p>Let me give you one example: We had it working on my job without <a href="https://github.com/TypeStrong/ts-node">ts-node</a> for
ages but actually had strange issues from time to time. Also our setup never covered files that were not loaded by mocha
at all (or any test of course). But the <code class="language-plaintext highlighter-rouge">all: true</code> setting made issues in the past.
The <a href="https://www.npmjs.com/package/@istanbuljs/nyc-config-typescript">current docs</a> are pretty good but did also not
work for me as I had custom glob patterns. So I ended up playing around in the evenings to find a proper working way
also eliminating things that always bothered me. and the result is basically this config:</p>

<p><strong>.mocharc.yml</strong></p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">require</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">ts-node/register</span>
  <span class="pi">-</span> <span class="s">source-map-support/register</span>
<span class="na">recursive</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">color</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">exit</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">extension</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">ts</span>
  <span class="pi">-</span> <span class="s">test.ts</span>
</code></pre></div></div>

<p><strong>.nycrc.yml</strong></p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">extends</span><span class="pi">:</span> <span class="s2">"</span><span class="s">@istanbuljs/nyc-config-typescript"</span>

<span class="na">reporter</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">html</span>
  <span class="pi">-</span> <span class="s">lcovonly</span>
  <span class="pi">-</span> <span class="s">clover</span>
  <span class="pi">-</span> <span class="s">text</span>
  <span class="pi">-</span> <span class="s">text-summary</span>
<span class="na">report-dir</span><span class="pi">:</span> <span class="s">coverage</span>

</code></pre></div></div>

<p>And of course the call config in <strong>package.json</strong></p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">"test"</span><span class="p">:</span><span class="w"> </span><span class="s2">"npm run lint &amp;&amp; nyc mocha src test"</span><span class="err">,</span><span class="w">
</span></code></pre></div></div>

<p>For instance did I not know mocha can have config files in this new format. Found out that feature is not that old and I
missed it. That made me actually start the repo. What about other stuff that I frequently use?</p>

<ul>
  <li>Linting (<a href="https://github.com/eslint/eslint">eslint</a> of course as <a href="https://github.com/palantir/tslint">tslint</a> is
deprecated)</li>
  <li><a href="https://code.visualstudio.com/">VsCode</a> config</li>
  <li>Unit Tests using <a href="https://github.com/sinonjs/sinon">sinon</a> for stubs / mocks / spies</li>
  <li>Example code for the typical webserver use case using <a href="https://github.com/fastify/fastify">fastify</a></li>
</ul>

<p>So I sat down and started it. The final config is a lot more clean, does not need any taskrunners
like <a href="https://github.com/gulpjs/gulp">gulp</a> anymore and all config is in files where possible. Wilst sitting on that
example I did actually find more small issues that made coverage suddenly broken (when starting with mocks and stubbing
the demo code) and it was as small stuff as a wrong <code class="language-plaintext highlighter-rouge">**</code> in the globs. Or nyc treating everything after the first <code class="language-plaintext highlighter-rouge">.</code> as
file ending making a glob pattern like <code class="language-plaintext highlighter-rouge">**/*.ts</code> not match for a file like <code class="language-plaintext highlighter-rouge">src/abc.test.ts</code>.</p>

<p>As I wanted to try out <a href="https://travis-ci.com/">Travis-Ci</a> and <a href="https://codecov.io/">codecov</a> since quite some time I
did do that in one go. The end result is my repo on Github:</p>

<p>https://github.com/Flowkap/typescript-node-template</p>

<p>It might be another template no one needs, but in the end I’m happy with my template for my private use and I would be
super happy if someone can find it useful for starting with Typescript or migrating to newer versions of all our beloved
open source tools. :smiley:</p>]]></content><author><name>Flowkap</name></author><category term="Typescript" /><summary type="html"><![CDATA[Yes I did it. Another typescript template has made it into existence. Why did I do this? ...]]></summary></entry><entry><title type="html">My first post</title><link href="https://flowkap.dev/my-first-post/" rel="alternate" type="text/html" title="My first post" /><published>2020-11-09T00:00:00+00:00</published><updated>2020-11-09T00:00:00+00:00</updated><id>https://flowkap.dev/my-first-post</id><content type="html" xml:base="https://flowkap.dev/my-first-post/"><![CDATA[<p>This is my first blog post on this site. Actually it’s about how I set up this blog in the first place and why.</p>

<p>I’m going to switch job soon, and with it comes that I put a lot more on github lately than usual. Including some fun
projects that I was asked about where the source is and so on. I wondered why not, purely for the sake of fun set up a
blog?</p>

<p>I mean, I do know its not the most thrilling thing you can do in 2020 but maybe (I hope so) some of my former colleges
will still follow me onwards after I left my current employer. And this might be a plcae for them to come from time to
time. Who knows?</p>

<p>There where times before when I thought about doing this (especially after I started getting into Kubernetes) but I
didn’t feel like it at that time.</p>

<p>The more I work with open source though, the more I like the idea of sharing. I just never felt that what I do might be
worth it (still don’t think so to be honest) … but maybe others thought the same? So why not start talking about
things that I like here and link them together. Even if its only for my personal use. Probably it is … but this brings
me to one of the most thrilling things to me in open source:</p>

<p><strong>“Someone did probably what you want to do before in a better way!”</strong></p>

<p>And so it is like 99% of the times. As well as this time! I was sure about hosting
at <a href="https://pages.github.com/">GitHub Pages</a> straight away and was searching for a good template for a blog. Quickly I
stumbled across <a href="https://github.com/barryclark/jekyll-now">Jekyll Now</a> written
by <a href="https://www.barryclark.co/">Barry Clark</a>. It looked exactly like what I was searching for but lacking a few
features (like code highlighting styles) and I would’ve needed to tweak quite a lot.</p>

<p>Thanks to some other people on his Issue list I then found a fork <a href="https://github.com/amitmerchant1990/reverie">Reverie</a>
that has all of that.</p>

<p>And here we are. An hour or so later I have my stuff online. Isn’t open source awesome? I certainly feel it is. And I
actually hope to come up with something original at some point that other people like as much as I do like others stuff.</p>]]></content><author><name>Flowkap</name></author><category term="Career" /><summary type="html"><![CDATA[This is my first blog post on this site. Actually it's about how I set up this blog in the first place and why. I'm going to switch job soon, and with it comes that...]]></summary></entry></feed>