<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ZK on Some philosophy notes</title><link>https://jftr.info/authors/zk/</link><description>Recent content in ZK on Some philosophy notes</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 11 Nov 2026 12:00:00 +0400</lastBuildDate><atom:link href="https://jftr.info/authors/zk/index.xml" rel="self" type="application/rss+xml"/><item><title>My AI workspace: one vault, three agents, and a wiki that learns</title><link>https://jftr.info/post/ai-workspace/</link><pubDate>Wed, 11 Nov 2026 12:00:00 +0400</pubDate><guid>https://jftr.info/post/ai-workspace/</guid><description>&lt;p&gt;For a long time my projects lived everywhere. Notes in one app, scripts in random repos, and most of the context only in my head. Every new chat with an AI assistant started from zero, and I explained the same things again and again: where the server is, how we deploy, what I already tried last week. At some point it became obvious that the problem is not the model, it is the memory around it.&lt;/p&gt;</description></item><item><title>Backups outside Russia: offsite copies that actually restore</title><link>https://jftr.info/post/offsite-backups/</link><pubDate>Wed, 14 Oct 2026 10:00:00 +0300</pubDate><guid>https://jftr.info/post/offsite-backups/</guid><description>&lt;p&gt;Lately more and more companies ask us the same question: what if something happens with infrastructure inside the country and all backups sit in the same place? One DC, one provider, one jurisdiction. That&amp;rsquo;s not a backup strategy, it&amp;rsquo;s a single point of failure.&lt;/p&gt;&#10;&lt;p&gt;At &lt;a href="https://www.linkedin.com/company/94864142/"&gt;Segotech&lt;/a&gt; we can help with it.&lt;/p&gt;&#10;&lt;h2 id="what-we-do"&gt;What we do&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;setup offsite backups to EU or China&lt;/li&gt;&#10;&lt;li&gt;encrypted at rest and in transit, keys stay with you&lt;/li&gt;&#10;&lt;li&gt;regular restore tests, so backup is not only &amp;ldquo;exist&amp;rdquo; but actually works&lt;/li&gt;&#10;&lt;li&gt;support for databases, VMs, Kubernetes, S3 storage, file servers&lt;/li&gt;&#10;&lt;li&gt;monitoring and alerts if backup job failed&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="how-it-goes"&gt;How it goes&lt;/h2&gt;&#10;&lt;p&gt;Setup is fast, usually few days. After that we can support it on monthly basis, or hand it over with docs to your team.&lt;/p&gt;</description></item><item><title>JB Review on Review</title><link>https://jftr.info/post/jb-review-on-review/</link><pubDate>Thu, 09 Nov 2023 11:52:55 +0400</pubDate><guid>https://jftr.info/post/jb-review-on-review/</guid><description>&lt;h1 id="pre"&gt;Pre&lt;/h1&gt;&#10;&lt;p&gt;Ready to dive into a cesspool of incompetence? Here&amp;rsquo;s my &amp;ldquo;review&amp;rdquo; of the so-called technical feedback provided by a trio of the laziest and most unprofessional reviewers known to the realm of code.&lt;/p&gt;&#10;&lt;p&gt;They&amp;rsquo;ve set the bar so low, you&amp;rsquo;d need a shovel to get under it. Check out the whole sorry mess at &lt;a href="https://github.com/zloykaban/darthdataditch"&gt;DarthDataDitch&lt;/a&gt;.&lt;/p&gt;&#10;&lt;details&gt;&#10;&lt;summary&gt;Full review, point by point&lt;/summary&gt;&#10;&lt;h2 id="docs"&gt;Docs&lt;/h2&gt;&#10;&lt;h3 id="pros"&gt;Pros&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The design scheme is included in the readme file&lt;/li&gt;&#10;&lt;li&gt;The solution is well documented&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;&#10;&lt;h3 id="cons"&gt;Cons&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Using the &lt;code&gt;set -e&lt;/code&gt; and &lt;code&gt;set -o pipefail&lt;/code&gt; options in the &lt;code&gt;build.sh&lt;/code&gt; can make the deployment more reliable&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I see where you&amp;rsquo;re coming from, but remember, it&amp;rsquo;s just a test. I&amp;rsquo;ve had zero build issues. Plus, deployment? That&amp;rsquo;s a whole other ball game we didn&amp;rsquo;t even touch in this task.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="helm-chart"&gt;Helm chart&lt;/h2&gt;&#10;&lt;h3 id="cons-1"&gt;Cons&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The current chart can be used with the AWS Load Balancer Controller only: lots of the &lt;code&gt;service.beta.kubernetes.io/aws-load-balancer-type&lt;/code&gt; annotations are hardcoded in the &lt;code&gt;helm/darthdataditch/templates/service.yaml&lt;/code&gt; file. Moving the annotations to the &lt;code&gt;values.yaml&lt;/code&gt; file can be a more generic solution.&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; The scope never mentioned needing anything beyond AWS, so why complicate things? Hardcoding isn&amp;rsquo;t great, I&amp;rsquo;ll give you that, but for a test task, it&amp;rsquo;s a non-issue. It&amp;rsquo;s just style, not substance.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;According to the k8s specification, the &lt;code&gt;terminationGracePeriodSeconds&lt;/code&gt; feature should be used in &lt;code&gt;spec.template.spec.terminationGracePeriodSeconds&lt;/code&gt;, not in the current &lt;code&gt;spec.terminationGracePeriodSeconds&lt;/code&gt; place of the Deployment&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Good catch on the &lt;code&gt;terminationGracePeriodSeconds&lt;/code&gt; placement – that&amp;rsquo;s a genuine oversight. Thanks for flagging it; it&amp;rsquo;s these details that make the difference.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;The service account name has the dynamic value in &lt;code&gt;serviceaccount.yaml&lt;/code&gt;, but the service account name is hardcoded in the &lt;code&gt;deployment.yaml&lt;/code&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; This point might be based on an earlier version. As of the 13th of October 2023, the &lt;code&gt;helm/templates/deployment.yaml&lt;/code&gt; doesn&amp;rsquo;t have hardcoded service account names.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;No Ingress used (as mandatory or optional feature)&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Introducing Ingress into the setup wasn&amp;rsquo;t necessary for the scope of this test task. The current configuration meets the specified requirements without it, keeping the solution simpler and more focused.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;It would be nice to see keeping the sensitive values (&lt;code&gt;USER_TOKENS&lt;/code&gt;) in k8s secrets, which mounted to the application as an environment variables (despite the tokens are salted)&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I agree that using Kubernetes secrets is a best practice for handling sensitive data. However, for the purposes of the test task, the approach taken was sufficient and not a security risk due to the tokens being salted and encrypted. There are multiple ways to secure sensitive values, and the chosen method was appropriate for the scope and scale of this project.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;It would be nice to move the rolling update parameters (&lt;code&gt;spec.strategy.rollingUpdate&lt;/code&gt;) to the &lt;code&gt;values.yaml&lt;/code&gt;, but it is not so important&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I get the point about shifting the rolling update parameters to &lt;code&gt;values.yaml&lt;/code&gt;. But, let&amp;rsquo;s remember we&amp;rsquo;re talking about a test task. This kind of style preference wasn&amp;rsquo;t on the table during our design talk, so it&amp;rsquo;s a bit of a side note rather than a main concern.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;It would be nice to see other features (like &lt;code&gt;securityContext&lt;/code&gt;) supported in the Deployment (with the empty values even, just for further purposes)&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I understand the suggestion to include &lt;code&gt;securityContext&lt;/code&gt; in the deployment, potentially for future-proofing. However, incorporating it without a current use case could be seen as premature optimization, which we generally aim to avoid to maintain code clarity. Plus, this wasn&amp;rsquo;t within the scope we agreed upon, making it an unusual point of focus.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Some variables (&lt;code&gt;containerCommand&lt;/code&gt;, &lt;code&gt;containerArgs&lt;/code&gt;) are specified in the &lt;code&gt;values-eu.yaml&lt;/code&gt; and &lt;code&gt;values-us.yaml&lt;/code&gt;, but they are not used more&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I concur that the unused &lt;code&gt;containerCommand&lt;/code&gt; and &lt;code&gt;containerArgs&lt;/code&gt; variables in the &lt;code&gt;values-eu.yaml&lt;/code&gt; and &lt;code&gt;values-us.yaml&lt;/code&gt; could be a style oversight. These remnants from the Helm chart template should&amp;rsquo;ve been cleaned up, though it&amp;rsquo;s a minor issue and not a functional concern for the task at hand.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Some features (&lt;code&gt;nodeSelector&lt;/code&gt;, &lt;code&gt;tolerations&lt;/code&gt;, &lt;code&gt;ingress&lt;/code&gt;) are specified in the &lt;code&gt;values-eu.yaml&lt;/code&gt; and &lt;code&gt;values-us.yaml&lt;/code&gt;, but they are not used more&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Similar to the variables point, the leftover &lt;code&gt;nodeSelector&lt;/code&gt;, &lt;code&gt;tolerations&lt;/code&gt;, and &lt;code&gt;ingress&lt;/code&gt; features in the &lt;code&gt;values-eu.yaml&lt;/code&gt; and &lt;code&gt;values-us.yaml&lt;/code&gt; were indeed not utilized and should have been pruned from the final chart configuration. These are just artifacts of the Helm chart&amp;rsquo;s scaffolding process and not indicative of the core task functionality.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Using the &lt;code&gt;set -e&lt;/code&gt; and &lt;code&gt;set -o pipefail&lt;/code&gt; options in the &lt;code&gt;helm/deployment.sh&lt;/code&gt; can make the deployment more reliable&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Appreciate the suggestion about &lt;code&gt;set -e&lt;/code&gt; and &lt;code&gt;set -o pipefail&lt;/code&gt;. They&amp;rsquo;re good practices for bash scripting, I&amp;rsquo;ll give you that. But let&amp;rsquo;s be real, they haven&amp;rsquo;t impacted the functionality in the context of this task. Still, it&amp;rsquo;s a nice-to-have for future-proofing scripts, so noted for next time.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;It is better to use the &lt;code&gt;--wait&lt;/code&gt; Helm parameter during the charts&amp;rsquo; installation&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Point taken about the &lt;code&gt;--wait&lt;/code&gt; flag—it&amp;rsquo;s definitely a safeguard for ensuring everything is up and running before calling it a day. Honestly, for the scope of this task, it was a bit overkill to wait on Helm, but it&amp;rsquo;s a solid recommendation for more complex deployments. Thanks for the catch, will consider it for more critical workflows.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;.Values.serviceAccount.automount&lt;/code&gt; is used in the &lt;code&gt;helm/darthdataditch/templates/serviceaccount.yaml&lt;/code&gt;, but its value is not defined&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; This one&amp;rsquo;s a bit rich—looks like you&amp;rsquo;re grasping at straws. I mean, come on, we&amp;rsquo;re talking about a non-defined value that’s not breaking anything. It feels like you’re just throwing a linter report at me rather than giving an honest review. If I wanted automated feedback, I&amp;rsquo;d have asked GitHub actions, not a human. Let&amp;rsquo;s focus on the substance, shall we?&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;.Values.serviceAccount.annotations&lt;/code&gt; is used in the &lt;code&gt;helm/darthdataditch/templates/serviceaccount.yaml&lt;/code&gt;, but its value is not defined&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Once again, we&amp;rsquo;re seeing a complaint about an undefined value? I’m spotting a pattern here - seems like someone’s just running a linter and calling it a code review. These aren’t critical issues, they don’t impact the functionality. Let&amp;rsquo;s cut to the chase and&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;pod.annotations&lt;/code&gt; is specified in the &lt;code&gt;values-eu.yaml&lt;/code&gt; and &lt;code&gt;values-us.yaml&lt;/code&gt;, but it is not used more&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; And the beat goes on with &lt;code&gt;pod.annotations&lt;/code&gt;! It&amp;rsquo;s clear that someone is just checking boxes with a linter output. If we&amp;rsquo;re going to nitpick on unused annotations rather than substantive, functional issues, then we&amp;rsquo;re focusing on the wrong aspects of the review. I&amp;rsquo;d rather we spend this energy on enhancing the app, not pruning YAML files like a garden hedge.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;It seems that the IRSA is not working: the IAM role should be specified not as the pod annotation.&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Let&amp;rsquo;s clear something up: if IRSA wasn&amp;rsquo;t working, how do you suppose the file upload feature operates flawlessly? The IAM role is doing its job just fine. The issue here isn&amp;rsquo;t with the functionality; it&amp;rsquo;s with the perception of how it should be implemented, which, frankly, is spot on as evidenced by the working feature.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;According to the k8s specification, the &lt;code&gt;automountServiceAccountToken&lt;/code&gt; feature should be used in &lt;code&gt;automountServiceAccountToken&lt;/code&gt;, not in the current &lt;code&gt;metadata.automountServiceAccountToken&lt;/code&gt; place of the ServiceAccount&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; This feels like nitpicking rather than a substantive review. The location of &lt;code&gt;automountServiceAccountToken&lt;/code&gt; hasn&amp;rsquo;t impacted functionality at all. Starting to wonder if we&amp;rsquo;re reviewing actual issues or just playing &amp;lsquo;spot the difference&amp;rsquo; with Kubernetes manifest specs.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Target namespace of the &lt;code&gt;aws-load-balancer-controller&lt;/code&gt; and the &lt;code&gt;helmdataditch&lt;/code&gt; charts is not specified&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; The omission of a specific target namespace was a conscious decision, given this is an isolated environment. Introducing additional namespaces would be unnecessary complexity for the scope of this task, which wasn&amp;rsquo;t outlined in the initial design session. it smells again as premature optimisation.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;No checks for the needed tools (&lt;code&gt;awscli&lt;/code&gt;, &lt;code&gt;helm&lt;/code&gt;) in the &lt;code&gt;helm/deployment.sh&lt;/code&gt; - but it is optional.&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Read the docs! Why should we waste cycles on redundant checks for tools like &lt;code&gt;awscli&lt;/code&gt; and &lt;code&gt;helm&lt;/code&gt; when they&amp;rsquo;re clearly outlined in the documentation as prerequisites? We&amp;rsquo;re not babysitting; this is for devs who know their way around their toolset.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Each chart&amp;rsquo;s values are not documented, but it is optional.&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Seriously? You&amp;rsquo;re nitpicking on documentation for each value in the Helm chart now? This feels like someone&amp;rsquo;s just running a linter and calling it a review. Get real, we document what matters - devs can read code for the mundane bits.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="pros-1"&gt;Pros&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The idea of &lt;code&gt;terminationGracePeriod&lt;/code&gt; is used&lt;/li&gt;&#10;&lt;li&gt;There is a separate documentation for the chart installation&lt;/li&gt;&#10;&lt;li&gt;The chart installation and infrastructure installation are separated from each other&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; So, let me get this straight: you&amp;rsquo;ve got a total of three &amp;lsquo;Pros&amp;rsquo; listed, and you&amp;rsquo;re trying to balance that against 19 &amp;lsquo;Cons&amp;rsquo; that smell like they&amp;rsquo;ve been spit out of an automated linter? That&amp;rsquo;s not only unfair, it&amp;rsquo;s borderline disrespectful. Look, there&amp;rsquo;s a ton more positive stuff here – the &lt;code&gt;deployment.sh&lt;/code&gt; is a masterpiece of automation, the templating is on point, and the use of variables? Chef&amp;rsquo;s kiss! But sure, go ahead, focus on the minor stuff while ignoring the craftsmanship that went into the rest of the code. Makes total sense.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="application"&gt;Application&lt;/h2&gt;&#10;&lt;h3 id="pros-2"&gt;Pros&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ASCII art is used&lt;/li&gt;&#10;&lt;li&gt;The StarWars&lt;/li&gt;&#10;&lt;li&gt;Values of the &lt;code&gt;USER_TOKENS&lt;/code&gt; are salted&lt;/li&gt;&#10;&lt;li&gt;Logger is used&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Thanks for noticing the ASCII art and Star Wars flair; a bit of fun never hurts. Appreciate the nod to the salted &lt;code&gt;USER_TOKENS&lt;/code&gt; and the logger implementation. It&amp;rsquo;s good to see some aspects hit the mark without any nitpicking.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="notes"&gt;Notes&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;At the moment, the file upload functionality is implemented only. The file downloading is not implemented, but we missed checking this in the &amp;ldquo;Must Have&amp;rdquo; part of the design document. It is our fault.&lt;/li&gt;&#10;&lt;li&gt;Why the &lt;code&gt;~/.aws/credentials&lt;/code&gt; credential path is used in &lt;code&gt;app/utils/s3.py&lt;/code&gt;?&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Just to extend on the previous point, the &lt;code&gt;~/.aws/credentials&lt;/code&gt; path was by no means a permanent fixture. No creds were hardwired into the system—safety first, after all. It was just a stopgap to keep the ball rolling. And cheers for not flagging it as a concern; it&amp;rsquo;s reassuring to see some common sense in action.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Is it possible to move the scripts (&lt;code&gt;start.sh&lt;/code&gt; and &lt;code&gt;create-token.py&lt;/code&gt;) and &lt;code&gt;requirements.txt&lt;/code&gt; to a separate directory?&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Sure, those files could be shuffled around into a dedicated directory, but let&amp;rsquo;s not fix what ain&amp;rsquo;t broken, shall we? For a test task, the project structure is more than just solid—it&amp;rsquo;s on point. No need for unnecessary directory gymnastics.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="dockerfile"&gt;Dockerfile&lt;/h2&gt;&#10;&lt;h3 id="cons-2"&gt;Cons&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;It seems that the application is running under the privileged user permissions&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Why would you think the app&amp;rsquo;s running with privileged perms? If we take a peek at the Dockerfile, there&amp;rsquo;s no sign of USER specified, meaning it defaults to the user provided by the &lt;code&gt;python:3.11&lt;/code&gt; base image. And guess what? That&amp;rsquo;s not a privileged user. There&amp;rsquo;s no &lt;code&gt;USER root&lt;/code&gt; or any commands needing escalated privileges. So where&amp;rsquo;s this coming from? The Dockerfile&amp;rsquo;s clean.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="pros-3"&gt;Pros&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Hash of the git commit are used as a Docker image tag&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="notes-1"&gt;Notes&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Is the &lt;code&gt;create-token.py&lt;/code&gt; needed to be inside the docker image?&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Hold up, where did you get the idea that &lt;code&gt;create-token.py&lt;/code&gt; is lounging around inside the Docker image in the latest cut? Take a look at the date, my friend — by the 13th of October version, that file&amp;rsquo;s no longer getting cozy in the image. It&amp;rsquo;s gone. Poof! If you&amp;rsquo;re still seeing it, you might be time-traveling through an old repo snapshot. Better update your flux capacitor or just pull the latest code, yeah?&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Is it make sense to use the &lt;code&gt;.dockerignore&lt;/code&gt; file?&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Alright, let&amp;rsquo;s talk about this &lt;code&gt;.dockerignore&lt;/code&gt; suggestion. See, from where I stand, every single byte in my docker context is there for a reason. If you think I&amp;rsquo;ve got fluff that needs ignoring, I&amp;rsquo;d really like to see some examples. What exactly is taking up space that doesn&amp;rsquo;t need to? However, props for not flagging this as a major issue—it&amp;rsquo;s definitely not a blocker by any stretch, just a curiosity. But hey, examples would be gold for a more fruitful chat on this!&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="terraform"&gt;Terraform&lt;/h2&gt;&#10;&lt;h3 id="pros-4"&gt;Pros&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Modules are used&lt;/li&gt;&#10;&lt;li&gt;Tags are used&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; I gotta say, I appreciate the nod for using modules and tags—it&amp;rsquo;s basic hygiene, right? But we&amp;rsquo;re just scratching the surface here! There&amp;rsquo;s a ton of craftsmanship woven into this code. We&amp;rsquo;re talking about a sophisticated setup with remote-state management for state-of-the-art tracking, sharp environment segregation for pristine order, and a seamless installation guide that&amp;rsquo;s practically foolproof. Add to that the strategic pre-allocation of Elastic IPs for the NLB, ensuring we&amp;rsquo;ve got a rock-solid, unchanging endpoint—that&amp;rsquo;s some advanced planning right there. Plus, let&amp;rsquo;s not overlook the nifty tricks up the sleeve like the ACM certificate handling, clever domain name plays, and the slick OIDC setup. It&amp;rsquo;s like praising a gourmet chef just for chopping veggies—come on, give credit where it&amp;rsquo;s due!&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="cons-3"&gt;Cons&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;It would be nice to specify in the documentation all places of the code where changes are needed to make (like Terraform state bucket) before deploying the solution&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Hang on a sec, weren&amp;rsquo;t we just singing praises about the documentation being well-crafted? If we flip through the pages of that Terraform README.md, you&amp;rsquo;ll find it&amp;rsquo;s all laid out there—clear as day. Everything that needs a tweak before deployment, like the Terraform state bucket, has its spot in the spotlight. It&amp;rsquo;s all in there, spelled out to avoid any head-scratching moments. So, maybe we double-check that doc before we say something&amp;rsquo;s amiss. Just saying, it pays to read the manual!&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Some Terraform variables have no description&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Oh, come on now—this again feels like someone’s got a linter running on overdrive and is nitpicking markdown formatting rather than looking at the meat of the matter. I&amp;rsquo;m sure if the variables really needed descriptions, they&amp;rsquo;d have them. But hey, if it&amp;rsquo;s markdown beauty we&amp;rsquo;re after, sure, I could spend a few extra minutes prettying up the variable descriptions for the &amp;lsquo;Aesthetics over Function&amp;rsquo; award.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Some Terraform outputs have no description&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Are we seriously back on this? Look, the outputs do what they need to do, description or no description. I bet this is another &amp;rsquo;linter alert&amp;rsquo; situation, right? If you want a play-by-play on every output, sure, I can make that happen, but let&amp;rsquo;s be real—that&amp;rsquo;s like asking for a manual on how to use a spoon. It&amp;rsquo;s an output, not a mystery novel.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;There is no ability to use additional tags for the resources&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Oh, come on! Additional tags? What is this, a high school locker that needs extra stickers to stand out? We&amp;rsquo;re deploying infrastructure here, not decorating a bedroom wall. I&amp;rsquo;ve provided enough tags to track resources for billing, organization, and operations. Anything more is just fluff. What&amp;rsquo;s next, asking for each resource to have a motivational quote attached to it? Let&amp;rsquo;s focus on what matters, shall we?&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;arn:aws:iam::433663489437:role/alb-ingress-controller consists the hardcoded AWS account in the terraform/env/eu-central/iam_policies.tf&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; Hardcoded AWS account? You&amp;rsquo;ve got to be kidding me! Look, if you&amp;rsquo;d taken a moment to actually pull the latest version before shooting off this &amp;lsquo;feedback&amp;rsquo;, you&amp;rsquo;d see there&amp;rsquo;s not a single hardcoded account number in sight. Every single reference has been parameterized since November 13, 2023. Maybe next time, spend that energy on updating your local repo instead of hunting ghosts in the machine!&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="the-intermediate-status"&gt;The intermediate status&lt;/h2&gt;&#10;&lt;p&gt;The solution is not checked yet completely, as some part (like the Helm chart) is needed to be adjusted.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;ZK:&lt;/strong&gt; So the solution isn&amp;rsquo;t fully tested just because some parts &amp;rsquo;need to be adjusted&amp;rsquo;? Sounds to me like a fancy way of saying, &amp;lsquo;We couldn&amp;rsquo;t be bothered to do a thorough job.&amp;rsquo; Professionalism and thoroughness seem to have taken the back seat here. If a job&amp;rsquo;s worth doing, it&amp;rsquo;s worth doing right — something that seems to have been missed along the way.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/details&gt;</description></item><item><title>My Rollercoaster Ride with JB's Hiring Process – A Candid Retrospective</title><link>https://jftr.info/post/jb-hiring-journey/</link><pubDate>Wed, 08 Nov 2023 13:23:20 +0400</pubDate><guid>https://jftr.info/post/jb-hiring-journey/</guid><description>&lt;p&gt;Hello, fellow tech enthusiasts,&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;m taking a moment to share a recent experience that was as enlightening as it was baffling – my hiring journey with JB. This is not a rant, but rather a candid reflection on a process that I believe could be much more candidate-friendly.&lt;/p&gt;&#10;&lt;h2 id="the-ups"&gt;The Ups:&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;1. The Human Touch:&lt;/strong&gt;&#10;The team&amp;rsquo;s verbal communication skills during video calls were commendable. Real people, real conversations – that&amp;rsquo;s rare and appreciated.&lt;/p&gt;</description></item><item><title>Blogging</title><link>https://jftr.info/post/blogging/</link><pubDate>Sun, 24 Sep 2017 16:01:55 +0300</pubDate><guid>https://jftr.info/post/blogging/</guid><description>&lt;p&gt;It&amp;rsquo;s quite interesting to observe the modern blogosphere, and it seems to be far more engaging now than it was 10-15 years ago. Previously, people wrote just because or to satisfy their vanity. But now, writing/filming is done exclusively to earn money. All so-called top bloggers, as a brewer aptly noted, would &amp;ldquo;sell their own mother&amp;rdquo;—and it&amp;rsquo;s hard to argue with that; it&amp;rsquo;s just human nature. The technology for disseminating information is very well developed—there are popular networks, search engines, but somehow there are fewer and fewer real people there. Huge corporations fight for the right to own the minds of &amp;ldquo;little hamsters&amp;rdquo; and shape their opinion (so much for indirect democracy), and an endless amount of resources is directed towards this. For example, the recent story about the brewer and two vloggers from Perm smells like a colossal setup, but people seem to fall for it and believe that indeed officers from Petrovka would go to Perm over a libel case against two bloggers with an audience of 2-3 million people, half of whom are apparently bots. The hype has risen and crashed down on vulnerable minds. For several days, everyone was outraged about the terrible and lawless state we live in. People also remembered about predatory loans—but allow me, friends—isn&amp;rsquo;t it obvious that any loan will be expensive and you can probably do without it? Or isn&amp;rsquo;t it obvious that a bank, like an insurance company, is a structure aimed not at making your life better or easier but primarily at reallocating resources? It&amp;rsquo;s indeed hard for me to believe that people using large free services on the internet are surprised that they are being profited from. There&amp;rsquo;s a pretty modern saying, &amp;ldquo;If you can&amp;rsquo;t see the product, then you are the product.&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>