{
  "version": "https://jsonfeed.org/version/1",
  "title": "Vladi Iancu",
  "home_page_url": "https://vladiiancu.com/",
  "feed_url": "https://vladiiancu.com/feed/feed.json",
  "description": "The journey of a life",
  "author": {
    "name": "Vladi Iancu",
    "url": "https://vladiiancu.com/"
  },
  "items": [{
      "id": "https://vladiiancu.com/post/the-cto-contradiction/",
      "url": "https://vladiiancu.com/post/the-cto-contradiction/",
      "title": "The CTO Contradiction",
      "content_html": "<p>As the days get swallowed by code, architecture decisions, and the general chaos of trying to build things that work... I get lost and forget to do things that I enjoy. Such as writing and publishing on this blog.</p>\n<p>So here I am again, with a story.</p>\n<p>The other day I was on the train, commuting. And I was feeling a bit guilty because I was reading a book called <em>Reclaiming Conversation</em> by Sherry Turkle.</p>\n<p>Usually, my brain says I should be reading something &quot;useful&quot; during this time. Angular docs. A technical blog post about system architecture. Anything work-related that helps me push the next feature for ialoc.</p>\n<p>So here I was:\n⇒ Reading a book about sociology and human connection\n⇒ Feeling guilty about not reading API documentation</p>\n<p>What do?</p>\n<p>I kept reading. And then I got to the part where she explains how our screens are slowly eroding our ability to just sit across from someone and talk. Like really talk. Not exchange information or react to a meme, but just be there in a conversation that goes somewhere unplanned.</p>\n<p>We are so used to the constant stimulation of digital communication that we've forgotten how to handle the quiet moments. We reach for our phones the second a conversation gets boring or pauses. And because of that, we never reach the deeper parts of a discussion that only happen after the awkward pause.</p>\n<img src=\"./images/digital-distraction.png\" alt=\"summary of the post on complete cycle of my morning wakeup alarm\" />\n<p>Reading this as a CTO, I had to laugh.</p>\n<p>Because my actual job is creating teams which build great software that lives on screens. I spend <s>8</s> countless hours a day staring at one, writing code/docs/ADRs/tests etc so that other people can stare at theirs.</p>\n<p>But the entire purpose of <a href=\"https://www.ialoc.ro\">ialoc.ro</a> is to get people to go out to restaurants. To sit at a table. Face to face. With another human being.</p>\n<p>It made me realize something important about what we are actually building. If you look at it strictly technically, ialoc is a booking engine. We process reservations.</p>\n<p>But that's just the logistics.</p>\n<p>What we actually sell is the arrival. The reservation gets you through the door. But the real product is that moment when you sit down, put your phone face-down on the table, and have one of those unplanned, wandering conversations that Turkle says we're losing.</p>\n<p>It's a weird contradiction. In the tech industry, the goal is almost always to keep users in the app for as long as possible. More engagement. More screen time.</p>\n<p>But for us? The best thing our technology can do is get you to the table efficiently, and then disappear completely. If our software is doing its job right, you shouldn't be looking at it.</p>\n<p>Are we building technology that demands attention, or technology that frees it up?</p>\n<p>ps. No, I haven't finished the book yet. I keep reading a chapter and then staring out the train window thinking about it. Which, ironically, is exactly what the book is about.</p>\n",
      "date_published": "Fri, 08 May 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-backdoor-that-almost-took-down-the-internet/",
      "url": "https://vladiiancu.com/post/the-backdoor-that-almost-took-down-the-internet/",
      "title": "The Backdoor That Almost Took Down the Internet",
      "content_html": "<p>If you run any server — cloud, VPS, even a Raspberry Pi at home — this affects you. Directly.</p>\n<p>I just watched a video that genuinely unsettled me. Not in a doomscrolling news way — in a we narrowly avoided a catastrophic cyberattack and almost nobody noticed way.</p>\n<p>So I needed to share it. Because this story matters.</p>\n<h2>What happened</h2>\n<p>In early 2024, someone (we still dont know who) managed to inject a backdoor into XZ Utils — a compression tool so fundamental that its in virtually every Linux system in the world. Were talking servers, cloud infrastructure, containers, embedded devices. If it runs Linux, it probably has XZ.</p>\n<p>The backdoor targeted OpenSSH — the primary way we remotely access Linux servers. With the right private key, an attacker could execute arbitrary code as root on any affected system.</p>\n<p>The CVSS score? 10.0. The maximum. Theres literally nothing worse.</p>\n<p>Heres the scary part: the compromised version was already rolling out to major Linux distributions. Fedora. Debian. Arch. Kali. It was in development and beta builds for days. If it had hit stable releases, hundreds of millions of servers worldwide would have been vulnerable.</p>\n<p>It was discovered just days before production deployment.</p>\n<h2>How it happened</h2>\n<p>This wasnt some script kiddie finding an exploit. This was a three-year operation.</p>\n<p>Someone going by Jia Tan slowly infiltrated the XZ project. They used sock puppets (fake community accounts like Jigar Kumar and misoeater91) to pressure the original maintainer to step down. Eventually, Jia Tan became co-maintainer — and introduced the backdoor in versions 5.6.0 and 5.6.1.</p>\n<p>The code was sophisticated. Obfuscated. Multi-stage. The malicious payload was hidden in compressed test files that only got extracted during the build process. The modified build script only ran on x86_64 Linux with glibc. It wasn't in the git repository — only in the release tarballs.</p>\n<p>This was a supply chain attack at its finest. Not hacking a system. Becoming the system.</p>\n<h2>Who saved us?</h2>\n<p>A Microsoft developer named Andres Freund was debugging performance issues in Debian Sid when he noticed something strange: SSH connections were using unexpectedly high CPU, and Valgrind (a memory debugging tool) was throwing errors.</p>\n<p>He dug deeper. Found the backdoor. Reported it.</p>\n<p>One person. Not a security team. Not a government agency. One developer noticing something off.</p>\n<p>That's what saved the internet. We can call ourselves lucky, right?</p>\n<h2>Why this matters</h2>\n<p>Alex Stamos (former CSO at Facebook) said it best: This could have been the most widespread and effective backdoor ever planted in any software product.</p>\n<p>If undetected, it would have given attackers a master key to hundreds of millions of computers running SSH. Cloud servers. Government systems. Everything.</p>\n<p>Again, we got lucky!</p>\n<p>Andres Freund only found it because he was debugging something unrelated. The backdoor was incredibly sophisticated. Most people wouldt have noticed. Security teams at major companies didnt catch it.</p>\n<h2>The bigger picture</h2>\n<p>This incident sparked a lot of uncomfortable conversations about open source security:</p>\n<ul>\n<li>Critical infrastructure depends on unpaid volunteers</li>\n<li>A single maintainer can be socially engineered over years</li>\n<li>The attack targeted the build pipeline, not just source code</li>\n<li>CISA and OpenSSF warned: this may not be isolated</li>\n</ul>\n<p>Since then, similar takeover attempts have been detected in other open source projects.</p>\n<p>The software world runs on trust. Most of the time, that trust is well-placed. But every now and then, someone abuses it in ways that are almost impossible to detect.</p>\n<h2>What I keep thinking about</h2>\n<p>Three years. Thats how long this operation ran. Patient. Calculated. Building trust before making a move.</p>\n<p>We think about security in terms of firewalls, encryption, patches. But the hardest attack vector to defend against is the one where the attacker becomes the defender.</p>\n<p>I don't have a neat conclusion here. Just a story that I think more people should know.</p>\n<p>P.S. If you want to go deeper, Veritasium just released a video on this. Its brilliant. Here's the link: <a href=\"https://youtu.be/aoag03mSuXQ\">https://youtu.be/aoag03mSuXQ</a></p>\n<p>Stay curious.</p>\n",
      "date_published": "Mon, 02 Mar 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/i-stopped-writing-by-hand/",
      "url": "https://vladiiancu.com/post/i-stopped-writing-by-hand/",
      "title": "I stopped writing by hand",
      "content_html": "<p>I've always been the person with the agenda. Always. Notes everywhere. Ideas scribbled on random pieces of paper. Lists upon lists. It felt productive — and it was, most of the time.</p>\n<p>Two weeks ago, I realized I hadn't opened it. Not once. That's unusual for me.</p>\n<p>Ever since I started using AI assistants, I stopped writing by hand. Completely.</p>\n<p>Here's where it gets interesting: I can't tell if this is good or bad.</p>\n<h2>The Old Way</h2>\n<p>But here's the thing: some of those ideas got lost in the notes. Not all mind you. Most got acted on. Tasks got done and marked as such in the agenda. But some? Forgotten.</p>\n<h2>The New Way</h2>\n<p>Now I just talk to the AI. &quot;Hey, remember this.&quot; &quot;Add this to my task list.&quot; &quot;What's my schedule?&quot;</p>\n<p>And it works. Surprisingly well.</p>\n<p>But there was something valuable about writing by hand. The friction. The slow part. It forced me to think before I wrote. To distill. To process the thought before it became a &quot;task.&quot;</p>\n<p>Now? I dump it out. Move to the next thing.</p>\n<h2>The Real Question</h2>\n<p>Am I trading depth for speed? Is this the future — or am I losing something important along the way?</p>\n<p>I don't have a clean answer. But I've learned to ask better questions. &quot;Why does this matter?&quot; &quot;What's the real problem?&quot; &quot;What am I missing?&quot;. And then I use AI to push back.</p>\n<p>It's working. Less handwriting, more structured thinking. Maybe that's the trade-off.</p>\n<p>The thing is =&gt; the value wasn't just in the slow pace. It was in the review cycle. Writing created distance. Distance created perspective. Re-reading later with fresh eyes let you adjust.</p>\n<p>Can AI recover this? Yes, if you use it as a thinking partner, not a memory dump. But here's the tension: the gap is now too easily closed. With handwriting, review was physically hard. Now it's one prompt away.</p>\n<p>Is the value in the effort of retrieving, or in the distance itself? Would frictionless review still give insight? Or does the act of trying to remember shape the understanding?</p>\n<p>I don't know. We might find out later. Or we might not.</p>\n<hr>\n<p>ps. If you use AI assistants, have you noticed this shift? Let me know. I'm genuinely curious.</p>\n",
      "date_published": "Fri, 27 Feb 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/there-is-no-playbook/",
      "url": "https://vladiiancu.com/post/there-is-no-playbook/",
      "title": "There is no playbook",
      "content_html": "<p>Hello dear reader.</p>\n<p>Long time it's been since something was published here. It's not for the lack of ideas — I've had a few bouncing around. But sometimes you need the right moment. Or maybe you just need to figure out what you actually think first.</p>\n<p>So here's something I've been sitting with for a while.</p>\n<p>For years now, I've been following certain people across different channels. Substack, LinkedIn, newsletters, podcasts — you know how it goes. Not because I'm obsessed, but because they consistently make me think. Over time, you get to know how someone thinks. Not deeply, of course. Just the surface that they show. But that surface is enough to understand their perspective on things.</p>\n<p>And, for the most part, on the topics I care about, they were aligned. Same wavelength. Similar conclusions.</p>\n<p>Then AI happened.</p>\n<p>Now? Not so much. The same people I once saw agreeing are now contradicting each other. On major topics. Publicly. Respectfully, at least in my bubble — which is nice to see, honestly.</p>\n<p>And here's the thing: it's <em>fascinating</em>. Not because someone's right and someone's wrong. But because there's no playbook here. Everyone's figuring it out. The experts, the thought leaders, the people I respect — they're all feeling their way through. Some more confidently than others, sure. But nobody has the answer.</p>\n<p>This has been strangely comforting to me.</p>\n<p>Because when you're building something, when you're trying to figure out product-market fit, when you're navigating a semi-pivot (yes, we're doing that too at Alt.Real), it's easy to feel like everyone else has it figured out. That there's a secret somewhere that you're missing.</p>\n<p>But watching these people — people I'd consider smarter and more experienced than me — not only disagree but also admit uncertainty? That tells me something. We're in uncertain times. And that's normal. There's no playbook. No best practices that survived contact with reality.</p>\n<p>So… what do?</p>\n<p>I think it's this: don't wait for certainty. Don't wait for the experts to converge. Don't wait for the &quot;right moment&quot; or the &quot;perfect strategy.&quot;</p>\n<p>Get your hands dirty. Build something. Learn by doing. That's the only way any of us figure it out.</p>\n<p>Anyway, that's what I've been thinking about.\nP.S. If you are reading this by any chance, I'd love to hear your thoughts. What perspectives have been helpful for you lately?</p>\n",
      "date_published": "Thu, 19 Feb 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-myth-of-the-data-driven-decision/",
      "url": "https://vladiiancu.com/post/the-myth-of-the-data-driven-decision/",
      "title": "The Myth of the Data-Driven Decision",
      "content_html": "<p>We tell ourselves a story. &quot;We make data-driven decisions.&quot; It sounds good. It sounds professional. It sounds like the right answer.</p>\n<p>But here's what I've learned: it's mostly fiction.</p>\n<h2>The Gap Between Story and Reality</h2>\n<p>I'm a data guy. I genuinely believe in numbers, evidence, and logic. So when I see organizations making &quot;dumb decisions&quot; (the kind that don't hold up to any scrutiny) it frustrates me. There's no logical explanation. Politics won. Convenience won. Personal ambition won over what was actually right.</p>\n<p>And the worst part? Everyone knows it. But nobody says it.</p>\n<p>We dress it up. We create OKRs. We run &quot;analysis.&quot; We present dashboards. But underneath? The decision was made based on feelings, impressions, and who spoke loudest in the meeting.</p>\n<h2>I'm Guilty Too</h2>\n<p>This is the part that took me a long time to admit.</p>\n<p>I like to think I'm different. That I'm the guy with the spreadsheet who fights for what's <em>correct</em>. But the truth is, I make plenty of feeling-based calls too. My gut. My mood. My impression of someone.</p>\n<p>Looking back, some of them were good, or even great decisions. Others not so much. But data-driven decisions can also suffer a similar faith.</p>\n<p>The problem I'm facing is that I haven't made peace with it.</p>\n<h2>The Cost of Not Accepting It</h2>\n<p>When you can't accept that you're not as rational as you think, something weird happens. You stop performing at your best. You get stuck. You're so focused on &quot;what's right&quot; that you miss the actual game.</p>\n<p>More importantly — you make it harder for everyone else.</p>\n<p>Your cofounders don't need you to be right all the time. They need you to be present. To move. To trust that good enough &gt; perfect. When you're stuck in &quot;but the data says...&quot; mode, you're not leading. You're just blocking.</p>\n<h2>So What Do We Do?</h2>\n<p>I don't have a clear answer. I'm still figuring this out.</p>\n<p>But here's what I'm trying:</p>\n<ol>\n<li><strong>Admit it</strong> — I don't make all my decisions with data. Neither do you. Neither does anyone.</li>\n<li><strong>Ask better questions</strong> — Instead of &quot;what does the data say?&quot; maybe ask &quot;what are we really optimizing for?&quot;</li>\n<li><strong>Let go sometimes</strong> — Not every decision needs your input. Trust the team.&quot;</li>\n</ol>\n<h2>The Real Enemy</h2>\n<p>Making decisions based on feeling is not the enemy here. It is not knowing you're doing it.</p>\n<p>Once you accept that humans are irrational creatures who happen to use spreadsheets, everything gets easier. You stop fighting reality. You start working with it.</p>\n<p>And your cofounders will thank you.</p>\n",
      "date_published": "Tue, 17 Feb 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/my-openclaw-adventure/",
      "url": "https://vladiiancu.com/post/my-openclaw-adventure/",
      "title": "My OpenClaw adventure",
      "content_html": "<p>So I got myself another VPS. Fresh, clean, ready for action.</p>\n<p>First try with OpenClaw — the script install. And you know what? It just worked. Quick and smooth. I was impressed.</p>\n<p>Then I started thinking about security. Docker this, Docker that. More isolation, right? Sounds good.</p>\n<p>So I restarted. This time with Docker.</p>\n<p>Failed. Miserally. Multiple attempts. I tried this, I tried that. Nothing worked. Every time — nope.</p>\n<p>Some stuff worked, some didn't. The dashboard would load but not fully — some parts just wouldn't show up. Telegram bot? Fine. Working like a charm, actually. But the dashboard? Incomplete. Frustrating.</p>\n<p>There were also small issues with setting up the firewall. And configuring Tailscale. Nothing major, but enough to make me scratch my head. It also didn't help that the documentation was out of sync with the latest changes in the repo, of course.</p>\n<p>And here's the thing — I was looking for security but I found something else instead. Let's call it... misery.</p>\n<p>Anyway, so back to the script install I went.</p>\n<p>And then I figured something out: the VPS will only run this thing anyway. So... it's fine. Script install it is.</p>\n<p>At the end of the day, I'm happy with the progress. It works, I can reach it, and I'll continue experimenting. Maybe Docker will work next time. Maybe it won't. But that's the fun part, right?</p>\n<p>How about you? How do you use OpenClaw? What does your setup look like? I'd love to hear about it. Write a comment.</p>\n",
      "date_published": "Mon, 16 Feb 2026 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/starting-a-health-journey/",
      "url": "https://vladiiancu.com/post/starting-a-health-journey/",
      "title": "Starting a health journey",
      "content_html": "<p>Embarking on this kind of journey is simultaneously exciting and horrifying.</p>\n<p>My history with fitness, health, weights, and all that is not great. Many attempts and just as many setbacks.</p>\n<p>But now I am approaching things a little bit different.</p>\n<p>All that trial and error from the past? I can use it as knowledge. I can learn from it.</p>\n<p>So what am I doing differently now?</p>\n<p>It's simple: Smaller steps and higher accountability!</p>\n<p>The higher accountability part is obvious: Make it public. And boy, public it is.</p>\n<p>I didn't call my friends and family to tell them about my crazy idea. Nope.\nI didn't call anybody.</p>\n<p>I just created a new.... YouTube channel!</p>\n<p>I've posted something there. And I'll continue to post.</p>\n<p>If that doesn't make me accountable... I don't know what will :) And I'm learning and experimenting a bit more with video creation, editing and all that.</p>\n<p>And my friends and family still don't know much because I haven't shared the channel yet.</p>\n<p>What about the other part... the small steps part.\nWell, that is and will continue to be a work in progress. I haven't decided or defined anything clear yet. I will be exploring and experimenting until I find something that makes sense.</p>\n<p>P.S. You can find me on YouTube here: <a href=\"https://www.youtube.com/@VladiVsVladi\">@VladiVsVladi</a></p>\n<p>Keep it mind that this time, I'm not speaking in English.</p>\n",
      "date_published": "Sun, 10 Aug 2025 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/experiment-offline-sundays/",
      "url": "https://vladiiancu.com/post/experiment-offline-sundays/",
      "title": "Experiment - Offline Sundays",
      "content_html": "<p>A while ago, I had an idea for a new life experiment:</p>\n<blockquote>\n<p>What if, once per week, I would disconnect from the online world completely?</p>\n</blockquote>\n<p>Having that thought with me for a while, it was time to act on it. But my intuition said it would be difficult to achieve this. At least right away.</p>\n<p>So I asked myself, what would be the next best thing that gets me closer to my objective?</p>\n<p>Having strong limits on internet and tech in my life for one day. And, bonus points, involve my family as well --- making the experiment much easier to adopt in the long run.</p>\n<p>After a brief discussion and laying out ground rules, we achieved consensus and we began our experiment shortly after. Here are some of the characteristics:</p>\n<ul>\n<li>Sunday was chosen as the recurring day when we would practice this</li>\n<li>We would disconnect our phones from Wi-Fi and Mobile Data</li>\n<li>We were allowed to use devices or services such as Waze/Google Maps (with offline maps) to get around the city</li>\n<li>Talk with immediate family and let them know that if there's something that requires our attention, they should switch to giving a call instead of sending a message through one of the channels or social media accounts.</li>\n<li>There was no real or hard restriction in terms of briefly connecting the phones to the Internet. Sometimes this was required (opening the car gates requires internet access), sometimes it might be very useful (a quick recipe check, contact info for a store etc). We would observe each other and let the other one know in case he/she got distracted and forgot to disconnect.</li>\n</ul>\n<p>Glad to report that the experiment was a success.</p>\n<p>I was surprised initially to learn how easy it was to activate the experiment. Thought that it would have been a struggle. But in our case it was quick and painless.</p>\n<p>It really helped that we knew that if we really had to, we could connect back on. The biggest win was the lack of notifications. Of course, you could block notification on your phone to achieve the same result. So this would be an alternative experiment. The true power was when you picked up the phone randomly and maybe even without giving it much thought you would open up a random app. And only then you would realize there is no internet connection so it's not working. And it was a gentle reminder that hey, the experiment is up and running, go enjoy life.</p>\n<p>The combination of lack of notifications + the inability to mindlessly scroll allowed us to be more relaxed, more present. I took this opportunity to catch up on some of the books on my reading list.</p>\n<p>And, for the days when this experiment was active, they actually seemed longer in a way. It's amazing how much time we actually spend on these little devices without us realizing.</p>\n<p>Sometimes, just looking at the Screen Time stats and seeing a bunch of numbers is not enough. Feeling the change makes a difference.</p>\n<p>In the end, I can say that we will try to turn this experiment into a habit.</p>\n<p>If you are reading this by any chance, and are curious about some things, write a comment.</p>\n",
      "date_published": "Mon, 21 Jul 2025 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/when-too-much-work-prevents-you-from-doing-other-things/",
      "url": "https://vladiiancu.com/post/when-too-much-work-prevents-you-from-doing-other-things/",
      "title": "When too much work prevents you from doing other things",
      "content_html": "<p>Hello dear reader. Long time it's been since something was published on this blog.\nIt is not for the lack of ideas.</p>\n<p>It's merely lack of focus on pointing my keyboard towards this blog. I was busy with... work. Changes, projects etc.</p>\n<p>Since last time, &quot;vibe-coding&quot; is a thing. For now. Just like script kiddies were back in the days I guess.</p>\n<p>What else changed? Oh, my adoption of AI tools has increased. I keep testing and using different tools and approaches. Some worked, some didn't.</p>\n<p>I found some particular case where these coding tools have helped me reduce time. But most of the time I still wonder if it would have been easier if I would have done it myself. Including something I haven't done before.</p>\n<p>This is an annoying hit-and-miss. Because it's something new, it's unclear to me how it works, what &quot;good&quot; looks like etc. So it's more a feeling. And when AI tools suggest various settings, variables, packages that don't exist, that makes it very frustrating.</p>\n<p>Anyway, so back to the updates: yes, work. New projects, new programming languages that I spend my time in. New challenges.</p>\n<p>All of this means no time for this blog, no time for LinkedIn (I barely write something there as well). But it's ok. It's just a phase.</p>\n<p>What I really miss are the podcast episodes. The ones with guests. And that is something I still have to postpone since it takes too much time and energy that I don't have available right now.</p>\n<p>Other than that I can't really complain. Life is good and, with the help of some mentoring, I was reminded that it matters more on what you focus on and that you have control over what you focus on. Otherwise, you will be mostly miserable. I still don't get it 100% right all the time, but it gets me unstuck.</p>\n<p>Even though the political climate is difficult locally and externally, even though there are talks of upcoming crisis, meltdowns etc, I am still happily working on what I love. And that makes an entire difference.</p>\n",
      "date_published": "Mon, 05 May 2025 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/will-ai-ruin-gaming-for-us/",
      "url": "https://vladiiancu.com/post/will-ai-ruin-gaming-for-us/",
      "title": "Will AI ruin gaming for us?",
      "content_html": "<p>If you work in the software development industry and stay updated with the latest trends, you have probably heard about AI by now. And not just chatbots.</p>\n<p>I am thinking of those systems which you install on your computer. And you interact with them via writing or voice and they perform some actions.</p>\n<p>While the current systems are at their initial iterations, it is quite easy to imagine advancements that come with time.</p>\n<p>So, I can imagine a future where an AI tool will &quot;watch&quot; you as you play a game. Then it will offer suggestions. It will start with basic things. Easy and innocent. Like suggesting which items to use for your Diablo 4 character from the ones you have in your inventory.</p>\n<p>Then, it will propose steps such as &quot;go to this locations&quot; and get this and that.</p>\n<p>Then, it will go one step further. Instead of recommending you an item to equip, there will be an &quot;auto-equip&quot; feature.</p>\n<p>And then things will get even more automated, and we will arrive in the realm of &quot;is this cheating or not?&quot;.</p>\n<p>Think about it for a second. Having an AI system that essentially plays the game for you.</p>\n<img eleventy:formats=\"svg\" src=\"./images/ai-ruins-gaming.svg\" alt=\"summary of the post on ai features that are borderline cheating\" />\n<p>But, where is the fun in that? You might ask. It's not. But what happens in a multiplayer game? What happens if there is something at stake?</p>\n<p>Diablo 4 was an easy example. Think about game tournaments. Think about online poker or similar games.</p>\n<p>Who knows what the future holds?</p>\n",
      "date_published": "Wed, 01 Jan 2025 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/words-that-stuck-with-me/",
      "url": "https://vladiiancu.com/post/words-that-stuck-with-me/",
      "title": "Words that stuck with me",
      "content_html": "<p>There are some words that stuck with me over the years. I've been thinking about them for a while now, and I thought it would be nice to write them down.</p>\n<p>During a conversation I had with Tom Cox, at that time, I was in the process of changing my job. But I was also in a sort of confused space. I listened to many different opinions and tried to look at the market from different angles. Yet, I wasn't sure about almost anything.</p>\n<p>Until, he said these words:</p>\n<blockquote>\n<p>I do not want my CTOs to code.</p>\n</blockquote>\n<p>And it's not just the actual words. It's the natural way those words came out. It was like saying the sky is blue.</p>\n<p>I don't remember exactly, but I think I was feeling a sense of relief. Having a CEO saying this (and not a CEO of a company of one), was a good sign. It was also a lesson for me that I need to spend more time with other CEOs from various industries.</p>\n<p>The second conversation that I had and stuck with me was with Valentin Radu. Actually, I was in a meeting listening to him. And he was referring to a book he recently read.</p>\n<p>In his summary, there was this company who had a faulty product. They needed to fix it. Their approach was: gather all the smart people, let them work on the problem, make calculation and a bunch of different simulations and such. After a lot of effort, they came up with a solution. Then they implemented that solution. And it failed.</p>\n<p>The second time around, they changed their approach. Instead of spending time on the theoretical part, they started real-world experiments. They created a prototype. Tested it out. Failed. Learned from the failure. And then tried again and again until... the issue was solved.</p>\n<p>In short, iterative.</p>\n<p>Why was this important to me? Because I was, intuitively, doing the same iterative approach for years. I was not aware of it. And I always thought that I was doing it wrong. That the other approach was better and by not doing it I am not really a pro.</p>\n",
      "date_published": "Fri, 13 Dec 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-complete-cycle-of-the-morning-wakeup-alarm/",
      "url": "https://vladiiancu.com/post/the-complete-cycle-of-the-morning-wakeup-alarm/",
      "title": "The complete cycle of the morning wakeup alarm",
      "content_html": "<p>Early on in life, like very young, there were less rules. And in the morning, you had no alarms designed to specifically wake you up at a certain time. You just woke up.</p>\n<p>Then, things happened. School started. And now I had an alarm. In the shape of a human. One of the parents. Usually my father.</p>\n<p>He rushed into my room, started singing a wake-up song and let me drag myself out of the bed to start my day.\nPleasant? Not really. Necessary? Probably.</p>\n<p>After some years, I upgraded from the &quot;human alarm&quot; to an electronic device.\nAt first it was my phone. Then it was a smart watch or a smart band of sorts.\nI even had a smart light bulb waking me up during one winter.</p>\n<p>And then... then my family grew. And with that change, I no longer needed any device to wake me up because I had a new human that did it. For a while, at least.</p>\n<p>I am pretty sure that after some, hopefully, many years will have passed, I will complete the cycle and get back to having no alarm whatsoever.</p>\n<img src=\"./images/evolution-wakeup-morning.png\" alt=\"summary of the post on complete cycle of my morning wakeup alarm\" />",
      "date_published": "Mon, 11 Nov 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/ipv6-still-not-ready/",
      "url": "https://vladiiancu.com/post/ipv6-still-not-ready/",
      "title": "IPv6 still not ready?",
      "content_html": "<p>TLDR: When using IPv6 exclusively, I wasn't able to connect to certain popular servers and services. For example, github.com\nAfter so many years.</p>\n<h2>Why we can't have nice and modern things</h2>\n<p>I was creating a new server. And this time I wanted to be modern and bleeding edge so I chose to not use an IPv4 address and have only an IPv6.</p>\n<p>And I also wanted to use Tailscale to access this resource only from the devices in the same network.</p>\n<p>So far so good. The setup was easy and smooth.</p>\n<p>Fired up docker, installed the services I needed etc. Great.</p>\n<p>Now, did I manage to connect the resources between them? Yes, I did.\nIn this particular case, I had to exchange larger files. For backup purposes.</p>\n<p>And that's when the problems started.</p>\n<p>The upload speed from one device to the server was... abismal... around 120kb/s.</p>\n<p>My initial isssue was that there were too many new variables introduced and had no idea who took the blame.</p>\n<p>The docker containers were new and there were some services I haven't used before.\nTransferring files through Tailscale was new.\nAnd a bunch of other small things.</p>\n<p>So here I was:</p>\n<p>=&gt; Slow upload speeds through Tailscale to the server.\nWhat do?</p>\n<p>Well, <code>tailscale status</code> to the rescue. It told me that the connection was not direct. It was relayed. I knew I had the firewalls setup correctly so that wasn't the issue. Why wasn't it direct?\nCan I force it?</p>\n<p>Again, too many unknowns. Luckily, a friend of mine said that IPv4 might be the culprit.\nSo I tested it out. Bought and attached the address to the server.\nRebooted.\nRetried.\nInstead of 120kb/s, I got 30 mb/s. Now that's more like it!</p>\n<p>And yes, <code>tailscale status</code> now showed a direct connection.</p>\n<p>ps. Oh and that GitHub issue? It was easily fixable through a proxy. But still...</p>\n",
      "date_published": "Sun, 10 Nov 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/configure-renovate-on-your-forgejo-or-gitea-self-hosted/",
      "url": "https://vladiiancu.com/post/configure-renovate-on-your-forgejo-or-gitea-self-hosted/",
      "title": "Configure Renovate on your Forgejo or Gitea self-hosted",
      "content_html": "<style>\n    /**\n * okaidia theme for JavaScript, CSS and HTML\n * Loosely based on Monokai textmate theme by http://www.monokai.nl/\n * @author ocodia\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: #f8f8f2;\n\tbackground: none;\n\ttext-shadow: 0 1px rgba(0, 0, 0, 0.3);\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n\tborder-radius: 0.3em;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground: #272822;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #f8f8f2;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #f92672;\n}\n\n.token.boolean,\n.token.number {\n\tcolor: #ae81ff;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #a6e22e;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable {\n\tcolor: #f8f8f2;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.function,\n.token.class-name {\n\tcolor: #e6db74;\n}\n\n.token.keyword {\n\tcolor: #66d9ef;\n}\n\n.token.regex,\n.token.important {\n\tcolor: #fd971f;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\ncode.filename {\n  font-size: 0.8em;\n  font-weight: bold;\n  color: #666;\n  margin-bottom: 0.5em;\n  display: block;\n}\n\ncode.filename::before {\n  content: \"File: \";\n}\n</style>\n<p>I was using Github at work and have really found Dependabot useful. Naturally, I wondered if I could have something similar on my own git instance powered by Forgejo.</p>\n<p>A quick search led me to find... <a href=\"https://github.com/renovatebot/renovate\">Renovate</a>.</p>\n<p>Here is what I did to have it up and running:</p>\n<p>Prerequisites:</p>\n<ul>\n<li>Gitea or Forgejo self-hosted instance with admin access</li>\n<li>Gitea or Forgejo Actions enabled and at least one runner active</li>\n</ul>\n<p>Let's get started:</p>\n<ol>\n<li>From my Forgejo account (or Gitea), logged in as the Admin, I went to Site Administration -&gt; Identity &amp; access -&gt; User accounts.</li>\n</ol>\n<p>There is a nice little button &quot;Create User Account&quot; which you can use. I made a new user called &quot;renovate-bot&quot;. Note down the email address as well.</p>\n<ol start=\"2\">\n<li>\n<p>Login into Forgejo instance with this new user created. Then go to Settings, Applications and generate a new Access Token. I called it &quot;renovate-bot-token&quot;. The name is relevant only for you. Note down the generated key.</p>\n</li>\n<li>\n<p>Logged back as my normal account. I created a new repository. Most common tutorials will tell you to name this repository &quot;renovate-config&quot;. Good enough for me.</p>\n</li>\n<li>\n<p>In this &quot;renovate-config&quot; repository I added 2 files:</p>\n</li>\n</ol>\n<ul>\n<li>config.js which is the centralised configuration file for Renovate</li>\n<li>.gitea/workflows/renovate.yml which is the workflow responsible for automation</li>\n</ul>\n<p>The config.js file I have contains something like this:</p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\">module<span class=\"token punctuation\">.</span>exports <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token string-property property\">\"endpoint\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"https://yourdomainnamehere/api/v1\"</span><span class=\"token punctuation\">,</span> #change <span class=\"token keyword\">this</span> <span class=\"token keyword\">with</span> your domain or subdomain\n    <span class=\"token string-property property\">\"gitAuthor\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Renovate Bot &lt;renovate@yourdomain.com>\"</span><span class=\"token punctuation\">,</span> #change based on the address used <span class=\"token keyword\">for</span> the account and name\n    <span class=\"token string-property property\">\"platform\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"gitea\"</span><span class=\"token punctuation\">,</span> #<span class=\"token keyword\">this</span> should be kept the same even <span class=\"token keyword\">for</span> Forgejo<span class=\"token punctuation\">.</span>\n    <span class=\"token string-property property\">\"autodiscover\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string-property property\">\"optimizeForDisabled\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre>\n<p>Since I enabled autodiscover, and have multiple repositories, I enabled optimizeForDisabled. You can read more about this <a href=\"https://docs.renovatebot.com/self-hosted-configuration/#optimizefordisabled\">option here</a>. And there you will also find many more options to adjust to your liking.</p>\n<p>Great. You now have a basic configuration. Just like Dependabot makes constant checks, we want Renovate to do the same, right? We will achieve this using the workflow.</p>\n<p>The workflow files looks like this:</p>\n<pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> renovate\n\n<span class=\"token key atrule\">on</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">schedule</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">cron</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"@daily\"</span>\n  <span class=\"token key atrule\">push</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">branches</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> main\n\n<span class=\"token key atrule\">jobs</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">renovate</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">runs-on</span><span class=\"token punctuation\">:</span> ubuntu<span class=\"token punctuation\">-</span>latest\n    <span class=\"token key atrule\">container</span><span class=\"token punctuation\">:</span> ghcr.io/renovatebot/renovate<span class=\"token punctuation\">:</span>38.116.0\n    <span class=\"token key atrule\">steps</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> actions/checkout@v4\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> renovate\n        <span class=\"token key atrule\">env</span><span class=\"token punctuation\">:</span>\n          <span class=\"token key atrule\">RENOVATE_CONFIG_FILE</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"/workspace/&lt;&lt;username>>/&lt;&lt;repo name>>/config.js\"</span>\n          <span class=\"token key atrule\">LOG_LEVEL</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"debug\"</span>\n          <span class=\"token key atrule\">RENOVATE_TOKEN</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span> <span class=\"token punctuation\">{</span> secrets.RENOVATE_TOKEN <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n          <span class=\"token key atrule\">GITHUB_COM_TOKEN</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span> <span class=\"token punctuation\">{</span> secrets.TOKEN_GITHUB <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n          </code></pre>\n<p>The schedule -&gt; cron -&gt; @daily is where the magic happens. It can be changed to more often or less if you would like. Here are more <a href=\"https://pkg.go.dev/github.com/gogs/cron@v0.0.0-20171120032916-9f6c956d3e14#hdr-Predefined_schedules\">options to consider</a>.</p>\n<p>You should update the RENOVATE_CONFIG_FILE env variable with your username and repository name.\nI would keep the debug log level for now. Until you get the hang and everything works to your liking.</p>\n<p>And finally, for your renovate-config repository, go to your repository Settings -&gt; Actions -&gt; Secrets.</p>\n<ul>\n<li>Add one called RENOVATE_TOKEN and paste in the code you saved at step 2.</li>\n<li>Add another one called TOKEN_GITHUB and paste in the Personal Access Token from your own GitHub account. It only needs standard read account to access the public API. This is useful to decorate the PR created with the Release Notes for each dependency that is updated.</li>\n</ul>\n<p>Also, please note there is an extra space here: ${ { }}. It is important to remove the first space between { and {.</p>\n<ol start=\"5\">\n<li>One more thing to do is enable Renovate for one of your repos. Create a renovate.json file in a repository of your choice.</li>\n</ol>\n<p>Here is what I have in mine:</p>\n<pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"extends\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token string\">\"config:best-practices\"</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"packageRules\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">\"matchUpdateTypes\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token string\">\"minor\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">\"patch\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">\"pin\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token string\">\"digest\"</span>\n      <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"automerge\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"osvVulnerabilityAlerts\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n<span class=\"token punctuation\">}</span></code></pre>\n<p>Be careful! These settings tell the Renovate bot to create PRs and for the minor, path etc versions to auto-merge them without human intervention. Your mileage might vary. Perhaps start by setting it to false in the beginning and then enable it in the future.</p>\n<p>And one more thing you need to do: In this repository Settings -&gt; Collaborators -&gt; Add the renovate-bot as a collaborator with write permissions.</p>\n<p>Other notes:</p>\n<ul>\n<li>The first time the renovate workflow runs, it will take longer since it needs to download the docker image and build it. Subsequent runs will be faster since it will use the cache.</li>\n<li>The first time Renovate runs in a repository, it will create a special PR that you need to merge to confirm settings and everything.</li>\n<li>An issue called Dependency Dashboard will be created automatically as well. This happens if the repository/local Renovate config file is read correctly.</li>\n</ul>\n",
      "date_published": "Fri, 11 Oct 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/client-side-and-server-side-a-b-testing/",
      "url": "https://vladiiancu.com/post/client-side-and-server-side-a-b-testing/",
      "title": "Client-side and server-side A/B testing",
      "content_html": "<p>I don't know why, but I get this feeling that most articles talking about A/B testing and the differences between client and server side are written by people who are either biased (they have a software solution focused on one type of testing so they promote that one) or by people who haven't <em>really</em> used such a tool.</p>\n<p>Why?</p>\n<p>Because the list of pros and cons touches only shallow things. Kinda like client-side testing.</p>\n<p>Even reading summaries generated by AI such as <a href=\"https://www.perplexity.ai/search/provide-a-summary-of-the-top-a-gwux7UNkSRy9nuDmTejc8A/\">this one by Perplexity</a> reveals the same thing.</p>\n<p>Let's get straight to the point. There are 2 main differences which are obvious if you spent more than 30 minutes doing some A/B tests.</p>\n<ol>\n<li>With Client-side testing, you have certain limitations in terms of what can be tested.</li>\n<li>With Client-side testing, you don't rely on the dev team — there are even visual tools that a person can use to make basic changes.</li>\n</ol>\n<p>One could argue about a third point. The accuracy of the data collected is better on the server-side. For example, there's little chances of counting a returning user as new just because they switched from browser to browser or their cookies expired or what have you.</p>\n<p>Let's get back to the main points.</p>\n<p>Do those limitations affect you? It depends on where you are in the journey. If you are just starting out, I'm confident there are loads of tests and assumptions that need to be confirmed. So those limitations certainly do not apply to you.</p>\n<p>If, however, you have been doing this for a while, then yes. You will feel the need for more advanced scenarios, where client-side testing will show its limitation.</p>\n<p>But before you reach those limitations, I would argue that even some changes you would like to make will still require some code written. So this is how the second advantage goes out the window.</p>\n<h3>Ok, Vladi, what is your actual point?</h3>\n<p>My point is the shallowness of the benefit of client-side testing: &quot;Allows marketers to easily create and launch experiments without involving developers&quot;.</p>\n<p>Let's go a bit deeper, shall we? First, yhea, let's assume you really are starting out, and you could really produce 10-20 meaningful tests that can be created only using a visual tool of sorts and no devs will be involved.</p>\n<p>Great. And you start working on them. And let's also assume that everything else is perfectly setup, data is being tracked correctly etc. Fantastic. You launch one test. You launch another one.</p>\n<p>Eventually, you will reach statistical significance and some of your tests will be declared winners or losers. Now what? For the loosing tests, that's an entire story. We won't go there.</p>\n<p>What about the winners?</p>\n<p>Let's say you ran 5 tests and 2 of them are winners. What do you do with them then?</p>\n<p>You have 2 options:</p>\n<ul>\n<li>\n<p>A. Leave the winning test and variation with 100% traffic allocation.</p>\n</li>\n<li>\n<p>B. Actually implement the changes.</p>\n</li>\n</ul>\n<p>Now, if we actually choose Option A, than all the downsides of client-side testing start showing up.</p>\n<ul>\n<li>Foremost, you will the flicker or flash of original content. Not that big of a deal when you have 1 test, but becomes horrible when you might have 2-3-4 tests running with 100% traffic allocation and another 2-3-4 running tests that perform changes on the page.</li>\n<li>Then you have more and more and more JavaScript on the page. And growing. The user experience gets degraded little by little with each change. Your e-commerce shop will perform worse over time and thus your tests will also be affected. It sucks.</li>\n</ul>\n<p>And if you pick Option B, you will effectively drop the main benefit of client-side testing. You will now have to rely on the dev team to implement those changes.</p>\n<p>But guess what, now you did the same thing twice! Think about it!. You thought of the changes that will test your hypothesis. You implemented them using the A/B testing tool. They've won and now you go to the dev team to implement the same things again. And usually it's not something really basic like change this text here and change this color here. So it's not a simple matter of copy-paste-done. Ergo, you go all over again with what has changed, and they will implement and push the changes live.</p>\n<p>That's a lot of work! And redundant.</p>\n<h3>All right, what do you propose?</h3>\n<p>Firstly, talk with people who know their stuff. Don't rely on marketing content when making decisions.</p>\n<p>Then, I would actually choose a tool that does both! Some experiments are better suited for client-side and others for server-side. Obviously it depends on the company and the way the teams are structured, but most would be fine this way.</p>\n<p>Then I would pay attention to the impact of the tool. How does it affect the loading speed. How much JS will it polute your pages with? What about cookies and getting consent etc. And then on the transparency of the data provided by the tool.</p>\n<p>For example, when they say that this goal has a 95% change of improvement... all right... how? based on what data? How is it tracked and calculated? Don't just blindly trust a tool saying you had 100000 views and 400 signups.</p>\n<p>And lastly, don't dismiss the dev team. They need to understand what your objectives are, and figure out the best way to help you. That's their role. Or it should be! Therefore, they might even help you out in picking the right tool for the job.</p>\n<p>So is a pure client-side A/B testing tool ever useful?</p>\n<p>I can think of only one scenario. When you completely outsource your conversion rate optimization process. It makes no sense to introduce an outside team to your systems and codebase.</p>\n<p>But don't forget that, eventually, the dev team will still need to be involved to implement the winning changes. And, also, if your dev-team is truly agile, then the outsourced team will have issues (because the shop will keep changing and the client-side code will keep failing).</p>\n<p>So if you are not agile + outsourced CRO services, then a client-side A/B testing tool works best.\nFor everything else, either both or server-side will suit your business goals better.</p>\n",
      "date_published": "Sun, 04 Aug 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/be-careful-what-you-wish-for/",
      "url": "https://vladiiancu.com/post/be-careful-what-you-wish-for/",
      "title": "Be careful what you wish for",
      "content_html": "<p>This is exactly one of those advices that you get, and you don't really take it in consideration, right?</p>\n<p>Well, hear me out because this happened to me, and it's wild, I'll tell you.</p>\n<p>And here's the background.\nAbout a month ago, I was complaining to almost everybody in my inner circle that I wished that I could spend more time with my son. That I don't like the fact that I work so much and that I can't spend some quality time together. By the time I finish up work, he is sound asleep.</p>\n<p>On the other side, there's the wife who was complaining (mostly to me but still) a lot that she's tired, that the child is heavy, and she can't really keep holding him so much time. And she kind of wishes that she didn't have to do it, it's awful.</p>\n<p>And then what happened? “Somebody” thought to grant our wishes!\nBecause in a way, they kind of fit, they were kind of similar and lo and behold… what happened?</p>\n<p>An accident where the wife fell, broke her arm and now for six weeks, she has to keep it in a cast.\nWhat does this mean?</p>\n<p>Well, she can't hold the baby so, hey, your wish was granted. And also, I have to take more care of the baby and therefore, I get to spend more time with the baby.</p>\n<p>So again, our wishes were granted - in a way</p>\n<p>Therefore, ladies and gentlemen, be very, very careful what you wish for.</p>\n<p>Thank you.</p>\n",
      "date_published": "Thu, 13 Jun 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/done-is-better-than-perfect/",
      "url": "https://vladiiancu.com/post/done-is-better-than-perfect/",
      "title": "Done is better than perfect",
      "content_html": "<p>When it comes to software development, there is a phrase from business which says “Done is better than perfect”.</p>\n<p>I think it takes a while to really understand what this means and how to really apply it in your company. And I'm certain this applies in other industries or departments as well.</p>\n<p>Therefore, while it is something that I agree with, for software development and productm I would probably adjust it a little:</p>\n<blockquote>\n<p>Deployed is better than perfect</p>\n</blockquote>\n<p>This aligns much better with the way a team works together to create a good product.</p>\n<p>There are some other prerequisites. For instance, deploying also means that what you created also needs to go through an automated pipeline of checks.</p>\n<p>If you don't have that pipeline well… you might end up deploying something broken many times.</p>\n<p>All right, so back to… how can applying this idea make things worse? There are 2 main ways that I can think of right now.</p>\n<p>First, many people interpret this as a permission to do a sloppy job. This is not the case. <em>It should not affect the quality of what you deliver to your customer</em>. (A)</p>\n<p>Then, the business might think that OK, we released this, it is “done”, now we can move on to the next thing immediately. Again, not the case. <em>It shouldn't mean creating a feature factory</em>. (B)</p>\n<p>OK Vladi, but I don't get, you say. If it should not impact the quality, if I don't create more of these “things” then what is the point? Isn't it the same?</p>\n<p>Glad you asked. Now picture a cake. An entire cake for your 50th birthday, let's say.\nThe cake is the idea you have. The feature you are thinking of creating for your customers.</p>\n<p>Done is better than perfect means that you won't work on the cake for 6 months or 2 years and then deliver the cake and let people taste it.</p>\n<p>It means that you will take a slice of the cake and deliver that slice!</p>\n<p>And another thing: By slice, this means a <em>vertical slice</em>. Not a horizontal one. You don't want to deliver the sponge, empty, with no cream from the top or from the bottom.</p>\n<p>And that slice is done with good quality in mind. Making a slice takes way less time than an entire cake in software. (A)</p>\n<p>Now, the business has even more power. It can decide how big of a slice to invest in. The bigger the slice, the larger the investment (time and money at least). So if you are not confident enough of the feature, you can reduce the investment.</p>\n<p>The trick, the part where it sometimes feels more like an art than science, is knowing what slice to make.</p>\n<p>Let's take this further. You created a slice. Now what? (B)\nNow it's time to listen and get feedback. Usually you end up in one of these situations:</p>\n<ul>\n<li>\n<p>the slice is bad. Everything about it doesn't work for the customer. So you throw away the slice and think about another cake (aka you pivot);</p>\n</li>\n<li>\n<p>The slice is OK but could be improved and customers are looking forward to your cake. You adjust and server another slice. Continue until the feedback is good enough, and you learned enough and have the confidence that you can deliver an entire cake, the right one, and it will be well received.</p>\n</li>\n<li>\n<p>The slice is OK, but customers don't really need an entire cake. That slice and maybe another one is enough. You don't spend any more resource on this, so then you can focus on other things.</p>\n</li>\n</ul>\n<p>Phew, that's a bit long, isn't it? Well, here's another shorter version: Making the slice and serving it doesn't end there. You require maintenance for that. And it all adds up pretty quickly for each slice you served.</p>\n<p>I could continue ranting about those 3 situations I mentioned earlier. A lot. And continue with this analogy for a long time. But it makes me hungry for a cake, and I would probably lose you along the way.</p>\n<p>It's not easy. But that's why you can hire people like me. To help with this kind of stuff.</p>\n",
      "date_published": "Wed, 22 May 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/dreaming-about-the-future-of-hiring-and-cvs/",
      "url": "https://vladiiancu.com/post/dreaming-about-the-future-of-hiring-and-cvs/",
      "title": "Dreaming about the future of hiring and CVs",
      "content_html": "<p>I like dreaming sometimes and this is one of my latest ones.\nIt involves the blockchain technology and your resume or CV.</p>\n<p>From my perspective, we should reach a point in time where each person's CV or resume is automatically filled in with data based on your activity and collaborations with various entities, companies and so on through the use of smart contracts.</p>\n<p>You would probably have a wallet… I don't know, the actual implementation details are not that important at this point.</p>\n<p>So you would choose your template, choose the way you want to look, sure, fine, that's not an issue, but the actual data is generated automatically from the public information available on the blockchain. Select some bits of pieces, what you want to show, what you don't want to show, maybe there are some private stuff there and that's it.</p>\n<p>Each resume is or can be verified independently. Actually, I don't even have to request a resume from you as a recruiter. I can just generate it (with your approval, I mean). Something like “hey I would like to view your experience can I?” and you would confirm, and they would just get the data in whatever format they want and filter things out easily and do their own things etc.</p>\n<p>I think it's nice for most people -- not for all because I'm sure that some activities, some areas require much more privacy, and you wouldn't want to display that, but that can be handled: let's say don't include sensitive names, company names or even industries, but include the general domain, the time period so that you can extrapolate from the information how many years of experience that person has; how much time he spent working with X technology and so on.</p>\n<p>This is tied a lot with another dream/idea of mine of using Web3 and NFTs for certifications!</p>\n<p>I sign up for a course and I take it, I do the homework, I answer the questions from the surveys and at the end of it I get officially certified by that entity. Then I can make this public in a blockchain and everybody can verify that.</p>\n<p>I do have that cloud certification, or I have been following up on my latest Google Analytics whatever training. That's also powerful to have because it's beneficial for you who has those certifications: they can be checked easily, you don't have to jump through hoops on various different platforms.</p>\n<p>It's a good thing for the issuer, the entity that provides training/courses. They could easily have data available such as:</p>\n<ul>\n<li>how many people signed up</li>\n<li>look how many people have taken our course and that's verifiable information, not just a number added on a website</li>\n<li>and maybe even go further: the people who got these certifications, where are they now? 90% are working in the industry. 5% are working at whatever companies; I don't know, stuff like that, which is kind of cool for them, I believe.</li>\n</ul>\n<p>Will this fix everything that is currently wrong with the hiring process? Certainly not!</p>\n<p>But at least it will streamline a lot of the operational aspects that don't really provide much value to anybody.</p>\n",
      "date_published": "Sat, 18 May 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-customers-journey-and-feedback/",
      "url": "https://vladiiancu.com/post/the-customers-journey-and-feedback/",
      "title": "The customer&#39;s journey and feedback",
      "content_html": "<p>A standard business these days will have:</p>\n<ul>\n<li>a website</li>\n<li>at least one physical store</li>\n<li>at least one customer support representative</li>\n<li>accounts on most social media networks</li>\n<li>newsletters</li>\n<li>etc.</li>\n</ul>\n<p>The number of touchpoints a customer has with the business is increasingly higher. And I'm only referring here to the ones the business has <em>complete</em> control over them!</p>\n<p>Think of many other aspects where there's little the business can do about: The neighbors of my physical store might not care so much about cleaning. The streets might be filthy. Or outsources services such as delivery where the delivery guy throws your package and grunts because…  reasons.</p>\n<blockquote>\n<p>The customer journey is never a straight line</p>\n</blockquote>\n<p>To add fuel to this fire, the customer journey is never a straight line.\nThink about it. If you were to map things out right now, will you make some circles for each touchpoint and a straight line from left to right from circle 1 to circle 2 until the final circle is ticked (as in the customer made a purchase?)</p>\n<p>Can't imagine it will be: user performs a Google search → lands on product page → buys product.\nNope.</p>\n<p>But wait! Who said that the customer journey ends with the purchase? Oh no, other mistake.\nRemember I mentioned the delivery guy? That's part of the journey as well. Opening up the package as well. And then any sort of issues and questions, good or bad experience is, still, part of the same journey.</p>\n<blockquote>\n<p>The actual pre-purchase customer journey is an entangled mess</p>\n</blockquote>\n<p>So here's how the pre-purchase journey could look like:</p>\n<ul>\n<li>The customer might search for a solution</li>\n<li>maybe find your product somehow</li>\n<li>then he will search for your particular product</li>\n<li>then the customer will check out your socials,</li>\n<li>then maybe visit your store,</li>\n<li>then back to your site with another device,</li>\n<li>then contact you for questions, check reviews in 3rd party areas,</li>\n<li>maybe get a newsletter from you</li>\n<li>and finally when the decision is made... Who knows?</li>\n<li>possibly go straight in store and buy it.</li>\n<li>Or order it online.</li>\n</ul>\n<p>Doesn't really matter at this point.</p>\n<p>Considering there are so many variables, I am actually confused as to what can a business do.</p>\n<p>Because while you do have control over what content you post on your social media accounts, on your website, in your newsletters, in your ads etc., you have little control over how and when that content is consumed.</p>\n<p>I remember the debate from years ago regarding Google Analytics and the decision to choose between a first-click or last-click attribution.\nIn this sea of possible points of contacts, I find the debate pointless.</p>\n<p>So my question is… when everything is so fuzzy, does it even make sense to try to track everything and connects the dots? Knowing that you can't actually rely on that data?</p>\n<p>Wouldn't it be better to just map your entire customer journey's possible interaction points and make sure that each one is in tip-top-shape? It will vary what this means for each point in particular.</p>\n<p>And then, of course, listen to your customer and ask for feedback. I think that's the best that you can do now.</p>\n",
      "date_published": "Sat, 13 Apr 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/on-technical-debt/",
      "url": "https://vladiiancu.com/post/on-technical-debt/",
      "title": "On Technical Debt",
      "content_html": "<p>So here's what's usually happening in a startup.\nThe premise is that the founder or the product manager or &quot;somebody&quot; or a group of somebodies has a list of ideas for <em>the product</em>.</p>\n<p>Those ideas are somewhat different from all the others that were initially -- when the product started. No, it is not a product pivot.</p>\n<p>Maybe some potential customers asked about something that wasn't there so it was added to the list. Or some research showed that some competitors have something that the product doesn't. Another one to the list!</p>\n<p>Anyway, the point is the list is big and they are different. How different? It's like watching the movie Dune or watching... Samurai Cop.</p>\n<p>Technically, they are both movies. They both have actors and directors and screenplay etc but, you know...</p>\n<p>Many of those different ideas also have different requirements. Technical ones. Sometimes, ideally, a different software architecture is required. Most of the time different database schemas would be best.</p>\n<p>Unfortunately, nobody has the time or money for all of this. And it makes sense. At the end of the day, we are only talking about some ideas. Nothing is certain.</p>\n<p>What happens is that instead of treating each idea as a separate experiment, many startups choose the hard way. Willingly or not. They patch things up. They get creative. And it's all fun and games until it isn't.</p>\n<p>Do you know when it stops being fun? When that patch becomes permanent. Anytime something that was designed to be temporarily becomes deeply integrated in the product is bad. Hence, technical debt.</p>\n<p>Mind you, this has nothing to do with the quality of the people involved in the development of the product.</p>\n<p>There are plenty of situations where the poor quality of the engineering team creates more technical debt.</p>\n<p>At this point, I should probably insert a GIF with: You get a debt, and you get some debt. But I like to keep my page mean and lean, so that's a no.</p>\n<p>Now where does a baby and pacifier fit into this? Well, from what we know and see, nobody (young or adult) walks around with a pacifier in their mouth, right?</p>\n<p>So from the very beginning we know that it's something temporarily (clue number one).\nSecondly, various kinds of doctors are not recommending it: some say that it affects the breastfeeding of the baby. Others say that it damages the shape of the mouth or their teeth.</p>\n<p>If the baby is crying or is bored or whatever, and you have no idea what to do, giving the baby a pacifier seems very easy and convenient. Similar to slapping on a quick fix. Patching things up (clue number two).</p>\n<p>Unlike my analogy with things becoming permanent, we as humans are forced to give up on the pacifier for our own sake.</p>\n<p>But guess what? Convincing a baby to stop doing something they have been doing for months, maybe years, representing 80-90% of their entire life? Not that easy. Who would have known?</p>\n<p>So what feels like a win, turns out to be a pain later on. That's the DEFINITION of technical debt!</p>\n<p>What is there to be done?</p>\n<ol>\n<li>From a product perspective: Treat your ideas as experiments.</li>\n<li>From a technical perspective: Stop lying to yourselves that it's just temporarily. It never is. So stop over-engineering things and make your code easy to change. This provides enough flexibility so that changing your mind is not expensive.</li>\n</ol>\n<p>And this becomes really important for a startup.</p>\n<p>As you see, I'm wearing two different hats here. A product hat and a technical hat. Weird, huh? Not really. It turns out there's even a role for that: CPTO. Which stands for Chief Product and Technology Officer.</p>\n<p>TL;DR: Read this short post <a href=\"https://www.linkedin.com/posts/vladiiancu_using-a-pacifier-leads-to-technical-debt-activity-7172848554275815424-kThw\">https://www.linkedin.com/posts/vladiiancu_using-a-pacifier-leads-to-technical-debt-activity-7172848554275815424-kThw</a>\nIt even has a picture!</p>\n",
      "date_published": "Wed, 20 Mar 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/kpis-are-tricky/",
      "url": "https://vladiiancu.com/post/kpis-are-tricky/",
      "title": "KPIs are tricky",
      "content_html": "<p>A website, a company's website should be for the entire company, right? However, who is really responsible for it? Some companies have a &quot;digital arm&quot; that is in charge of the website. Sometimes that group is called &quot;e-commerce division&quot; or sometimes it's just &quot;marketing department&quot;.\nDoesn't matter so much.</p>\n<p>Sooner or later they call for backup. For outside help. And they might hire an agency to do some of the work.</p>\n<p>After a while anybody with an objective view can spot some things that don't feel right.\nLet me explain:</p>\n<p>The purpose of a company, any company is or should be to create good products and sell them to as many people as possible, right?\nSo it shouldn't matter so much if the sale happens online or offline.\nOr if the product is sold in their own store or at a partner's store? Right? A sale is a sale.</p>\n<p>However, <em>it does matter</em>. The e-commerce department has KPIs. The retail store has KPIs. The sales people have targets etc.</p>\n<p>Even if the intentions were good, at the end of the day, each 'division' wants to see their number grow. And they care more about that (their own number that could be at an individual level or a department level) rather than the 'whole'.</p>\n<p>Since it does matter to somebody, it means that those differences outlined earlier matter as well. And this could lead to bad decisions and/or lost opportunities.</p>\n<p>There are real-world cases where a decision maker didn't push forward with an objectively good idea because, at the end, the sales could not have been attributed to their efforts or to their department efforts.</p>\n<p>A solid example would be making a cool change on the website that will lead to more in-store visitors ready to make a purchase. The person who has the website in their responsibility will not be encourage to make this change.</p>\n<p>Why? First of all it's probably a bit of a headache since that person might need to coordinate with store managers and other people from other departments.\nAnd secondly, because his KPIs might actually not be influenced in a positive matter.</p>\n<p>So the logical conclusion is: Why put in such an effort and get so little value.</p>\n<p>The thing is that &quot;little value&quot; is relative to that role or department. Or that KPI.</p>\n<p>In fact, if you look at it as a whole, what seems to be &quot;little value&quot; might actually be &quot;of great value&quot;. More visitors in-store, better online and offline experience, more purchases, more chances to up-sell or cross-sell etc.</p>\n<p>It's not unheard of a customer journey such as: online -&gt; offline -&gt; purchase -&gt; subscribe to newsletter -&gt; valued subscriber -&gt; eventual online purchases.</p>\n<p>But if your chain breaks at the first link, online -&gt; offline, then all other opportunities are wasted. Even if they might end up beneficial to the online department as well, eventually.</p>\n<p>To conclude, what can be done? Is this a &quot;tracking&quot; problem? A &quot;data&quot; problem? I don't think so. Not really.</p>\n<p>I think it's a KPI issue. That's where the main negative influence comes from.</p>\n<p>Even if all the employees are well intended and capable human beings, having the wrong KPIs will certainly not help you achieve the best results possible.</p>\n<p>And if you are an agency? I encourage you to not be let down by this and keep pushing for such great ideas or experiments.</p>\n",
      "date_published": "Thu, 14 Mar 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/facebook-and-instagram-pause/",
      "url": "https://vladiiancu.com/post/facebook-and-instagram-pause/",
      "title": "Facebook and Instagram Pause",
      "content_html": "<p>Yesterday, Meta's product were down. A lot of people were unable to login into their accounts.</p>\n<p>Most complaints were related to Facebook and Instagram but some mentioned WhatsApp as well.</p>\n<p>Regardless, I would like to thank Meta for giving many people a one-hour break from everything.</p>\n<p>You should do this more often, as more people will benefit from this.</p>\n",
      "date_published": "Wed, 06 Mar 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-does-it-really-mean-to-be-focused/",
      "url": "https://vladiiancu.com/post/what-does-it-really-mean-to-be-focused/",
      "title": "What does it really mean to be focused?",
      "content_html": "<p>Many successful individual have stated that an important factor in achieving success is having a clear and unwavering focus on one's goals; to be concentrated on one thing at a time.\nAs time has gone by, this advice to “be focused” has been complemented with another piece of guidance: “learn to say no”.</p>\n<p>I think that learning to say no is a bit more practical. Thus, it becomes more useful. And, as such, it has a higher chance of being more popular over time.</p>\n<p>I've known for years that I need to be focused. And I also knew and learned that I have to say “no” more often.</p>\n<p>But it wasn't enough. However, an old video I watched of John Ive made things perfectly clear for me.</p>\n<blockquote>\n<p>It matters to what you say &quot;no&quot; to</p>\n</blockquote>\n<p>The main point of that video was that if you are asked to do something that you are not interested in, and you say no -- that doesn't count!</p>\n<p>What counts is saying no to things that excite you! Things that you wake up in the morning thinking about them. Yet, you will say no because you are focused on something else.</p>\n<p>This realization changed everything for me. I hope it can help you out as well.</p>\n",
      "date_published": "Sun, 11 Feb 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/and-continues-with-the-eyes/",
      "url": "https://vladiiancu.com/post/and-continues-with-the-eyes/",
      "title": "And continues with the eyes",
      "content_html": "<p>The first part of the story is about <a href=\"/post/it-all-starts-with-a-smile/\">the smile</a>.</p>\n<p>Now I am here to tell you the next great thing: the eyes.</p>\n<blockquote>\n<p>The eyes chico, they never lie</p>\n</blockquote>\n<p>(I hope this Scarface reference is not the first time you are hearing this)</p>\n<p>Ok, so back to the kid. If you somehow manage to pull yourself back to reality after observing their smiles, then you have a really good chance to spend some time getting lost into their eyes.</p>\n<p>It's pure. It's innocence. It's an entire universe. It's one of the most beautiful things ever.</p>\n",
      "date_published": "Sat, 10 Feb 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/it-all-starts-with-a-smile/",
      "url": "https://vladiiancu.com/post/it-all-starts-with-a-smile/",
      "title": "It all starts with a smile",
      "content_html": "<p>Having a kid is... hard.</p>\n<p>Yhea, I'm not going to say it's all rainbows and sunshine.</p>\n<p>First of all, your life changes a lot. Your schedule, your sleep, your day to day, your priorities in life. Everything is different now.</p>\n<p>Depending on your situation, and assuming there are no complications with the pregnancy, birth, and the child, your mileage might vary a bit. But not by a lot.</p>\n<p>However, with all the sleepless nights, with all the screaming, the unknown, the stress etc. everything is cleared when he or she smiles at you.</p>\n<p>At that moment, everything else is just a blur. There is no pain, no fear, no tiredness, nothing. You look at that smile, and you can't help yourself but to smile back. It fills your heart with <em>pure joy</em>. Your entire world is reduced to those seconds.</p>\n<p>And it is probably one of the most beautiful things on earth.</p>\n<p>Update: This story now continues with <a href=\"/post/and-continues-with-the-eyes\">part 2</a>.</p>\n",
      "date_published": "Sat, 27 Jan 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/doing-ci-cd-with-gitea/",
      "url": "https://vladiiancu.com/post/doing-ci-cd-with-gitea/",
      "title": "Doing CI/CD with Gitea",
      "content_html": "<p>Feeling bad that I neglected one of my servers for some time, I put aside a couple of hours to make some updates.</p>\n<p>One of them was for my own private git. For that I am using Gitea. I liked the experience and the features provided.</p>\n<p>Back then, when I configured it, I was missing something: The CI/CD part. On all my projects, I would like to have at least a minimum CI pipeline with some basic checks. Even if it's a solo-project.</p>\n<p>At that point in time, the options considered were <a href=\"https://woodpecker-ci.org/\">Woodpecker</a> and <a href=\"https://www.drone.io/\">Drone</a>. I did my fair share of research but didn't pull the trigger on any option.</p>\n<p>I have to mention that I don't consider either one of them to be a bad tool. Not at all.\nHaving no practical experience with them, I can't fully form an opinion on them.</p>\n<p>Because my life is a bit chaotic right now, I needed to double-check that I had the latest version of Gitea up and running. I did.</p>\n<p>This version check, however, led me to learn about <a href=\"https://about.gitea.com/products/runner\">Gitea Actions</a>. Which is a pretty new addition to the product, so it was a lucky find.</p>\n<p>Basically it offers a Runner which can be deployed either directly on a VM or through Docker or Kubernetes. This enables you to create your own pipelines and run them.</p>\n<p>It's quite a flexible tool as well. For example, you can deploy the runner in a docker container and then have the jobs run inside this container. But you can also have other containers be dynamically created specifically for the jobs, providing even more isolation.</p>\n<p>It works well, you can add it to your existing Gitea docker if you self-host, and it is open-sourced.</p>\n<p>Bonus: Gitea Actions support GitHub Actions syntax and mirrors many of the packages. So most if not all the experience you get by testing this, you will also benefit on GitHub or vice versa. It's a nice little win for those looking to continuously expand their knowledge and understanding of how things work.</p>\n",
      "date_published": "Mon, 22 Jan 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/being-an-on-call-engineer/",
      "url": "https://vladiiancu.com/post/being-an-on-call-engineer/",
      "title": "Being an on-call engineer",
      "content_html": "<p>Probably one of the most stressful aspects in the life of an engineer is being on-call.</p>\n<p>Not all engineers go through this. It's true. But the ones that do, know what I'm talking about.</p>\n<p>Up until recently, at Omniconvert, we had a home-brewed system which was sending alerts via text and voice calls to a specific phone number. The phone number was hardcoded. It was always the same.</p>\n<p>Therefore it was always the same person.</p>\n<p>Now, things are changing. As the CTO, I implemented a more robust on-call support duty with a rotational schedule.</p>\n<p>We are still in the early stages so what we are doing initially is:</p>\n<ul>\n<li>Have a one week rotation period</li>\n<li>Each team member goes through this period equally regardless of age in company or seniority or such</li>\n<li>Implement an escalation policy</li>\n<li>Setup alerts (call, sms, push notification, email)</li>\n<li>Sync with Slack</li>\n</ul>\n<p>We have rolled this out on the 24th of November and we plan to provide adjustment throughout the next weeks, based on feedback from engineers.</p>\n<p>What are our plans for the near-future? [Later edit: We did it!]</p>\n<ul>\n<li>Have a beautiful <a href=\"https://status.web.omniconvert.com/\">Status Page</a> that can be shared internally but also with our customers so that they are aware of the situation.</li>\n<li>Extend the current heartbeat systems that we have to monitor some of our CRON jobs as well.</li>\n</ul>\n<p>And then the hard part begins.</p>\n<p>We want to make this experience as smooth as possible. It is stressful enough by it's nature, no reason to add more to it.</p>\n<p>So we will be looking to upgrade our internal tooling in order to:</p>\n<ul>\n<li>go through relevant logs easier and faster</li>\n<li>provide relevant contextual information</li>\n<li>create or update procedures</li>\n<li>share knowledge inside the team</li>\n</ul>\n<p>The purpose is for any team-member to solve any incident faster and safer. It will be an on-going process, we are aware, but these are the standards that we set for ourselves.</p>\n",
      "date_published": "Mon, 22 Jan 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/front-end-tech-experiments-at-omniconvert/",
      "url": "https://vladiiancu.com/post/front-end-tech-experiments-at-omniconvert/",
      "title": "Front-end Tech Experiments at Omniconvert",
      "content_html": "<p>Friday, 6th of October 2023, the Explore + Reveal development team spent half a day to experiment with new front-end technologies.</p>\n<p>We discussed the need to use a front-end framework. This happened after we had to make some UI changes in the old areas in Explore and it was extremely painful to do so. You change one thing, fix an issue, but cause another one in a different area.</p>\n<p>We talked about the available choices in the market. The obvious ones: <a href=\"https://react.dev/\">React</a>, Vue and Angular. But also the not so obvious ones: Svelte and <a href=\"https://www.webcomponents.org/\">Web Components</a>.</p>\n<p>The decision is hard. As a CTO, you need to balance out the current knowledge in the team, the available pool of talent and the maintainability and &quot;futureness&quot; of the tech chosen.</p>\n<p>In a way, the most talked about were Vue, Svelte and Web Components.</p>\n<p>Personally, Svelte is really nice and fun. But it's a bit too lightweight and too frontendy. So it comes down to <a href=\"https://vuejs.org/\">Vue</a> and Web Components.</p>\n<p>What did we try? We experimented to see how difficult it would be to integrate Web Components in a project. I picked lit.dev framework for this. And we played around with it. We added the dependencies, we created a component and we displayed it on an existing page.</p>\n<p>We like the fact that the components that we make can be integrated in the new project without the need to have everything created in that framework. So it can co-exist with something else easily.</p>\n<p>Then we tried to move some data around from the backend to the controller. And we had a nice surprise, and we did it quite easily. So it works! The experiment was a success.</p>\n<p>Next we wanted to go deeper. So we played around with <a href=\"https://storybook.js.org/\">Storybook</a>. This was even more challenging for us, but eventually we managed to create some stories and to have our previously created component render in the story as well in different states. Wonderful.</p>\n<p>In conclusion, adding a front-end framework in the new Explore app is achievable. But we still lack some knowledge and some good practices.</p>\n<p>What we understood so far:</p>\n<ul>\n<li>we need to use Storybook to keep a lid on every component that we will create and make sure things are always aligned properly</li>\n<li>we can use Lit (web components) or Vue most likely</li>\n</ul>\n",
      "date_published": "Sun, 21 Jan 2024 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/translation-from-business-needs-to-engineering-effort/",
      "url": "https://vladiiancu.com/post/translation-from-business-needs-to-engineering-effort/",
      "title": "Translation from Business Needs to Engineering Effort",
      "content_html": "<h1>SCRUM?</h1>\n<p>If anybody from outside the Engineering Team wants to &quot;do SCRUM&quot;, then you have a problem. You should first ask yourself, where is this coming from? What do they think that SCRUM will solve? And then try to fix <em>that</em>. You will be much better off.</p>\n<h1>Documentation?</h1>\n<p>If somebody else outside the teams wants to have &quot;documentation&quot;, then you might have another problem.\nThis could mean a lot of things, depending on context, but most of the time, somebody is asking for what I call a &quot;static documentation&quot; for internal use. Again, the team needs to figure out what is the actual problem we would like to solve.</p>\n<ul>\n<li>Maybe there's a team of Customer Support/Success that needs to learn the product better and demands documentation.</li>\n</ul>\n<p>If that's the case, why not make the actual product easier to understand? If a member from the CS team has problems understanding how something works, there's a high probability that the users feel the same way. So instead of writing some documents that are useful for a period of time and then get outdated, the team should consider making changes right in the product so that there is no need for this document to begin with.</p>\n<ul>\n<li>\n<p>Maybe somebody feels that onboarding any new person to the team takes a long time</p>\n</li>\n<li>\n<p>Perhaps somebody feels that a new engineering team member takes too long until they understand how to provide value to the product</p>\n</li>\n</ul>\n<h1>Product Options</h1>\n<p>A lot of times, there is a new feature put up on the &quot;wanted&quot; list. And when you look at it, or you ask questions about it, the conversation usually ends up with small decisions such as:</p>\n<ul>\n<li>let's include a toggle for that so that users can change something related to something else</li>\n<li>let's make that &quot;configurable&quot;</li>\n<li>let's do both options</li>\n</ul>\n<p>If that's the case, it's a strong signal that the product is being built based on assumptions.</p>\n<p>You know what's better? User-feedback. Proper ones. And then a product manager capable of asking the right questions, filtering through the noise and so on.</p>\n",
      "date_published": "Mon, 20 Nov 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/are-all-ctos-the-same/",
      "url": "https://vladiiancu.com/post/are-all-ctos-the-same/",
      "title": "Are all CTOs the same?",
      "content_html": "<p>Short answer: hell no.</p>\n<p>I'm confident that the image you have in your head when hearing &quot;CTO&quot; is quite different from mine. Or anybody else for that matter.</p>\n<p>From my experience, so far, I have identified 3 major roles:</p>\n<ol>\n<li>The sole technical person in a brand-new company. The technical cofounder.</li>\n<li>The startup CTO.</li>\n<li>The classical CTO.</li>\n</ol>\n<p>If you look closely, you might think that, in fact, I am talking about the size of the company, right? It might be the case with #1, but not so much with the next ones.</p>\n<p>The best way I see fit to differentiate them is through the lens of &quot;<strong>operational involvement</strong>&quot;. This refers to how much time and energy does this person invest in day-to-day activities - the operational side of a business.</p>\n<p><strong>The classical CTO has 0%</strong>. None. He doesn't code. He doesn't push to production etc. Yes he could create a proof of concept to showcase or explain something. And he could code it. But it's not production code. It's for teaching, demonstration and other various purposes.</p>\n<p><strong>The startup CTO has anywhere between 50-80%</strong>. He makes the occasional commit. He does code reviews from time to time. There might be days when he sits in the same (virtual) room with the team and figures out a way to move forward together. But he also needs to step back and look at things from different perspectives.</p>\n<p><strong>The technical cofounder has &gt; 85%</strong> operational involvement. He knows the product inside-out. He created it from scratch. Furthermore, he knows where the skeletons are hidden.</p>\n<hr>\n<p>There is something I would like to add though: I don't think that the person from #1 is actually a CTO. In that particular case it is just a nice, self-proclaimed title.</p>\n<p>I am fairly confident that a person can transition from one to another. But it's quite a journey that many can't handle.</p>\n<p>Why? Simply because the skill set is very different.\nHow much business acumen does #1 need? Close to 0. That's why he has a business-like cofounder.\nWhat about #3? A ton.</p>\n<p>And yet, all 3 of them do share something strongly: a bad decision with devastating consequence -- could make or break the fresh company or could push the breaks really hard on the growth of a startup or become very liable for a larger company.</p>\n",
      "date_published": "Fri, 27 Oct 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-learn-to-build/",
      "url": "https://vladiiancu.com/post/impressions-on-learn-to-build/",
      "title": "Impressions on &quot;Learn to build&quot;",
      "content_html": "<p>Having recently finished the book &quot;Learn to Build&quot; by Bob Moesta, it occurred to me that I have already written 2 separate posts on this blog where referenced ideas from this book.</p>\n<p>I see no point at the moment to repeat myself. So I invite you to read about the <a href=\"/post/the-link-between-tdd-and-innovators/\" title=\"The Link between TDD and Innovators\">link between TDD and being an Innovator</a> and how <a href=\"/post/being-agile-takes-many-different-shapes/\" title=\"Agile in different shapes\">Being Agile takes many shapes</a>.</p>\n<p>One more beautiful thing that resonated with me a lot in this period comes from Chapter 5 of the book.</p>\n<blockquote>\n<p>&quot;Most people don't prototype to learn; they prototype to confirm a hypothesis with A/B testing. Why? Because we're taught that we should already have the answer based on theory&quot;</p>\n</blockquote>\n<p>What I would add here, actually, is that most people don't prototype <em>at all</em>. So let's take that into consideration first. But if you do, this is a different perspective which can be easily applied in software engineering and product management/development.</p>\n<p>The book itself is about the 5 skills any innovator and entrepreneur needs. It emphasizes that it's more important to have all of them. Or bits and pieces from each, instead of being very strong in one or two and not have the remaining ones at all.</p>\n<p>The examples provided are pretty good.</p>\n<p>It's also nice to see how the same 5 skills have been applied in creating the book, putting a further emphasis that it's not just a theoretical book with theoretical suggestions which are impractical.</p>\n<p>Having said this, I am also confident that the reason I wrote so much about this book and got so much inspiration from it is related to timing. So your mileage may vary.</p>\n<p>No matter your current context, reading this book will be either a good idea or an excellent one :)</p>\n",
      "date_published": "Thu, 19 Oct 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/being-agile-takes-many-different-shapes/",
      "url": "https://vladiiancu.com/post/being-agile-takes-many-different-shapes/",
      "title": "Being Agile takes many different shapes",
      "content_html": "<p>When companies discuss being Agile, it's very likely that each person has a slightly different view of what that means for him/her, for the department he or she leads or for the entire company.\nAnd each of them might very well be correct, individually.</p>\n<p>You know what's definitely NOT correct?\nThinking that one can take an already-defined framework, force it upon a department or a company and once that process is &quot;done&quot;, consider themselves to be agile from now on.</p>\n<h2>Why is it wrong?</h2>\n<p>Two reasons: First, considering that agile is a process which you go through once, and then you are &quot;done&quot;. Completely false. It's never done. Much like a good piece of software.</p>\n<p>Second, not adapting the rules and the tools to your particular domain, environment, people etc.</p>\n<h3>I thought agile is only related to software</h3>\n<p>It's not.\nYou can't put agile work into one single department and ignore the rest. Sooner or later every stakeholder needs to be in sync. And this is hard work.</p>\n<p>It's hard because everybody needs to embrace insecurity. Everybody needs to change the way they work and approach things. It's uncomfortable. And you must also let go of certain tools which gave you an apparent sense of security. (I'm thinking about long term planning based on estimates)</p>\n<p>So here was my perspective. In the last months I read and experimented and applied and got feedback and then iterated on a long list of items. All of them from the Agile world. Some from Agile Manifesto, some from SCRUM, some from extreme programming. And probably others which I am not familiar with.</p>\n<p>Sidenote: this was actually one of the main reasons I was much more silent on this blog than last year.</p>\n<p>In a way, my problem was that most of the advice, most of the articles, books, blogs, conferences where very much software-focused. Software-building focused. Even though in my head everything made a lot of sense, when explaining similar concepts or work styles to people not involved in software engineering I got no traction.</p>\n<blockquote>\n<blockquote>\n<p>Continuous Integration, Continuous Deployment and Continuous Delivery all lead to the same road: Continuous Product Engineering.</p>\n</blockquote>\n</blockquote>\n<p>But how can we talk about Continuous Product Engineering if Sales, Marketing, Customer Success/Support and all the other supporting actors don't understand and don't connect to this way. If they are still working in a Waterfall way, then... you are in for a really difficult time.</p>\n<h2>Empathy for the other stakeholders</h2>\n<p>To the best of my ability, I always try to keep an open mind and be as empathetic as possible. To see their points of views, understand then and reach a solution or a compromise.</p>\n<p>Therefore, I am always asking myself what am I missing? What information was not communicated that would substantially change the way we work and make decisions? What things are not taken into account to have a clear image and provide the necessary context.</p>\n<p>While performing these exercises, this morning at 4am (I couldn't sleep) I finally got out of bed and decided to continue reading a book that I started and didn't finish.</p>\n<h3>Getting confirmation</h3>\n<p>The book is called <em>Learn to Build</em> by Bob Moesta.</p>\n<p>And I got really excited about it. Why? Because it came from different perspective, it used different words, but it conveyed the exact same agile principles.</p>\n<p>Chapter 3 - Uncovering Demand</p>\n<p>In the part called &quot;Making it real&quot;, we have &quot;Young Bob&quot; who &quot;wanted to scale quickly: how can I make this as big as possible, as fast as possible? Enlightened Bob, however, wants to <strong>understand how to add value one person at a time</strong>. Only then, when I can see the hidden patterns, can I think about scale&quot;. Emphasis is mine.</p>\n<p>Chapter 4 - Causal structures</p>\n<p>This chapter starts with a quote which goes magnificent as a follow-up idea</p>\n<blockquote>\n<p>&quot;If you can't describe what you are doing as a process, you don't know what you're doing.&quot;\n-- Dr. W. Edwards Deming</p>\n</blockquote>\n<p>In this chapter we again have &quot;Enlightened Bob&quot; who has a goal called robustness. &quot;I try to make things fail as opposed to waiting for it to happen like young Bob; I want to know its limits&quot;.</p>\n<p>Isn't this precisely what we would like, ideally, to experience in software development? To fail fast to understand the limits? I believe the answer is yes.</p>\n<p>I'm currently at Chapter 5 which is called &quot;Prototyping to learn&quot;. So far it sounds like textbook agility to me.</p>\n<h3>Next steps</h3>\n<p>This books also has some specific advice which is not directly related to product engineering or Agile, but it still uncovers some pain points that we experience in the company. So the value this book provides to me at this point is time is really high.</p>\n<p>I'm really happy that Valentin gave this one for me to read.</p>\n",
      "date_published": "Tue, 17 Oct 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/software-architecture-summit-at-bucharest-tech-week/",
      "url": "https://vladiiancu.com/post/software-architecture-summit-at-bucharest-tech-week/",
      "title": "Software Architecture Summit at Bucharest Tech Week",
      "content_html": "<p>It's been a while since I attended a conference in-person. So I was quite excited.\nLooking at the agenda and the speakers I knew from the beginning that I was looking forward for two specific talks. Two out of ten.</p>\n<p>In the past I was always joined by somebody. This year I went alone. Well, not entirely alone I had my laptop with me just in case I had to work on something extremely urgent.</p>\n<h2>What was the experience like?</h2>\n<p>It was a mixed experience from my perspective but, in the end, I would go again next years.</p>\n<p>I think you can easily split this into two: the speakers with their talks and the other parts - the networking, the sponsors's booth etc.</p>\n<p>Overall, the number of people that attended versus the amount of space available was great. It didn't feel overcrowded at any point in time which gets a thumbs up for me. Many breaks and many opportunities to connect and learn about new companies.</p>\n<p>Speaking of companies, it was quite obvious that the main objective of the sponsors were to try and recruit developers to join their company. Pure and simple.</p>\n<p>Moving on to the summit agenda. It is highly likely that each person attending came in with very different expectations.\nSome set their expectations based on the title of the summit &quot;Software Architecture&quot;. Therefore, they were extremely upset after certain talks which had little to no connection with the &quot;architecture&quot; part.</p>\n<p>Others, such as myself, had certain expectation based on the title of presentations. And I had a mixed experience. I was under-impressed by some and over-impressed by others.</p>\n<p>And, probably some had no expectations at all. Therefore they had less chances of being dissapointed or impressed, right? Good for them.</p>\n<p>I like to focus on the positives, so I would say that the best talk at the day was called &quot;Monoliths in a microservices world&quot; by Phil Wilkins. Not much of an Oracle fan myself, yet this talk was spot on.</p>\n<p>If you paid attention to it, you would realise that the purpose of it is for you, as a developer, architect, CTO etc to ask yourself the <strong>right questions</strong>. That's the point. Skip what is &quot;popular&quot;, skip what &quot;everybody is talking about&quot; or praising and focus on these questions that you should ask yourself.</p>\n<p>Switching the direction from &quot;how can we use this technology into our product&quot; to &quot;how is my product working now, where can it be improved and what will benefit it&quot;.</p>\n<p>I got the feeling that Phil is a fan of Domain Driven Design.\nThe fact that he had an entire slide specifically about how to introduce an Anti-corruption layer to help protect the modularity of your system speaks in high volumes.</p>\n<h3>What about the other talks?</h3>\n<p>There were two keywords that I've heard repeated in many different contexts in the majority of the presentations: cloud (and it's variants Docker, Kubernetes, containers, serverless) and Kafka.</p>\n<h2>What did you gain from attending ?</h2>\n<p>Good question right? You just spent an entire day at an event. What's the outcome?</p>\n<p>For me, the biggest win was getting out and listening and hearing about other things that I deal with everyday. A change of perspective or focus was appreciated by me.</p>\n<p>Yes I also heard or learned about a couple of different tools but that's just a nice side-effect which unknown impact.</p>\n<p>Then it was the networking. Having met new fellow developers was a nice change of pace from a normal day.</p>\n<p>Bonus points: learned about some new companies that I haven't heard of and I am now confident that they are definitely <em>not</em> the type of company I would like to work with.</p>\n<p>That's a wrap.</p>\n",
      "date_published": "Sun, 28 May 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-link-between-tdd-and-innovators/",
      "url": "https://vladiiancu.com/post/the-link-between-tdd-and-innovators/",
      "title": "The link between TDD and innovators",
      "content_html": "<p>While reading &quot;Learning to Build&quot; by Bob Moesta, I came across this section, which I'll quote below, with the title &quot;The Myth about Failure and Innovation&quot;:</p>\n<blockquote>\n<p>There's a mantra in the world of innovation that says, &quot;if you're not failing, then you're not innovating&quot;. But failure by itself is not a rite of passage to becoming an innovator. It's the learning that comes from failing that makes someone an innovator. If I leave a failure on the table without uncovering <em>why</em>, then it's a waste--making failure useful is the hard part of the innovation.</p>\n</blockquote>\n<p>What I did after reading this bit was to create a connection with software design and development. Specifically with Test Driven Development (TDD).</p>\n<p>This happened in two different ways. First is the classical approach of doing TDD when creating something new. You start by writing a test. This test will fail. Then you write the minimal amount of code that will make the test pass. Then you refactor.\nRinse and repeat.</p>\n<p>Sounds easy, but it takes a while to learn and adjust. Now, the first failure that you get, it's something you expect. You <strong>are</strong> writing a test for something that isn't there yet, so it makes sense to both fail and not necessary &quot;learn&quot; something from this.</p>\n<p>However, while continuing this process you might eventually reach a failed status that you did not expect. And this where TDD is very valuable; and this quote makes some sense. You get to quickly understand why something is failing.</p>\n<p>The second scenario where this quote applies is with existing, running in production software. Naturally, as people use your product, sooner or later they will encounter bugs. And report them.</p>\n<p>A reported bug, or one found via other methods can be considered a failure. As such, approaching this with an innovator mindset, it is an opportunity to learn something. And to make your product more resilient.</p>\n<h3>How to deal with production bugs?</h3>\n<p>First, you establish the level of importance (how often does it show up, how many users are affected, does it touch components on the critical path etc). This helps in prioritizing and making sure you focus only on what's impactful.</p>\n<p>Then, you analyze the system, the behavior, the bug itself - try to reproduce it. During this activity you might think of:</p>\n<ul>\n<li>How can I fix this?</li>\n<li>How can I prevent this?</li>\n<li>How can I be alerted sooner?</li>\n</ul>\n<p>Rather than letting a paying customer tell you there's a bug in your system, what steps can you take to make sure you know before they do?</p>\n<p>Finally, you can actually:</p>\n<ul>\n<li>Automate all the steps needed to debug the issue and understand if it's a problem or not.</li>\n<li>Implement automated test that confirm this bug. Then implement the fix, have all the tests as passed and deploy the changes.</li>\n<li>If applicable, implement an automated self-healing mechanism: a bug was automatically identified, and then the steps to fix it were automated as well.</li>\n</ul>\n<p>This is how you learn. By doing this you prevent this particular bug from showing up in production again after being fixed. It reduces maintenance cost. And it is implemented at the integration level -- this means that it is not only you who will be using this method and it's benefits. It's the entire team.</p>\n<p>So the safeguard system will help you, your team and your future team members as well.</p>\n",
      "date_published": "Wed, 19 Apr 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/own-your-platform/",
      "url": "https://vladiiancu.com/post/own-your-platform/",
      "title": "Own your platform",
      "content_html": "<p>When I started this blog, the only interesting platform at that time, for me, was Twitter.</p>\n<p>This is the reason it was also the only external link in the menu of this blog. Things have changed though.</p>\n<p>I use Twitter much less than in the past. I still find some value in it from time to time. However, with so many changes going on, I am not confident at this point that it would make any sense to post anything there.</p>\n<p>I wasn't necessarily looking for a replacement, but I spent more time on LinkedIn. First, because I wanted to connect with fellow developers. And I wanted to do that faster and more targeted. It was easier to find people with experience in a certain technology, who had worked maybe in a certain place, and from whom I could learn.</p>\n<p>Even since 2022, I wanted to publish things. To write my own thoughts and ideas. But never got around to doing it. Either because I lacked confidence that I could write anything of interest, or lack of time.</p>\n<p>I have to tell you that I was also biased in a way. I had this notion in my head that all those accounts that put a lot of posts -- like to talk but don't walk the walk. Tainted with the idea that all &quot;influencers&quot; are fake.</p>\n<p>I was lucky to have met some wonderful people that have demonstrated that it is possible: you can publish posts on LinkedIn quite regularly, and you can do the actual work. Do it well, I might add. <a href=\"https://www.linkedin.com/in/deniscahuk/\">Denis Čahuk</a> is one such person.</p>\n<p>Having a &quot;real-world&quot; example helps a lot. Side note: this is perhaps one of the reasons why having a mentor is really valuable.</p>\n<p>So I started publishing some ideas here and there on LinkedIn. But one week in, it hit me. What happened to Twitter can happen to LinkedIn as well. Right? Or my account could get hacked and lose access. Or get banned for who-knows-what reason.</p>\n<p>Writing on this blog is also an activity I have missed. So these two recent events triggered this: a small change really -- I will try to keep my activity on LinkedIn as best as I can at this point. And some (most?) of what I will publish there will also show up here as &quot;short stories&quot;. Effectively acting as a mirror repository.</p>\n",
      "date_published": "Sun, 02 Apr 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-is-a-good-startup/",
      "url": "https://vladiiancu.com/post/what-is-a-good-startup/",
      "title": "What is a good startup?",
      "content_html": "<p>A good startup = idea x execution x timing + listening to the customers.</p>\n<p>One common pitfall is focusing too much on the idea and not enough on the execution.</p>\n<p>The execution needs to be good, yet fast. You cannot afford architecting the &quot;best&quot; system, implementing the &quot;best&quot; code etc.</p>\n<p>It's a good idea to take on some tech debt but only if you make sure to take care of it.</p>\n<p>It's a delicate balance.</p>\n",
      "date_published": "Sun, 02 Apr 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-management-thinks-a-developer-does/",
      "url": "https://vladiiancu.com/post/what-management-thinks-a-developer-does/",
      "title": "What management thinks a developer does",
      "content_html": "<p>What management thinks a developer does:</p>\n<ul>\n<li>drinks coffee ☕</li>\n<li>writes code ✒️</li>\n</ul>\n<p>What a developer actually does:</p>\n<ul>\n<li>drinks coffee ☕ or tea 🍵</li>\n<li>reads and understands previously written code ✅</li>\n<li>communicates and plans new features ✅</li>\n<li>challenges plans and provides estimates ⏲️</li>\n<li>makes design decisions before starting to implement 🤔</li>\n<li>writes tests 🧠</li>\n<li>writes code ✒️</li>\n</ul>\n",
      "date_published": "Fri, 31 Mar 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/asking-for-feedback/",
      "url": "https://vladiiancu.com/post/asking-for-feedback/",
      "title": "Asking for feedback",
      "content_html": "<p>If you ask for feedback, and you receive it, and then you don't act on it... then why bother at all?</p>\n<p>This is available on a personal level as well as a business one.</p>\n<p>If you ask me to spend time sending you some feedback (through NPS or otherwise) and then nothing really happens -- more often than not I get annoyed.</p>\n<p>So please, don't ignore #customerfeedback. It will also improve your product or service in the long run, so it's a win-win situation.</p>\n<p>And if you struggle with a huge backlog, there are ways to deal with that as well.</p>\n<p>Reach out if you have questions - I'm open to technical and non-technical discussions.</p>\n",
      "date_published": "Thu, 30 Mar 2023 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-about-the-client/",
      "url": "https://vladiiancu.com/post/what-about-the-client/",
      "title": "What about the client",
      "content_html": "<p>From my experience, there are two general approaches when it comes to the client or the customer. Both of them are extremes.</p>\n<p>The first approach says that &quot;The customer is always right&quot;. I'm sure you've heard about this many times before. There's even a <a href=\"https://en.wikipedia.org/wiki/The_customer_is_always_right\">Wikipedia</a> page dedicated to it.  Less known is the fact that this &quot;quote&quot; is actually taken out of context.</p>\n<p>The actual context puts things into a slightly different perspective: the customer is always right in regard to any sort of personal preference. Let's take a color for example: If the client thinks that the green jacket looks better than the blue one.</p>\n<p>After years and years of when this quote was held as one of the golden rules, naturally another side gained popularity. Naturally, it was towards the other extreme. That the customer is always wrong. That he doesn't know what he wants.</p>\n<p>Famously, perhaps, is this quote: &quot;If I had asked people what they wanted, they would have said faster horses.&quot; - this is attributed to the well known Henry Ford. But he might <a href=\"https://hbr.org/2011/08/henry-ford-never-said-the-fast\">not have actually said</a> it.</p>\n<p>Ah, the Internet. The world filled with quick-wins. You've got to love it. But I digress.</p>\n<p>Coming back to the real world, I find myself, again and again, looking for #balance. In this particular matter, this is the best moment to reach it. I find it much easier after going from one extreme point of view to the other to pick the best parts from each and create something new that makes sense and fits better.</p>\n<p>So, what about the client? Is he wrong or is he right?</p>\n<blockquote>\n<p>The answer to the question is...yes!</p>\n</blockquote>\n<p>This might be confusing (it is - on purpose) but let me be very clear in the next part.</p>\n<p><em>The client is always right when it comes to his particular domain</em>. The client knows best what his business needs right now, what are the pain points, the roadblocks, the capabilities etc.</p>\n<p>However, the client might very well be wrong about the &quot;how&quot;. He is right about the &quot;what&quot;, but not always about the best way to do that.</p>\n<p>And that is where you come in. As a partner, consultant, agency, collaborator, perhaps even as an employee.</p>\n<p>So yes, the client might not be right about the fact that he needs another popup on the website asking people to signup for the newsletter. But he is right about the fact that he needs a cheaper and more effective way to reach customers that have shown interest in his products or services.</p>\n<p>So that is my advice. Whenever this type of request comes in, try to determine what is the actual reason behind the how. Go down layers and layers, uncover the needs and pain points, and then provide a solution.</p>\n<p>This also applies when building a software product.</p>\n<p>The client might ask for yet another button. Yet another option. But what does he really mean by that? Not doing it means you will end up with a product that has 25 different filters and 10 different options that nobody knows how to use.</p>\n",
      "date_published": "Fri, 21 Oct 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/how-i-made-the-choice-between-a-4k-monitor-and-an-ultrawide-one/",
      "url": "https://vladiiancu.com/post/how-i-made-the-choice-between-a-4k-monitor-and-an-ultrawide-one/",
      "title": "How I made the choice between a 4K monitor and an Ultrawide one",
      "content_html": "<p>A couple of months ago I've decided that it's time to upgrade my WFH setup. Currently, I have a 16&quot; MacBook Pro connected to a 22&quot; Full HD screen + a desktop connected to the same screen.</p>\n<p>When working on the laptop + extra screen combo, the experience is ok. When working solely on the desktop, it's hard. I struggle. So I've decided it's time to upgrade.</p>\n<p>After some research, as I normally do, the conclusion was that I had two choices available:</p>\n<ol>\n<li>Go for a 27&quot; 4K Screen.</li>\n<li>Go for a 34&quot; UltraWide curved Screen.</li>\n</ol>\n<p>Option number one is straightforward. Replace the current screen with the new one and done. Option number two meant switching solely to this screen even when working on the MBP.</p>\n<p>I tried listening to the experience of others. I watched countless videos and so on. From different perspectives: a developer, a content consumer and a content creator. In this order.</p>\n<p>I couldn't decide. So I moved forward to picking up a couple of models for each choice. Eventually I managed to do just that.</p>\n<p>And I put a pause to this project. A couple of months passed and after another frustrating experience on the desktop, I recalled my solution. But I was still undecided.</p>\n<p>So I went to a nearby store to check out my two options. I wasn't necessarily interested in the actual models I selected, but the format, the real estate, the physical appearance etc. Luckily for me, there was a section with my exact two options standing one above the other.</p>\n<p>And I stared at them. And stared. I tried imagining working on them. Having them on the desk and so on.</p>\n<p>I liked the simplicity of a 4K screen. And having more pixels real-estate. Although I know of some scaling issues I might encounter.\nI liked the somewhat minimalistic approach of the ultrawide curved screen. Since I would end up with just the screen, keyboard and mouse it felt cleaner. However, I know that my desk is not very wide (around 100-120 cm wide) and the depth is around 60? Maybe 70?</p>\n<p>Safe to say that after staring for a while I was back to square one. No clue which was better. So I left.</p>\n<p>In a fortunate turn of events, the same day, only hours later, I ended up in the proximity of the same store with my wife. And I had an idea. Let me ask for her advice. Maybe a new perspective will help.</p>\n<p>I went straight in the same spot, at the same two screens I looked at earlier. After her asking some questions related to the physical appearance of the specific screens on display and understanding that they weren't the actual final models - that I was just interested in the format, in a matter of 30 seconds she made the choice easier.</p>\n<p>Option number one made a much better choice because of how well it will integrate with the rest of the room and the furniture. Problem solved. Decision was made.</p>\n<p>I was quite pleased with the result since it made my life a little easier. Now I can happily move on to my next dilemma. Which pair of headphones to choose from my final line-up. But that's a story for a different day.</p>\n<p>In conclusion, dear reader, my advice for you is to stop lingering so much on making a choice. And whenever you feel stuck - ask for advice. It might very well present you with a new perspective, a new filter that you can add which will help narrow down your choices and making it that much easier to pick something up and move on.</p>\n",
      "date_published": "Sun, 11 Sep 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/its-more-than-books-out-there/",
      "url": "https://vladiiancu.com/post/its-more-than-books-out-there/",
      "title": "It&#39;s more than books out there",
      "content_html": "<p>You might have noticed from the <a href=\"/tag/books\">books tag</a> on this blog that I've done a couple of articles where I express some thoughts I had after reading certain books.\nWhile those aren't the only ones I opened, it is safe to say that I'm a person who enjoys reading.</p>\n<p>I believe that books are a great resource overall. However, there are other resources just as good or important I would say.</p>\n<p>In my case, lately, I've been using YouTube more and more to learn new things.</p>\n<p>Complementary sources also come from my networks (Twitter and LinkedIn) - either I'm following really smart and interesting people whom I admire, or I stumble upon threads, conversation or links to other blogs that provide real value.</p>\n<p>It is a journey and it is awesome.</p>\n<p>The problem is related to <em>the algorithms</em>. Actually, it's problems. Plural. Let's analyze each one.</p>\n<ul>\n<li>Situation 1: You are just starting out</li>\n</ul>\n<p>In this situation, you aren't really sure who to trust, who to follow, who is right etc. The easiest road would be to start with the popular ones. But does popularity equal quality? Certainly not every time.</p>\n<p>This can be easily seen, for example, when visiting YouTube in incognito mode. On a new IP class maybe (privacy advocates know what I'm talking about).\nThe homepage is filled with various videos that have no true connection to you.</p>\n<p>And searching for a specific topic will return popular results thus arriving to our first situation/issue.</p>\n<p>How to remedy this?</p>\n<p>For now, I'm simply not using them as first source/choice. First I will be following leaders, people I know, authors I've read. And then I start with their accounts. Watch their content. After a while, similar content should be suggested and the journey begins. But eventually, this will lead to situation number 2.</p>\n<ul>\n<li>Situation 2: You've been at it for a while and keep swimming in the same circles</li>\n</ul>\n<p>Once you follow a number of accounts/users, and maybe you start interacting by liking, commenting, retweeting etc. the current algorithms take all these signals into consideration whenever they will suggest a topic, a channel, an account, the next video, etc.</p>\n<p>And this is where it gets tricky. Not only because you can quickly go down the rabbit hole and become very focused on a single vertical (unintentionally) but you aren't even becoming an expert in that vertical. You will most likely become biased to a <strong>part</strong> of that vertical. For certain topics such as political ones this can quickly lead up to becoming (or at least believing, extremists).</p>\n<p>I don't believe in extremism. On the contrary, I believe in finding your <a href=\"/tag/balance\">balance</a>. Clearly, this road is not something I'm a fan of.</p>\n<p>To sum up, the main problem with situation 2 is that it becomes much harder to listen to different perspectives. Which will not help you in making the best decisions.</p>\n<p>How to remedy this?</p>\n<p>First step is being aware of this potential problem. Early on is best. Second step is taking proactive measures. Making steps in purposefully searching for different perspectives and consuming and interacting with that content just as much. This will lead to balancing the suggestions from the algorithms and in turn you are increasing your chances of getting to hear &quot;both sides&quot; of a story.</p>\n<p>But this requires effort. For some, this is enough to let things slip away.</p>\n<p>This is probably the point where I would jump to another topic: the responsibilities of developers, engineers, CTOs etc. when working with algorithms, MLs and AIs. But not today. It is (or can be) a really hot debate specifically because of the huge ramifications and implications these can have on a person and on the society as a whole.</p>\n<p>But I won't go there now. Maybe another time.</p>\n<p>On a semi-related note, I found that a similar issue is also encountered by people who are just starting out there careers in software development. Not knowing where to go, who to listen to from the beginning, many fall pray to empty promises and waste time on useless content. Or worse, get tricked into spending a lot of money for courses which are mostly worthless.</p>\n<p>If this is you - If you somehow stumbled upon this piece of content and are at the beginning of this wonderful journey called programming, hit me up. All you might really need is a mentor. Reach out to me via whatever medium works best for you and let's talk. It's free :).</p>\n",
      "date_published": "Tue, 06 Sep 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/different-types-of-companies-for-a-developer/",
      "url": "https://vladiiancu.com/post/different-types-of-companies-for-a-developer/",
      "title": "Different types of companies for a developer",
      "content_html": "<p>You might be thinking of becoming a developer. And if that's the case, let me explain some things pertaining to the different types of companies that are available out there. This should help you get an idea of the most popular options and not get discouraged along your journey.</p>\n<p>But let's start with a warning. Or two.</p>\n<ol>\n<li>If the sole reason you would like to become a developer is because of money - stop reading this. It will not help you in any way. Very little things will help you, and this isn't one of them.</li>\n<li>If you want to become a developer because you like playing games... you might want to rethink a bit. You like listening to music? Why won't you consider producing music?</li>\n</ol>\n<p>With those details out of the way, I will now assume that you are still reading this because you are curious by nature, you have a certain passion for programming and you are just getting started.</p>\n<p>Sooner or later, you will start asking yourself some questions regarding your career and the options available to you.</p>\n<p>Let's start with the obvious one. The most approachable option is to <strong>start freelancing</strong>. It allows you to take on as many projects as you can, gradually increasing the number and, later on, the complexity of the projects.\nThis flexibility has a lot of initial perks. You get to build a nice profile. You earn some experience and so on. Likewise, you also get to set your own schedule and work wherever you like (or afford).</p>\n<p>Downside is that most &quot;clients&quot; will probably treat you as a code monkey. Which gets tiresome after a while. Also, most of the time, you will reach a higher limit in terms of the number of projects you can take and your hourly rate.</p>\n<p>Besides freelancing, getting a <strong>job at a company</strong> is another valid option. But you should know that not all companies are the same. I'm not talking about comparing a no-name company with 4 employees with MAMAA (Meta, Amazon, Microsoft, Alphabet, Apple). I'm talking about different types of companies, different DNA which translates into different opportunities for you.</p>\n<p>Here's how I differentiate things:</p>\n<ul>\n<li>MAMAA or similar</li>\n<li>big companies/corporate with a strong tech division (think Automotive or Financial industry)</li>\n<li>agencies, companies that provide various services to other businesses</li>\n<li>tech startups</li>\n<li>outsourcing companies</li>\n<li>small companies with legacy products</li>\n</ul>\n<p>Having said this there's no straight right or wrong choice. It all depends on:</p>\n<ul>\n<li>the type of person you are</li>\n<li>what are your main goals</li>\n<li>your values</li>\n</ul>\n<p>Let's say you are interested in learning. Great. You also have two choices here. You would like to expand your knowledge horizontally, or expand vertically and be a top player on a specific topic.\nDepending on your preference, some places might be better suited. For instance an agency is great for horizontal expansion since you get a lot of variety, different projects, clients, topics, industries etc. In a tech startup you also get to wear many hats so that might be a good option too. On the flip side, you will get the opportunity to dive vertically in a bigger company where your responsibilities are much more focused on a particular subject - and you usually have a lot of peers which can help you out.</p>\n<p>What about the people?\nFortunately, a good team and/or a good manager or mentor can be found anywhere. Unfortunately though, those are quite rare, regardless of the type of company.</p>\n<p>Last, but not least, there's one final option available to you: Starting your own company.\nThis option doesn't rule out the others. In fact, it's pretty hard to start a (successful) company having no experience and no funding.</p>\n<p>So you might start out freelancing and later on in your life have an idea which you will act upon and transform that into a service or a product, wrapped up as your own company.\nThe same can happen after years of working at various companies.\nFinally, &quot;never&quot; is a valid option too when it comes to having your own business. The number of new companies that start and then crash and burn after 3-5 years is huge. So it's definitely not easy. Luckily, nobody will force you to do this - but it's good to lay it all out.</p>\n",
      "date_published": "Tue, 26 Jul 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-is-your-purpose/",
      "url": "https://vladiiancu.com/post/what-is-your-purpose/",
      "title": "What is your purpose?",
      "content_html": "<p>Over the course of many years that will eventually sum up to describe one's career, a person will most likely have multiple roles.</p>\n<p>When talking about your role, your purpose, your career etc, a specific question will always come up during conversations: &quot;What is your purpose?&quot;.</p>\n<p>It just occurred to me that throughout the different roles that I had, the answer to this specific question was always the same: &quot;I find solutions&quot;.</p>\n<p>Back in the days when I was just starting out, still in college, working as an IT admin, that was how I saw things: People have issues with their printers or computers and I get called to fix them. Fixing them means I provide a solution to their problems.</p>\n<p>Later on, as a pure developer, &quot;I find solutions&quot; was even better set in stone. I literally had &quot;issues&quot; or &quot;algorithms&quot; that needed a solution. However, I was still interested in the overall picture. What does fixing this error mean? How does implementing this algorithm help me, or the client or the company?\nIf I <em>wasn't</em> doing this mental exercise, then a good answer might have been &quot;I write code&quot;.</p>\n<p>One of the most challenging roles that I had so far was called &quot;Solution Architect&quot;. Even the name of the role contains part of the answer, right?</p>\n<p>Finally, as a CTO, this becomes more real than ever before. Sure, the type of work changes drastically. This also differs from company to company. I know some CTOs that keep developing, keep writing code. Others are strictly managerial. There's no right or wrong here. It's mostly dependent on where the company is in its journey and the current needs.</p>\n<p>I do think that the most difficult CTO role is a mixed one. A role where during a single day you need to write some code AND also think about architecture or long-term vision or team or budget etc. But this is probably a topic for a different post.</p>\n<p>In conclusion, if we are also going to tackle the topic of &quot;What is your differentiator?&quot; or &quot;How do you stand out from the sea of other developers out there?&quot;, this would be my answer: I don't write code, I find solutions.</p>\n<blockquote>\n<p>Whatever my role, the answer is the same. What changes is the scope, the scale and the potential impact.</p>\n</blockquote>\n<p>ps. Even though I am not promoting this blog, if you somehow end up reading this, please take a moment to ponder the question and write your answer in the comments. Include your role (former or current) + your answer.\nThank you.</p>\n",
      "date_published": "Mon, 25 Jul 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/how-an-agency-can-positively-impact-a-company-and-their-customers/",
      "url": "https://vladiiancu.com/post/how-an-agency-can-positively-impact-a-company-and-their-customers/",
      "title": "How an agency can positively impact a company and their customers",
      "content_html": "<p>The agency life is filled with both positive and horror stories. And the Internet is filled with companies complaining about agencies and vice-versa.</p>\n<p>However, I think we must all recognize how this agency-client collaboration has changed. There aren't two separate entities anymore. Things are much more intertwined than\never before. That is... if you are interested in providing good services and making a positive impact.</p>\n<p>If you would like to see more about how the Omniconvert Managed Services department works, you can check out this recent <a href=\"https://www.linkedin.com/video/live/urn:li:ugcPost:6945397705212850177/\">Meetup session</a> where we lay it all out for you.</p>\n<p>Now, back to the main story. Here's how it all went down.</p>\n<p>The tools that we used: NPS + RFM.</p>\n<h3>What is NPS?</h3>\n<p>NPS stands for Net Promoter Score. It is essentially a scale from 0 to 10 where, as a client, you can rate how satisfied you are with a product or a service from a company.\nYou've probably been asked many times via email or on the website for this. It usually starts with &quot;your feedback is important to us&quot;.\nInterested to learn more about this subject? Start with this <a href=\"https://en.wikipedia.org/wiki/Net_promoter_score\">Wikipedia article</a>, but only after you've finished this post.</p>\n<h3>What is RFM?</h3>\n<p>RFM stands for <strong>R</strong>ecency, <strong>F</strong>requency and <strong>M</strong>onetary Value. Essentially, a way to segment your customers based on when have they placed their last order,\nhow often do they order and the value of those orders. Again, <a href=\"https://en.wikipedia.org/wiki/RFM_(market_research)\">Wikipedia</a> to the rescue.</p>\n<h3>NPS + RFM</h3>\n<p>RFM analysis can be done using your existing customer information. For large shops, it is recommended to go with the automated version. You can use a tool such as <a href=\"https://www.omniconvert.com/blog/how-reveals-automated-rfm-segmentation-and-analysis-works/\">Omniconvert Reveal</a> for this part.</p>\n<p>NPS is usually implemented by asking your customers for feedback via a Survey. The essential part here is collecting this data and being able to associate this data not only with a specific customer,\nbut with a specific order.</p>\n<h4>Taking it to the next level</h4>\n<p>What we've done, and we recommend this to all of our customers, is correctly setting up NPS + RFM as shown above but also implementing 2 NPS surveys. The first one is called &quot;pre-delivery NPS&quot;.\nUsually, we like to post the question to the customer as soon as he or she finished the purchase (on the 'Thank you' page is a great place).</p>\n<p>The other one we call &quot;post-delivery NPS&quot;. And this one is sent out to the customer after the delivery has been completed and, ideally, after the customer managed to use your product or to benefit from your services.</p>\n<p>It is a powerful combination.</p>\n<p>If you also craft a beautiful email template and a good-looking survey that implements dynamic follow-up questions based on the score provided, then you are probably doing better than 90% of your competitors.</p>\n<h3>The data</h3>\n<p>Up until now I talked about the tools and the technology. What about analyzing the data and the results?</p>\n<p>Why is this combination extremely useful?\nYou can use NPS alone to get the general direction of how well you are doing. Using the power of follow-up questions, you can then gather extremely important feedback\nstraight from your customers (not your potential ones, the ones that have already opened up the wallet for you).</p>\n<p>Analyzing that feedback is important. However, you might end up with a lot of it regarding different aspects of your business:</p>\n<ul>\n<li>website performance</li>\n<li>delivery times</li>\n<li>packaging</li>\n<li>product quality</li>\n<li>etc.</li>\n</ul>\n<p>How in the world will you be able to prioritize? You can't tackle all of them at once, right? And this is where the RFM segmentation help.</p>\n<blockquote>\n<p>You can prioritize your issues or your areas of improvement by starting with the feedback from your most relevant customers.</p>\n</blockquote>\n<p>Imagine you've already got some feedback collected.\nYou have 500 people telling you that the delivery fees are too big.\nYou also have 60 people telling you that your product variety is too low.</p>\n<p>A sensible move, having this data, would be to focus on the problem where most of your customers complain about, right?</p>\n<p>But if you use RFM segmenting, perhaps you will find out that most of those 60 people are among your best customers! -&gt;insert mind-blown gif&lt;-</p>\n<p>Therefore, if you improve your product variety, your top customers will actually buy more from you. And they would probably recommend you further, bringing more similar-valued customers.</p>\n<p>In essence, you can increase your margins faster by making better business decisions.</p>\n<h3>The actual results</h3>\n<p>While I can't actually disclose names and details, I think I can say this: one of the biggest online stores in Romania started implementing RFM + NPS as described, using our expertise.</p>\n<p>Among the feedback collected (which was <em>a lot</em>), patterns were emerging. One of them was about how the customers were complaining about their order processing fee.</p>\n<p>And guess what? Recently, I received an email (as one of their customers). In that email, they announced the <em>complete removal</em> of the processing fee!</p>\n<p>Now this is #agency-life for you. Your work, effort and brains translated into concrete data for a business which in turn listens to their customers and actively implements changes.\nI can only imagine how many of their customers were happy to hear this particular news.</p>\n<p>I took a moment to take it all in. How many people we've managed to have a positive impact upon. It is baffling.</p>\n",
      "date_published": "Sun, 03 Jul 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/find-balance-by-being-close-to-nature/",
      "url": "https://vladiiancu.com/post/find-balance-by-being-close-to-nature/",
      "title": "Find balance by being close to nature",
      "content_html": "<p>A good deal of us have grown accustomed to all the modern tech available today. Which, by the way, we all take for granted.\nYou only need to turn a knob and receive clean, fresh water. In some areas even drinkable. For some, getting access to this kind of water means walking for hours until the nearest source.</p>\n<p>The same goes for hot water. Some have to wait and boil some water until they have enough for what they need.</p>\n<p>This is just an example. The list of ideas can be expanded to heating and cooling. And also to electricity: flip a switch and the lights turn on. And finally... food. Supermarkets close-by stocked with a huge variety of options. Apps on the phone which bring you a cooked meal at your door in less than an hour. It's amazing if you think about it.</p>\n<p>But that's just it. You/we don't think about. We don't slow down and stop to think about this kind of stuff.</p>\n<p>With all of this convince at our disposal, perhaps it is too easy to forget how the nature works:</p>\n<ul>\n<li>Where does all this electricity come from?</li>\n<li>How is this water reaching us instantly?</li>\n</ul>\n<p>One of the most fascinating lessons that stuck with me during school was called &quot;the circuit of water in nature&quot; (or something like that).</p>\n<p>If you do this proposed exercise of stopping or slowing down from the constant running we do each and every minute, you might remember how everything is interconnected.\nHow the products that we use end up influencing the quality of the water that goes down the drain. What happens after that? Sooner or later it reaches into the ground or into a river or lake. The fish that we eat, the plants that we eat or the animals that we consume (who also eat these plants) might end up containing chemicals and small-plastics and such as a direct result of our actions.</p>\n<p>Taken individually, this might not be a problem. But there are 7 billion of us (and counting). So it matters.</p>\n<p>Taking the time to understand this, means taking the time to figure our how nature works in the first place. Knowing this, takes you closer to nature. Being closer to nature, (re)balances you. Being more centered means being able to make better choices and take better actions. Therefore, you end up being a better human being.</p>\n<p>So finding your balance with nature (external action) helps you find balance within (internal action). And the opposite holds true as well.</p>\n<p>Perhaps next time you throw away the heavy, stinking cooking oil down the drain you will think twice about it? I know, we have much bigger problems going out right now.\nBut most of the &quot;bigger problems&quot; are not in our control, are they? So we make a big fuss out of nothing. Or without necessarily having an impact. But these small things ARE fully in our control. And making these choices will boost our confidence and will encourage us to do more. To think bigger.</p>\n<p>Once we have the courage to dream big, to imagine a beautiful, healthy planet where we live in harmony with nature, that's when we will collectively be better.</p>\n",
      "date_published": "Mon, 27 Jun 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/moving-away-from-google-workspaces/",
      "url": "https://vladiiancu.com/post/moving-away-from-google-workspaces/",
      "title": "Moving away from Google Workspaces",
      "content_html": "<p>If you are one of the lucky ones that received an email with this subject line &quot;[Action Required] Upgrade your G Suite legacy free edition subscriptions to Google Workspace by June 27, 2022&quot;, you already know what I'm talking about.\nYou might also be a person who has a good friend that, a long time ago, has set you up with a G Suite account. This allowed you to use Gmail and other services with your custom domain. So instead of having myname@gmail.com, your address could have been myname@domain.com.</p>\n<p>Some time ago, Google decided to pull the plug on this. Initially, they announced that everybody must pay up or lose access to everything. Then they adjusted the tone a bit and offered an easier way out. You can move to a free version, but it will not include a custom domain (among other things).</p>\n<p>So, you might find yourself in one of these situations:</p>\n<ul>\n<li>you manage multiple accounts for the whole family: you have emails, calendars, photos, maybe even apps bought and videos uploaded to YouTube;</li>\n<li>you have one or more accounts; mainly using them for email;</li>\n</ul>\n<p>If you are in the second group, you are in luck as you have many options available. If you are in the first group, I feel for you. Your data is basically taken hostage at this point (or so it feels).</p>\n<h2>What are my options?</h2>\n<ol>\n<li>First option is to learn from this lesson. Never trust one company with too much of anything.</li>\n<li>Second option: if you have too much at stake and too little time at the moment, my suggestion would be to make the upgrade, take the first year offer and use this time to make proper plans.\n2.1 It seems that there's also the option to move to a non-commercial type of account. This should remove most of the stress, but plans must still be made.</li>\n<li>If you are mostly concerned about the email part, there's some good news, there are options available. And we will discuss them now.</li>\n</ol>\n<h3>Cheap email option - Zoho</h3>\n<p><a href=\"https://www.zoho.com/mail/zohomail-pricing.html\">Zoho Email Plans</a> start from free and the first premium options are around $1/month/user. Using less than 5 GB of storage for your email? The free option is best for you. If not, the paid sounds great.</p>\n<p>You can go one step further, and replace almost every other service from Google with Zoho (calendars, collaborative documents and so on). But what did we just say about having everything in one basket?</p>\n<h3>Strong privacy-focused email option - Tutanota or Proton</h3>\n<p>Currently, <a href=\"https://proton.me/\">Proton</a> offers 4 services: Email, Calendars, Drive and VPN. They offer an &quot;EasySwitch&quot; from Google that will import your contacts and emails (and also encrypt them).\nThere's a free plan available, but I see it more as an extended free trial. If you have the budget available, this is my recommendation: it has no ads, a strong privacy policy excellent features. Interface wise, for now it's just good. But improvements are planned.</p>\n<p>The second option is <a href=\"https://tutanota.com/pricing\">Tutanota</a>. This service is focused on the email side of things, with a dash of Calendar and the inevitable Contacts. No Drive or VPN options like Proton does. It is also strongly focused on privacy and encryption.\nI really like the fact that you can choose any of their plans and then increase the space available to you as an add-on. Makes it more flexible for your needs.</p>\n<p>I've used both services (the free edition) for years now, and I haven't had any issues.</p>\n<h3>DIY Route</h3>\n<p>It is known that having your own email server is a bit tricky. I think you always run the risk of having your IP banned and all your emails will reach the Spam folder. Or worse, if you don't know what you are doing, lose email and data. So, this option is not for the faint-hearted. I haven't completed my research here, but I know there are some options available to anyone for free. With a bit of tinkering, you could end up with quite a good solution.</p>\n<p>However, if you don't already have a VPS rented out for some other services, then paying $5 per month for a server + dealing with setting things up + running the above-mentioned risks... I'm not sure if it is worth it.\nThe main advantage here is that you own your data. Period. And this comes with a lot of responsibility, too.</p>\n<p>If you managed to configure your email server properly and your emails don't end up in the spam folders, then you are good to go. Usually, you don't need to keep configuring anything after that point. Keep using it and making sure it is fairly updated.</p>\n<p>If this proves to be too big of a challenge, there's a middle ground. Set up your email server to receive emails (which is much easier) then use a remote relay to send them. You can use a service such as Amazon SES.</p>\n<h3>Outside the box thinking - Aliases</h3>\n<p>What about some other, non-traditional options? Well, if you are using multiple email addresses to receive info, I can recommend using <a href=\"https://forwardemail.net\">forwardemail</a>. If you also need to send email from those addresses, then perhaps a better option would be to go with <a href=\"https://simplelogin.io\">simplelogin</a>. You can also self-install &quot;simplelogin&quot; if you would like to go with the DIY option.</p>\n<h2>What route will you take?</h2>\n<p>I think this is a topic that is still worth exploring. The number of options seems high, however, depending on your use case you might be limited to 1 or 2.</p>\n<p>I am more than happy to take my time to choose something better for myself. And this starts with having no ads, having encryption and not letting other companies use my data to their benefit.</p>\n<p>We still have a long way to go in terms of complete alternatives to the Google ecosystem. The App Store is one of them. But Google Photos also currently lacks a strong competitor. Not to mention YouTube. So let's start with our conversations (email), the people we come in contact with (contacts), how we spend our time (calendar).</p>\n",
      "date_published": "Fri, 03 Jun 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/a-twist-on-wars/",
      "url": "https://vladiiancu.com/post/a-twist-on-wars/",
      "title": "A twist on wars",
      "content_html": "<p>For many, &quot;war&quot; is nothing more than a word written in history books. For others, &quot;war&quot; is a word shown in social media feeds. For the less fortunate, &quot;war&quot; describes something that's part of their daily lives.</p>\n<p>Up until recently, I was part of the first group, mostly. I moved into the second group when Ukraine started having Russian troops deployed on their territory.</p>\n<p>No matter your feelings toward Russia and Russians or towards the USA and Americans or China or anybody else, what has happened is just wrong. If you have beef with the Americans and the way they invaded other foreign countries, it is by no means an excuse to support the actions of Putin. Or to stop sending support to Ukraine.</p>\n<p>But I digress. What I actually wanted to reveal is something a bit different.</p>\n<p>During the last few months, I've had the opportunity to read more than I imagined about the military. I read about different types of weapons, vehicles, and troops.\nI've been fascinated about military strategy and analysis.</p>\n<p>The highlights were information about how to operate an action of this magnitude and the entire logistics behind. I found that to be fascinating.\nUnfortunately, humans have a long history, and thus experience, with war. So there are a lot of learned lessons.</p>\n<p>The amount of effort and coordination needed to plan and execute a military operation is by no means a small feat. And here's my though. Here's where I dare to dream.</p>\n<blockquote>\n<p>Imagine that we stop this war. Then, imagine that we stop all other ongoing wars.</p>\n</blockquote>\n<p>Next, imagine that all the training for everybody involved will still be there. With a small twist. One more thing to image: that all the budgets of each country for all military structures will be the same, with a twist.</p>\n<p><strong>The twist is</strong>: instead of funding wars, we will fund humanity.\nInstead of learning how to fight amongst ourselves, we learn how to help each outer.</p>\n<p>Just dare to imagine!</p>\n<p>Let's start by recognizing that various research that was initially done for military purposes, ended up in the &quot;civilian&quot; industry and economy. Advancements in materials, technology and so on.</p>\n<p>So we have this precedence. We can build on top of that. Just think if all the time and energy to attack another country, or to defend from attacks, would be invested in attacking important issues our society has.</p>\n<p>My guess is that if starting tomorrow we could redirect everything into something else, we could actually fix the problems that we caused to the climate. We could fix world hunger. People would not die prematurely because of lack of access to clean water. We would reach the start faster and safer. We would invent new ways to sustain ourselves and so on.</p>\n<p>Not only that, we wouldn't get bored. There will still be challenges. But different in nature.</p>\n<p>I will keep dreaming a little bit longer. And then I will do whatever I can to make progress towards this dream. It will probably not happen in my lifetime. But it is a damn beautiful dream.</p>\n",
      "date_published": "Sun, 15 May 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-flux/",
      "url": "https://vladiiancu.com/post/impressions-on-flux/",
      "title": "Impressions on &quot;Flux&quot;",
      "content_html": "<p>My expectations from this book were pretty neutral. Not very high yet not low. I didn't know what to expect from it because I've had it on my reading list for a while now. So much time passed since then, that I forgot everything about it. Found it on sale recently, so I grabbed the opportunity and read it.</p>\n<p>Looking at the cover and title, I half-thought that this is going to be another &quot;feel-good&quot; book about happiness and joy. Some person sharing their experience in life in telling everybody they should do exactly like him, and they will be happy.</p>\n<p>Luckily, this was not the case.</p>\n<p>The author of the book ever so tries to define what happiness really is. And that's an important aspect that you need to tackle in order to know the steps you should consider, right?</p>\n<p>One cool aspect is that most of the main topics are based on a research he and his team has done over a longer period of time. There are also a ton of references to other books and research papers for a multitude of smaller topics. So, in this regard, it is a really nice resource to gather more materials for a subject you have a deep passion about.</p>\n<p>Some parts of the book try to educate you as a parent. While I don't have this role (yet), I found the information to be very interesting and potentially useful.</p>\n<p>Not everything is great, though. There are sections in the book that I've found to be boring -- mainly because the author was giving too many examples to emphasize the same particular idea.</p>\n<p>It was written a long time ago, and some readers might find the lack of reference to anything more modern that a TV to be disturbing. But at the same time, it shows the dangers that we face in this newer world where our attention is aggressively caught by modern tech.</p>\n<h2>You've got the power</h2>\n<p>And probably one of the most controversial aspects for any reader (who might have even abandoned the book) is that all solutions proposed by the author reside within yourself. That is to say that, actually, if you expect this book to come with particular X-step process to fix this or that you will be strongly disappointed.</p>\n<p>The examples and the explications provided try to make this point: you have this immense power to ignore all outside circumstances, all exterior influences and find happiness from within.</p>\n<p>As we should know by now, with great power comes great responsibility! Therefore, some people simply cannot accept this fact and go on bickering that this can't be done. And they also probably go looking for another book that makes empty promises of things that you can change on the outside that will help. (they might, but short-term only)</p>\n<p>Do I recommend this book? Yes, I do. Not necessary a strong recommendation, but if you are an experienced reader that can skip though the repetition than I think you will do just fine.</p>\n",
      "date_published": "Fri, 06 May 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/instant-feedback-is-important-when-unsure/",
      "url": "https://vladiiancu.com/post/instant-feedback-is-important-when-unsure/",
      "title": "Instant Feedback is important when unsure",
      "content_html": "<p>A small lesson I've just been reminded of: When a user is unsure, it helps a lot to receive instant feedback. Usually, on the web this means instant visual feedback whenever possible.</p>\n<p>Here's how I got the reminder. It was a normal, yet busy day. Half of it already gone. I just noticed that our cat was not as active as he usually is. Basically who was sleeping all day long. Which is unlike him.</p>\n<p>The cat exhibited an unusual behavior. I found myself in a new situation where I was unsure of what was happening. I went near him and started petting him, still unsure if anything is wrong or not. In about 3 seconds he started purring. That's when I knew that everything is fine, and I should not be worried.</p>\n<p>A similar situation can happen to any user when browsing a website or when using an app. He might find himself in a different situation to which he is accustomed to. In his journey, you should pour some time to research where are the points where this might happen. And introduce this &quot;instant feedback&quot; element. Or reinforcement.</p>\n<p>This way you will make it much easier for him to continue.</p>\n",
      "date_published": "Sat, 23 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/the-change-directive-podcast/",
      "url": "https://vladiiancu.com/post/the-change-directive-podcast/",
      "title": "The Change Directive Podcast",
      "content_html": "<p>I started out rambling about stuff such as 'What am I doing on this planet?'. The <a href=\"/post/excited-for-new-projects-and-plans/\">new project plans</a> post goes into greater detail so make sure to read that as well to get a better sense of things. After that, I started a couple of posts going into specifics about why each of those topics where on my mind. Why I considered them important.</p>\n<p>But the end result was quite blurry. For you and me. It's time to unravel the mystery. Or, better yet, to make my ideas and actions more precise.</p>\n<p>What do all these posts indicate? The answer: Yet another podcast!\nWhat is the name of the podcast? Change Directive.</p>\n<p>The format of the podcast will be a two-person interview.</p>\n<h3>What's the topic? Who will be invited in this podcast?</h3>\n<p>The main topic will be #career-switch. People who have, at one point, decided to make a change in their life and to pursuit their passion. To follow their heart. It will be about people who quit their job as accountants and became entrepreneurs opening up a small coffee-shop.</p>\n<p>Or people who simply said &quot;I am ready to start over and do something I care about&quot;, after years of working in a different industry or role. I'm also looking for young people who maybe graduated from law school but decided to take a hard turn and started building wood houses. If there was a significant <strong>change</strong> in your career I want to hear about it. The good, the bad and everything in between.</p>\n<p>I was, and continue to be, inspired by people who have demonstrated the courage to take risks and to take a leap of faith in doing something they love.</p>\n<p>In addition to this, together with the <a href=\"/tag/women-in-tech\">#women-in-tech</a> topic, I'm hoping that sometimes I will be able to hit two birds with one stone. Invite someone that has made a career switch who is <strong>also</strong> a woman working in the tech industry.</p>\n<h2>What's the purpose of this Change Directive podcast?</h2>\n<p>Life is too short. So maybe all we need is a little push. A little <em>inspiration</em>. That's the main purpose. To inspire someone else to make a decision in the right direction.</p>\n<p>But we also need <em>guidance</em>. Hearing the story of others can be a source of inspiration and a source of <em>knowledge</em>. How did they do it? What should I think about? What should I avoid? Who can I reach out for help?</p>\n<h3>But, Vladi, you are an introvert!?</h3>\n<p>Yes! That's true. It's also true that I don't possess a native storytelling talent. So why would I do a podcast? Isn't it crazy? It is, a little.</p>\n<p>However, while storytelling is not my strong suite, I do have a particular talent that might be good for this: listening. I love listening to people and discovering their stories. I'm hoping that with a bit of work and practice I will be able to be a decent host.</p>\n<h3>So you really are serious about this?</h3>\n<p>Indeed, I am! I'm doing this for sure. I haven't got the slightest idea about equipment, process or anything else. But I will learn.</p>\n<p>Still not convinced? I even bought the changedirective.show domain! If that doesn't <em>show</em> how serious I am, I don't know what does!</p>\n<h3>So, what now?</h3>\n<p>If you reached all the way down here, thank you for taking the time! You can help me by recommending this article to someone.\nYou can also help me by talking with people who might fit the description from above. Put me into contact with them.</p>\n<p>Or put them into contact with me. How can anybody reach me?</p>\n<ul>\n<li>You can write a good old-fashioned email using this address: me @ vladiiancu.com;</li>\n<li>There's my <a href=\"https://twitter.com/vladiiancu\">@vladiiancu</a> Twitter account;</li>\n<li>Via <a href=\"https://linkedin.com/in/vladiiancu\">my LinkedIn</a> is another way to go;</li>\n</ul>\n<p>Lastly, you can reach me using my phone number if we know each other well enough.</p>\n<p>When the first episode will be live, I will update this post with all the details. See ya!</p>\n",
      "date_published": "Thu, 21 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/reasons-for-the-agency-life-topic/",
      "url": "https://vladiiancu.com/post/reasons-for-the-agency-life-topic/",
      "title": "Reasons for the &quot;Agency Life&quot; topic",
      "content_html": "<p>The &quot;origin&quot; story comes from asking myself big hard questions and not being able to answer them. You can read more about this <a href=\"/post/excited-for-new-projects-and-plans/\">here</a>.</p>\n<p>Things are starting to evolve a bit. From just an idea to... an idea and a plan. The other two topics mentioned in the origin story seem to be going in direction where the written word is not the main medium. This topic however, I think it will remain a classic.</p>\n<p>Come on Vladi, stop rambling. Why did you decide to write about this particular topic?</p>\n<p>Sorry about that. I sometimes get lost in my own freeway of thoughts and ideas.</p>\n<p>I think the reason is quite simple. It's all about my history and experience: along the years I've worked with many agencies. I've worked at some agencies. And I even owned an agency.</p>\n<h3>Diversity</h3>\n<p>One strong point is that I have been lucky enough to work at different types of agencies:</p>\n<ul>\n<li>performance media (PPC)</li>\n<li>web design &amp; development</li>\n<li>SEO</li>\n<li>branding</li>\n<li>CRO &amp; CVO</li>\n</ul>\n<p>Different domains, different type of clients, different type of work. Bringing results was the only thing in common between all of them.</p>\n<p>I can tell you from the start that working in a company which offers services to multiple clients is quite different from working at 'single-client' type of company.</p>\n<p>The skill set required for the same role (be it project manager, web developer, graphic designer etc.) is also different. (I think this topic would go well into a separate post.)</p>\n<p>Ok, so this is it. These are the reasons. I think that sharing ideas such as these might prove beneficial for students looking to get their first serious job. Or for people looking to make a career switch or a &quot;standard&quot; change of job. Whatever the use case, the mantra is the same. If it provided value for a single person out there, then mission accomplished.</p>\n",
      "date_published": "Wed, 20 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/my-reason-for-the-women-in-tech-topic/",
      "url": "https://vladiiancu.com/post/my-reason-for-the-women-in-tech-topic/",
      "title": "My reason for the &quot;Women in Tech&quot; topic",
      "content_html": "<p>I looked at myself in the mirror and had no answer to the question: &quot;What is your purpose in life?&quot;</p>\n<p>I still don't have an answer. But now, I have another attempt to get out of my comfort zone and do something that aligns with the way I see the world.</p>\n<p>It has recently come to my attention that 62% of the public companies listed on the Bucharest Stock Exchange have at least one woman in a leadership position. <a href=\"https://www.amcham.ro/business-intelligence/deloitte-pwnr-report-romania-reports-progress-in-leadership-gender-balance.-62-of-the-companies-listed-on-the-bucharest-stock-exchange-have-women-on-boards-and-65-of-them-in-the-executive-committees\">Source</a></p>\n<p>The bigger picture is that Romania has a very healthy #balance of men and women in top roles as well as gender-pay equality. At least statistically.</p>\n<p>Again, the same statistics tell us that, in Europe, we are one of the top 3 job markets from this equality point of view. Which makes me really happy and proud.</p>\n<p>However, things are not so bright when it comes to other countries.</p>\n<p>With the rise of remote working, I believe that opportunities are higher than ever for anybody that's passionate to join the tech industry. That's why there's the other topic of <a href=\"/tag/career-switch\">#career-switch</a>.</p>\n<p>A word that should be erased from our dictionary, or at least demoted to 'archaic' should be this one: <a href=\"https://en.wikipedia.org/wiki/Mansplaining\">Mansplaining</a>.</p>\n<p>This is the goal. Through the power of education and examples to show that women are in no way less capable than a man to work in the tech industry. Or to lead a team of developers. Or to be the CTO or CEO of a tech company.</p>\n<p>Surely, there are others out there who promote similar ideas. But that shouldn't stop me or anybody else from taking action. Our voices should be heard. Another platform can't hurt.</p>\n<p>One more thing to add regarding this. The other tag for this post is #balance and this is not by chance. What it actually means for me goes to the root of this #women-in-tech topic. Which is not that the women are better. It's not that we should &quot;give women equal chances&quot;. It's much more simple than that:</p>\n<blockquote>\n<p>The gender should be completely irrelevant when talking about work, roles, careers, responsibilities etc.</p>\n</blockquote>\n<p>These topics are close to my heart. Therefore, they matter. And that's the only reason somebody should need to do something about it.</p>\n<p>This is me, doing it.</p>\n",
      "date_published": "Fri, 15 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/excited-for-new-projects-and-plans/",
      "url": "https://vladiiancu.com/post/excited-for-new-projects-and-plans/",
      "title": "Excited for new projects and plans",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65d24d4fd5974e0016774526\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>The TV was on. Someone was zapping. Main topics: inflation, recession, Ukrainian War and, of course, teleshopping.</p>\n<p>Scrolled through social media. Main topics: inflation, elections with extremists, war, Covid and, of course, ads. Plus someone arguing with someone else.</p>\n<p>On the phone with my family: bad weather, bad health, inflation.</p>\n<p>Great topics, right?</p>\n<hr>\n<p>This wasn't even a special day. I think that most people go through this each and every day.</p>\n<p>My TV usage is really low (some hours per month). My social media usage is under self-monitoring and software imposed time limits. And I don't enjoy that much talking on the phone. So the amount of exposure is reduced compared to the average, I presume.</p>\n<p>Even so, it can still be hard to have anything else on your mind. Yet this is the most important thing that one can do.</p>\n<blockquote>\n<p>What you focus your attention on, determines the course of your day, week and life. -- myself</p>\n</blockquote>\n<p>Side note, I have an irregularly updated collection of quotes gathered in my <a href=\"https://github.com/vladiiancu/Brain/blob/main/Inspiration.md\">Public Brain</a> (this sentence sound really weird, right?). They are all quotes that I came across personally. Nothing from articles, social media posts etc.</p>\n<h3>Ok Vladi, so what the heck do you focus on?</h3>\n<p>Hold on, I will get there. I was just trying to make my point with some examples.</p>\n<p>My focus goes to a lot of things. Some days I find myself wasting time thinking about my currently crappy financial situation and adjusting budgets.\nMaking budgets is a fantastic thing. Might be boring, but useful.</p>\n<p>But I don't update budgets every day, and it doesn't take up that much time. So I usually read a book (check out the <a href=\"/tag/books\">books section</a>), tinker with the computer, play around with some programming language, read stuff online about e-commerce, watch YouTube tutorials on various subjects such as: science and history and I also listen to music.</p>\n<p>So there's a lot to choose from, right? But lately, I kept wondering about my journey. About myself. My role in this world.</p>\n<h3>Asking the big questions, leads to making big changes</h3>\n<p>I have three new topics I will write about and be more involved in:</p>\n<ul>\n<li><a href=\"/post/reasons-for-the-agency-life-topic/\">agency life</a></li>\n<li><a href=\"/post/the-change-directive-podcast/\">career switch</a></li>\n<li><a href=\"/post/my-reason-for-the-women-in-tech-topic/\">women in tech</a></li>\n</ul>\n<p>Each topic will have a dedicated page with my reasons. (<s>Hopefully I will remember to update the internal links</s> I added internal links).</p>\n<p>These topics will be found as tags on this blog. Naturally, they will appear alongside the others on the footer of the homepage (as per the current blog design).</p>\n<h4>How seemingly different topics connect and make more sense</h4>\n<p>Before making updates to this tags list, I was going through the old ones.\nCurrently, the list is: web, story, domain intersection, remote, e-commerce, dev, balance, apps and books.</p>\n<p>I believe that each new topic/tag that I will introduce is somehow deeply connected with one of the existing ones.</p>\n<p>#agencylife is connected with #web, #e-commerce and #dev.\n#careerswitch is connected with #domain-intersection and #remote.\n#womenintech is connected with #story and #dev.</p>\n<p>What does this mean? Not completely sure but my guess is that this means that it something I should be doing and focusing more on. Narrowing the topics a bit, going into more depth can be more rewarding.</p>\n<p>More importantly, it can be of much more use to somebody.</p>\n<p>And I can assure you, the plans I have in my mind right now will take me clearly outside my comfort zone. And yet, I am not afraid.</p>\n",
      "date_published": "Thu, 14 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-makes-a-developer-stand-out/",
      "url": "https://vladiiancu.com/post/what-makes-a-developer-stand-out/",
      "title": "What makes a developer stand out?",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65d0ee790247150016d8239b\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>It took me a while, but I think I finally got it. Actually, I understood this a while back, but I was unable to put it into words.</p>\n<p>Since I couldn't properly express my thoughts, the surrounding developers where unable to comprehend exactly what I wanted from them. And it made life a bit more complicated.</p>\n<p>I'm happy to report that I've found a way, and it's actually a <strong>single magic word</strong> that describes the difference between legions of developers and a good one.\nIt's not necessarily about hard skills; so it's <em>not</em> about:</p>\n<ul>\n<li>algorithm knowledge</li>\n<li>data structure knowledge</li>\n<li>the quality of tests written (if any)</li>\n<li>what language you use</li>\n<li>what framework you work with</li>\n<li>what past projects you worked on</li>\n<li>what names you choose for variables</li>\n</ul>\n<p>They are important, of course, but the one true thing that makes a difference, for me at least, is... <strong>ownership</strong>. Taking ownership of every project you are assigned to. Heck, take ownership of any task you are assigned to. Or that you simply offer to do.</p>\n<h2>What happens when you take ownership?</h2>\n<ul>\n<li>First, you stop making excuses.</li>\n</ul>\n<p>You have a project to do with tomorrow being the deadline. The day before the deadline the project manager asks if you are going to finish it in time. If your answer is &quot;no, because I need some info from the client&quot; or maybe &quot;no, because someone has to decide what text should go there&quot; then you have an ownership problem.</p>\n<ul>\n<li>Then, you create the best solution.</li>\n</ul>\n<p>One more important difference a developer that takes ownership makes is that at any point during the project, he or she will put things into perspective. Asks the serious questions such as: Why are we doing this? What is the purpose? How can we make this even better? Are there other alternatives? How does this particular work impact other projects or other existing structures?</p>\n<p>These questions are the gate-openers. They will provide insights that will allow you to create a more robust solution.</p>\n<ul>\n<li>Finally, you anticipate needs and provide assistance.</li>\n</ul>\n<p>The same type of question as above will offer opportunities to improve the original project, or to come up with new ideas for new projects, maybe even generating new business which the customer (internal or external) will benefit from. It's a win-win-win situation and I love those.</p>\n<h3>&quot;I don't take ownership and I'm doing fine&quot;</h3>\n<p>You might currently be a developer who doesn't ask any questions about the task. Who receives a set of specification and implements them accordingly. If the client or the project manager or, anybody really, asks you why is this project not running correctly, and your go-to answer is &quot;because those were the specs&quot;, then you are one of those developers that don't take ownership.</p>\n<p>&quot;But I'm doing great&quot; -- you say.</p>\n<p>The reason is purely coincidental. It relates to other external factors that you have no control over. Factors such as the job-market which is still very hot for developers. Since there's a lack of manpower, some companies will take anybody that manages to write two lines of code.</p>\n<p>But this will not go on forever. When the demand lowers, or the supply grows - what then? How easy will it be to find new projects or companies? Will you get any recommendations? Will you be happy when looking back and thinking of the impact you did or did not make?</p>\n<h3>But I can't ask these type of questions</h3>\n<p>Some find themselves in a position where asking these &quot;gate-opener&quot; questions make their job difficult. It might be a manager that frowns upon having people using their brain. Or a company policy which states something like &quot;just take the money and shut up&quot;.</p>\n<p>If you find yourself in a similar situation, I've got some bad news.\nIf you tried to ask questions about something you had to do and were ignored or received a vague answer, you have a problem.\nIf you tried coming up with proposals that weren't even discussed, you have a problem.</p>\n<p>And the problem isn't you! It's the company/manager whoever else is responsible. It's really time to make a change.</p>\n<p>I'm always looking for talented developers who take ownership. So, reach out!</p>\n",
      "date_published": "Wed, 06 Apr 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-shoe-dog/",
      "url": "https://vladiiancu.com/post/impressions-on-shoe-dog/",
      "title": "Impressions on &quot;Shoe Dog&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65d0ea278003120016e4e557\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>This is actually a good book. It's structured pretty well, and the story flows very nice, having a good pace. It's pretty easy to read and all the running references aren't hard to understand. The storytelling had moments where it captivated me.</p>\n<p>So here are some of my thoughts:</p>\n<ol>\n<li>Pleasantly surprised to see the &quot;right person on the right seat&quot; concept mentioned and put into action.</li>\n<li>As atmosphere goes, it introduced you pretty good in his life, surrounding circumstances and all. But very little on the outside world. A few mentions here and there about the war, about a recession and all that but quite limited. Perhaps it is me who is focused much more on this aspect considering the current events (Russia attacking Ukraine but saying that in fact it's not a war, just a &quot;special military operation&quot; or some fucking bullshit like that). So I would have liked to see more of how the outside events influenced any decisions/growth of Blue Ribbon/Nike.</li>\n<li>There were a lot of times while reading when I wondered... why is Phil Knight CEO? He certainly had a lot of moments where he could do better, right? Strong attributes were:</li>\n</ol>\n<ul>\n<li>Taking decisions! When time came, he took a decision, firm and convinced. No backtracking, no second guessing (at least publicly I feel).</li>\n<li>His speeches! I think that some of them were key moments where it helped him a lot.</li>\n<li>His pursuit of not making a simple business or doing stuff for money!</li>\n</ul>\n<p>What I didn't admire about him were moments where he himself recognized, that he was very similar to his father (lack of communication, lack of engaging with employees).\nIt seemed he also had a lack of work/life balance in terms of time spent with family and such. And while he did keep his health and his running habits (for the most part), those around him were not inspired at all. And it's a shame.</p>\n<ol start=\"4\">\n<li>Finally, many times during the book, I had a recurring thought (oh, how lucky!). Very pleased to have found that he himself acknowledges that at the end of the book. The persons he met along the way, the persons he was introduced to along the way, various events and such... luck/faith whatever you want to call it played a big part and without it, there would be no Nike right now.</li>\n</ol>\n<p>This is it. A book about a man who had a dream, a vision and passion and pushed forward, overtaking all obstacles that came his way. And there were many! I still find it difficult to grasp how many years it took for the company to become &quot;profitable&quot;. A lot of years they mentioned that they weren't broke, but they didn't have any money even though they were selling products like crazy.</p>\n<p>One more thing that stuck with me was this: Buck wondered how could he create something that will impact the world, if he doesn't know or understand the world? For a 24-year-old that question got him really far.</p>\n<p>PS. a person that I would like to get to know better is actually Hayami.</p>\n",
      "date_published": "Sat, 12 Mar 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/repeated-events-lead-to-pondering-questions/",
      "url": "https://vladiiancu.com/post/repeated-events-lead-to-pondering-questions/",
      "title": "Repeated events lead to pondering questions",
      "content_html": "<p>Every time I notice similar ideas repeated in a short time-span I try to take notice.</p>\n<p>It's either something from within, like an idea that's trying to get out of my subconscious, or from the outside, like a message I should receive. Yes, it's a bit strange, but let's move on.</p>\n<p>These past few days, I spotted something like this.</p>\n<p>First, it all started from a funny conversation at work. Long story short, a colleague of mine reached to this conclusion: <em>If I had the ability to clone myself, I would do this:</em></p>\n<ul>\n<li>one clone would learn</li>\n<li>one clone would work</li>\n<li>one clone would play</li>\n<li>the original would sleep.</li>\n</ul>\n<p>I noticed that the first &quot;task&quot; for one of the clones was learning. I appreciated that. Secondly, we all had a laugh about it. I especially took note of the task for the original.\nLater that day, I played the same game. If I had the ability to clone myself and all the clones would be interconnected, what tasks would I give my clones?</p>\n<p>Shortly after I decided that, actually, the main focus would be on the original. What would &quot;the original&quot; do in this scenario? How would his life look like? That's the intriguing part.</p>\n<p>So I've done that and even reached a scenario that I'm happy with. For now at least. Then, late at night reading a book, I came to this line:</p>\n<blockquote>\n<p>&quot;Who are you? And, more importantly, who could you become if you would become all that you could?&quot;</p>\n</blockquote>\n<p>Well, I'm paraphrasing a bit (and translating so have mercy, please).</p>\n<p>Do you notice any similarities? I see the same theme and overlapping ideas. That's why it made me conscious that I should figure some things out. And I believe it's a good exercise to be practiced from time to time.</p>\n<p>These would be the starting questions:</p>\n<ul>\n<li>Where am I now?</li>\n<li>Where do I want to go?</li>\n<li>Am I currently on the right track, both as direction and momentum? If not, what needs to be changed?</li>\n</ul>\n<p>I don't feel that there's a strict order here. For me, it was easier to answer the first one. Now I'm trying to figure out the answer to the second question. I am also trying not to rush things out. To be precise, clear. This is not something ephemeral. It can have deep consequences, so it needs special attention.</p>\n<p>The only risk is not reaching any conclusion after some time. Or worse, reaching one conclusion this day and another tomorrow. But, when you know the risks you can avert disaster.</p>\n",
      "date_published": "Tue, 15 Feb 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/flip-side-of-a-reading-challenge/",
      "url": "https://vladiiancu.com/post/flip-side-of-a-reading-challenge/",
      "title": "Flip side of a reading challenge",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65ccfb9e49352e0016a7f10d\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Many years ago, I started using this feature from <a href=\"https://www.goodreads.com/\" target=\"_blank\" rel=\"noopener noreferal\">Goodreads</a> called &quot;Reading Challenge&quot;.</p>\n<p>For those of you who don't know it, you can <em>set a number</em> that represents the number of books you intend to read in a year. So year after year, each January I would set that target.</p>\n<p>Since the beginning I had a rule: The target for the current year should be the target from the previous year + 1.</p>\n<p>The system worked. It helped me stay on track and sometimes push me a little when I needed it.</p>\n<p>Now, I'm starting to feel too much pressure. There's one side of me that wants to read (for pleasure, for work, for improvement, for education). And there's another part of me that wants to achieve every goal and objective.</p>\n<p>Last week I finished a book, added it and marked it as read and then quickly checked to see where I was at in the Challenge. The app will even let you know at any point in time how many books you need to read in order to reach your goal by the end of the year.</p>\n<p>This morning was a bit rough. I wasn't really in a mood to read something heavy. Plus, there was this nagging voice reminding me of the challenge. It also said it was best to finish what I'm currently reading so that I can move on to the next. And that's when it hit me.</p>\n<blockquote>\n<p>The moment when reading a book starts to become another item on your to-do list is a warning sign</p>\n</blockquote>\n<p>This was the moment I had to change something. The moment when reading a book starts to become another item on your to-do list is a warning sign.</p>\n<p>The sign simply says that my current path will not lead me anywhere good. So I've made two small decisions:</p>\n<p>One, is to change the rule of my system. This means I will not be changing the yearly target anymore. It will be capped at the current number.\nSecond, I will allow myself the possibility of not achieving my target this year.</p>\n<p>That's it. Why was this an easy decision to make?</p>\n<p>Because, by now the system has worked it magic and helped me change some of my habits. The changes run deep. And by still keeping track of things, I will be able to determine if I ever go of the rails and do something about it before it's too late.</p>\n",
      "date_published": "Tue, 18 Jan 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/why-our-behaviours-change-when-we-are-healthy-instead-of-sick/",
      "url": "https://vladiiancu.com/post/why-our-behaviours-change-when-we-are-healthy-instead-of-sick/",
      "title": "Why our behaviours change when we are healthy instead of sick",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65ccf5edc920920015f77c94\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>One of the recurring thoughts I have is this: Why do people behave in a certain way with themselves when they are sick and then differently when they feel good?</p>\n<p>When they are sick, they take more care of themselves, they pay more attention to what they eat, and they rest more.</p>\n<p>But when they feel good again, most of that good behavior vanishes.</p>\n<p>If this happened once per lifetime I would be capable of understanding this situation better. But in most cases, the leading cause of suffering for a person is its bad habits. So after applying some temporary fixes, returning to those bad habits doesn't seem quite logical. Even more so when this repeats itself multiple times in a lifetime.</p>\n<p>Note that this has happened to me as well. And probably, for some things, it still does, but I am on a journey to change that.</p>\n",
      "date_published": "Mon, 17 Jan 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-will-you-lose-if-your-devices-broke-down/",
      "url": "https://vladiiancu.com/post/what-will-you-lose-if-your-devices-broke-down/",
      "title": "What will you lose if your devices broke down",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65971b2d6b3898001613c8ed\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Broadly speaking, most of us have at least two devices that we use to access our content, data and accounts. So in case one of our device is lost, broken or worse, it's easy to continue our activity as close to normal as possible.\nBut there are some things we need to do to ensure this.</p>\n<p>Moreover, have you considered what will happen if both of your devices have major issues at the same time?</p>\n<p>I grant you that the chances for that to happen are somewhat low. But I still think it is a good idea to revise your plan annually. Or have one at least. Since more and more of our data and our lives is going digital.</p>\n<p>Photos and videos, emails, messaging, bank, money, payments and orders, documents, digital projects and more. All of them can be lost in a second if we are not careful.</p>\n<p>Ah, and then there are some caveats. Let's take the &quot;I've lost my phone&quot; as an example. If you have &quot;Find my device&quot; (Android) or &quot;Find my phone&quot; (iOS) enabled, you will have a chance of figuring out where it is.</p>\n<p>But let us not fool ourselves:</p>\n<ul>\n<li>First, each protective measure that we take can have a significant privacy risk that can be reverted and used against us.\nGoing forward with the phone example, if access to your account is not secure enough, others can use the same functionality to track your whereabouts, right?</li>\n<li>The system is not foolproof. In case of theft, there are things that can be done to render your action ineffective.</li>\n</ul>\n<p>This applies to <em>any measure</em> you can think of.</p>\n<p>So, here's the general idea.</p>\n<ol>\n<li>\n<p>Try to simulate what would happen if you have one device but not the other. The easiest way is to put your phone in another room, turn of internet access for it and use your other device like you would normally. And then see when and why you would actually need to go to your room and use your phone. Most common case here is related to authentication. Two-factor authentication to be more precise.\nSo, if you try and login into sensitive accounts, you would receive on your phone a notification, an SMS, or a code provided by the app. So what happens if you can't access your phone? What are your backup strategies in those cases?</p>\n</li>\n<li>\n<p>Try to simulate the reverse. You have your phone, but your laptop/PC/tablet is broken. What accounts will be difficult to get into. What data might not be available to you anymore?\nSpot these problems and figure out a way to prevent them from becoming a nuisance.</p>\n</li>\n<li>\n<p>And now for the hard part. Your phone is lost, and your other device is broken. Or you are in a different country or whatever. What now? How would you authenticate into your most critical accounts? Also, do you know which are your most critical accounts? Do they at least have a strong password? Food for thought.</p>\n</li>\n</ol>\n<p>Some other things to keep in mind:</p>\n<blockquote>\n<p>If your system is too easy, it's bad.</p>\n</blockquote>\n<p>Let's go with a simplified scenario. All of your important stuff is only on your phone. And your entire phone is backed up to the cloud each day. And because you use your phone daily you want to make it very convenient for you to use it. So you set up 1234 as your unlock code or something like that.\nNow what? The phone broke down, you get another one, you enter your credentials (username and password but no 2FA because...convenience) and restore your backup, and you are good to go, right?</p>\n<p>Wrong!</p>\n<p>The simplified scenario tells me only one thing. You have a single point of failure in your entire digital life, and it's very weak.\nIt's almost like you have a place of your own, and you use a key to enter your phone. The key sits somewhere around the entrance physically. You take it, use it to enter and leave the key out. For anybody paying a little attention means they can get in as well. They can destroy all, remove all or impersonate you easily.</p>\n<blockquote>\n<p>If your system is too complicated, you might not cover all scenarios</p>\n</blockquote>\n<p>This applies to people who have security and privacy as top priority as opposed to convenience. The combination of encryption, strong passwords, offline authentication, backup codes and others can lead to you not covering all your basis. There's also the case of people not preferring cloud backup. Which adds a bit of complexity but if they are up for it, great. Make sure though that the hassle is worth it.</p>\n<p>If you had to choose between too easy or too hard, I would go with the second option.</p>\n",
      "date_published": "Fri, 14 Jan 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/how-to-stick-to-your-plans/",
      "url": "https://vladiiancu.com/post/how-to-stick-to-your-plans/",
      "title": "How to stick to your plans",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/65945ebec316a800176f6cc3\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>In the <a href=\"/post/making-plans-and-promises-for-the-new-year-what-not-to-do/\">previous article</a>, I wrote about having a system in place for your life objectives that are usually set around New Year's Eve.</p>\n<p>The system provides a macro view on all of them, and it helps with setting them up clearly so that you will know better what needs to be done.</p>\n<p>Still, even under these circumstances it is still too easy for life to just happen and loose focus.</p>\n<blockquote>\n<p>&quot;It is still too easy for life to just happen and loose focus&quot;</p>\n</blockquote>\n<p>In my opinion, the reason we end up breaking our own promises is because we try to do too many things at once. (the very definition of not having focus, right?)</p>\n<p>Most of the time, each objective that we have needs some sort of change to happen. And, as we know oh so well, humans are creatures of habits.</p>\n<p>So where do we end up?</p>\n<p>We try working on a number of different things, each requiring something from us to be done differently than what we are used to. And if we are talking about those big, bold objectives, the changes are likely to influence your routine as well.</p>\n<p>Changing your routine is tricky. So why do we try making multiple changes in a short period of time?</p>\n<p>This is what usually happens in January, right? Many people promised to be healthier, so they make a subscription to the gym. They also promise themselves to maybe buy a new car. So they start by putting some money aside. And a couple of more items.</p>\n<p>Why everything starts failing in February? Because the way we implemented all of these changes is not sustainable.</p>\n<p>Buying a subscription to the gym is the easy part. Showing up at the gym is a bit harder. Showing up three times a week can be really difficult.</p>\n<p>You need two things for really difficult stuff. Some determination and a bit of planning.</p>\n<h2>Determination is key here</h2>\n<p>The thing is that our determination reserves can be depleted quite fast. When you lack determination, you cannot continue doing things by sheer will. This is where all the planning helps. Making small changes, small objectives lead to seeing results. Achieving small goals, achieving small results, boosts your confidence and determination.</p>\n<p>As a bonus, you can do various things that will help to lower the need for sheer will to do something.</p>\n<p>We find ourselves with a limited resource - determination. And yet many choose to not use it wisely. Without focus, you start spending determination on all of your objectives at once. Once you emptied the tank, you stop doing things. Because you stopped so early, there was not enough time for the changes to be implemented or to achieve any kind of results. Therefore, you end up demotivated. And thus the cycle continues.</p>\n<blockquote>\n<p>&quot;We find ourselves with a limited resource - determination. And yet many choose to not use it wisely&quot;</p>\n</blockquote>\n<p>Having focus means concentrating your resources on one thing. This ends up making permanent changes in your life. Your daily routine might change. You might develop a new habit etc. These changes will start making their small contribution daily towards your objectives.</p>\n<p>After some time passes, this daily contribution will be made without consuming your determination pool. As such, you are now ready to use that resource and focus on a new objective. And this is why I believe my system works.</p>\n<p>What are your thoughts, my dear anonymous reader? Write down your comment below.</p>\n",
      "date_published": "Wed, 12 Jan 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/making-plans-and-promises-for-the-new-year-what-not-to-do/",
      "url": "https://vladiiancu.com/post/making-plans-and-promises-for-the-new-year-what-not-to-do/",
      "title": "Making plans and promises for the new year - what not to do",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/6591c3c6b474d3001656a369\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Generally, the time between Christmas and New Years is spent idling by most people.</p>\n<p>Many people from my circle of friends use this time to do things they have been putting off for a long time. Many others, in addition, also use this period to look back and see what went well and what didn't. This can happen on a personal level or a professional level.</p>\n<p>Regardless, the most common theme is to set out objectives for the next year. If your list of promises for the next year includes things like:</p>\n<ul>\n<li>Next year I will be healthier</li>\n<li>Next year I will earn more money\netc., let me tell you, you are not that special :)</li>\n</ul>\n<p>The first thing that you can do is set some <a href=\"https://en.wikipedia.org/wiki/SMART_criteria\" title=\"read about SMART on Wiki\" target=\"_blank\" rel=\"noopener\">SMART objectives</a>.</p>\n<p>Doing this helps you achieve clarity. That clarity can help you plan better. Breaking one item into smaller steps. These steps should also use the SMART criteria.</p>\n<p>Basically, it makes things more manageable. Therefore, your chances of success improve dramatically.</p>\n<h2>The one thing most of us are missing: FOCUS</h2>\n<p>What I really wanted to share with this article is the second step you can do in the right direction. The next level. How to avoid the most common mistake usually made on January of each year.</p>\n<p>The SMART criteria I mentioned earlier works for each individual item on the list. But it doesn't help at all with the entire list. Therefore, you need a macro view of all the items on the list, where you are now, where you want to go and what resources you have available.</p>\n<p>This macro view can be achieved using a system. So here's mine.</p>\n<ol>\n<li>\n<p>Add each item from your objectives lists into a category.</p>\n<ul>\n<li>The maximum number of categories is around 6.</li>\n<li>These categories can be: social, finance, education, health, family</li>\n</ul>\n</li>\n<li>\n<p>You might end up with only one or two categories, or with all of them. Choose the top 2 most important ones.</p>\n<ul>\n<li>Determine the most important ones by thinking which of them need more of your attention this year.</li>\n</ul>\n</li>\n<li>\n<p>For each top category, choose one bold objective.</p>\n<ul>\n<li>It should be inspirational.</li>\n<li>It should be somewhat achievable.</li>\n<li>Usually it means that it needs some time until it is completed (6-10 months).</li>\n</ul>\n</li>\n<li>\n<p>If you are left with other bold objectives on the list, put them in the backlog.</p>\n<ul>\n<li>Any remaining bold objectives should be put on paused.</li>\n<li>Keep them on a secondary list in case you finish one of the first ones earlier.</li>\n</ul>\n</li>\n<li>\n<p>For each category, have two or three other objectives set.</p>\n<ul>\n<li>These should not be very bold.</li>\n<li>They must be achievable.</li>\n<li>The necessary time-frame for each should be around 2-4 months.</li>\n</ul>\n</li>\n</ol>\n<p>Great job!</p>\n<p>Now you find yourself in a perfect position. You have a couple of bold objectives set out for the entire year improving two different areas of your life. You also have some other smaller objectives to help you maintain momentum and to help you maintain or have a happy life.\nEach of these have been set using the SMART criteria. This means that they are measurable and clear. They have a time-frame etc.</p>\n<p>You can now start working on them.</p>\n<hr>\n<p>So you have properly set out your plan and objectives. Want more? Check out part II of this system and see <a href=\"/post/how-to-stick-to-your-plans/\">how to stick to your plan</a>!</p>\n",
      "date_published": "Mon, 10 Jan 2022 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-traction/",
      "url": "https://vladiiancu.com/post/impressions-on-traction/",
      "title": "Impressions on &quot;Traction&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad70aeaea5710012cde703\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>I have mixed feelings about this book and none of them related to the fact that it was a mandatory reading.</p>\n<p>The mixed feelings come from the fact that it seems a book written to help the people and the company behind it to sell their services.\nIt's not pushy in any way. It's subtle but I still felt it.</p>\n<p>Ignoring that, here's what I think.</p>\n<ol>\n<li>\n<p>It's useless if you read it once from start to finish and put it in the bookshelf.\nI've chosen to read it from top to bottom, make some notes here and there and then restart it. While restarting it, I will pause at certain points and perform various suggested actions.\nSome of these actions might take a while. When they are done I will resume the book.</p>\n</li>\n<li>\n<p>It's useful for both people that are new to leading and management but also for those who have been doing this for a while.\nThe book reveals that after using this EOS system for a while you learn to prioritize outstanding issues or dismiss them.\nThe key thing here is dismissing stuff I think. This long list of things that &quot;we should do some day&quot; adds unnecessary pressure. It also creates this feeling of not having enough time.\nSo learning to dismiss things is valuable. How are going to do that? By knowing what is truly important.</p>\n</li>\n</ol>\n<p>After you prioritize things, all your energy will be focused on a couple of items. This creates progress and momentum.</p>\n<p>Sure there will be bumps on the road. Stretching too thin by adding too many items on the focused list. Or miscalculating the effort required. But as long as, individually and as a group you learn and adapt, then things will be fine.</p>\n<ol start=\"3\">\n<li>The importance of finding the right people.\nThis translates into:</li>\n</ol>\n<ul>\n<li>taking the time when recruiting somebody. The higher the role, the more time is needed both for finding the right fit and for convincing that person.</li>\n<li>firing somebody is just as important. Having people misaligned with the company values should be dismissed. The sooner, the better.</li>\n<li>being cheap with a person already in your team will cost you much more in the long run.</li>\n</ul>\n<ol start=\"4\">\n<li>Structured meetings are good for everybody.</li>\n</ol>\n<p>I used to think that meetings are useless. Waste of time. We don't need them, and we shouldn't have them. That's extreme. The other side of extreme is inviting everybody into all meetings.\nSo common sense and best practice tells me this:</p>\n<ul>\n<li>invite the minimum number of people necessary for that meeting.</li>\n<li>have a clear topic and goal for the meeting.</li>\n<li>communicate any information needed prior to the meeting.</li>\n<li>if you think you need 1 hour, schedule 50 minutes.</li>\n</ul>\n<p>After finishing the book, the process seems quite simple. Then why isn't everybody doing it? The devil is in the details I'm sure. First, lack of practice. Also, let's not forget that this is the business of working with people. Which is not easy.\nNevertheless, the book and the accompanying website offers you the basic tools needed to go through each step in the process.</p>\n<p>It will take time. It will take a lot of it if the team is not disciplined. This is where, most likely, their services would be useful. Keep track of things, keeping things organized and everybody accountable.</p>\n<p>Which, in the end, feels like it's the ultimate goal, right? Define where we want to go. Create a plan of how to get there. And then making sure each and every person is clear on what they need to do, how to do it and be responsible for the outcome.</p>\n",
      "date_published": "Thu, 02 Dec 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/confidence-in-your-answers/",
      "url": "https://vladiiancu.com/post/confidence-in-your-answers/",
      "title": "Confidence in your answers",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad705a833a290014c26ed5\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>When working with clients you always have to work with estimations. If you do them well, your team will be happy.\nAnd your company will run well.</p>\n<blockquote>\n<p>&quot;experience will tell you what info you are missing, but you don't know that you are missing&quot;</p>\n</blockquote>\n<p>Usually, the trick to giving good estimations is a combination of having all the necessary information and experience.\nThe experience will tell you what info you are missing, but you don't know that you are missing. Experience will also offer\nyou a history of similar work and how long it took.</p>\n<p>When it comes to missing information, many times we make assumptions. Some of them are made because we are constrained\nby time. Other times we make them unconscious.</p>\n<p>There are times, though, when we know exactly what information we are looking for. And we have two choices: ask the client\nor find out yourself.\nAsking the client is, most of the time, the preferred choice.</p>\n<p>However, there are occasions when either the client has a really low response-time or simply lack knowledge.</p>\n<p>Last Friday, we were up against needing to know if an Android app (which the client has) does or doesn't do something specific.\nWe could have asked and waited 2-3-4 days for an answer. Or we could have tried and figured out ourselves.</p>\n<p>At first, I came up with a simple test. Choose a specific section, make some specific changes and observe what happens\nin the Android app (or IF something happens). I thought it was good enough.\nMy colleague came to me and said something along the lines &quot;yhea sure, we can do that. But how confident are we that\nthis test gives us a definite answer&quot;. Basically the question was <strong>how confident would we be after we have the results?</strong></p>\n<p>And that was the trigger. The challenge. The &quot;oh, let's see moment&quot;.</p>\n<p>Turns it out she was right. We couldn't have been certain that the results of my tests could have been replicated in other sections or circumstances just as well.</p>\n<p>A couple of hours later, after playing around with Android Studio, sniffing network requests, finding the .apk of\nthe app in question I had the answer. Level of confidence? 100%. Happy moments.</p>\n<p>Even more interesting, for me at least, was that the final answer was actually in opposition with the assumptions I made.\nI wasn't interested in being proven right. It is much better to be able to give a final answer in full confidence,\nbacked with data or tests.</p>\n",
      "date_published": "Sun, 28 Nov 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-grit/",
      "url": "https://vladiiancu.com/post/impressions-on-grit/",
      "title": "Impressions on &quot;Grit&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6ff4aea5710012cde450\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>This book came highly recommended by Maria. For anybody who doesn't know her, Maria is the type of person that after having a clear goal, sooner or later, comes to you and shows you the labor of her work. And you get so mesmerized by the complexity and the depth of her work. You can <em>feel</em> how much work was put into it just by looking at the end result.</p>\n<p>So when a person with so much perseverance recommends a book called Grit — The power of passion and perseverance, the expectation were high.</p>\n<p>And boy, those expectations were met and even exceeded.</p>\n<p>I didn't think that a book that would remind me how important is to rise up again after you have fallen, would make me ask serious questions about how will I raise my own children. And this happened in a moment where I don't have any children. And the wife isn't pregnant. Fascinating stuff.</p>\n<p>Seriously, for a while, it made me realize that parenting is, again, much harder than expected. But I digress.</p>\n<h3>Recommended read</h3>\n<p>Surely I will recommend this book to any fresh parents. But also for anybody living under the illusion that those that succeed &quot;have it easy&quot;. Or they got there only because of pure &quot;talent&quot;.</p>\n<p>Thinking about it, this might be the central theme: <strong>Talent can be found everywhere</strong>. What you do with it matters much more on the long run. It's never enough just to be talented. Putting in the hours, learning from failures and making calculated sacrifices will get you <em>there</em>.</p>\n<p>Equally important, <em>there</em> is different from person to person. As a child, saying that you don't want to practice whatever musical instrument because you will never be Mozart is inherently wrong. You are not training to be Mozart. You are training to be you. To be the best version of yourself.</p>\n<p>Thus, it is important to like what you are doing. Because you can get over those hard moments through passion. And passions comes when you like doing something. Or when you know that your hard work will have a positive impact on someone's lives.</p>\n<p>I also liked the emphasis put by the author, Angela Duckworth, that grit is not the one and only metric. It is not the only measure you should look at. Nor the most important in some situations. But it is worth looking at it when you want to be a growth oriented person. Or when you want to build a team with a growth mindset.</p>\n<p>There is one idea which I disagree with, though. Angela points out a concept from Aristotle that too much or too little of something is damaging (paraphrasing here). And with this I totally agree-with. Perhaps that's the reason I have the tag called <a href=\"https://vladiiancu.com/tag/balance/\">#balance</a> on this blog.</p>\n<p>Because I truly believe that you always need to find the perfect balance for your situation. So where's the disagreement? She continues saying that she has yet to found a person in her study that after hearing the results would say that (s)he wished to have a lower grit. Or that, until now, we haven't reached a point where too much grit leads to something bad.</p>\n<p>Just because we haven't reached that point, it doesn't mean it doesn't exist. Therefore, from where I stand, too much grit can be damaging. It isn't yet quantifiable, maybe. Or better yet, we don't have concrete examples, but we will get there.</p>\n<p>The book left me inspired. Energetic, really, with a feeling of &quot;we can do this&quot;. And, for me at least, it pointed out that I need to be more strict. Keep the fairness, but less forgiving.</p>\n",
      "date_published": "Sun, 24 Oct 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-black-box-thinking/",
      "url": "https://vladiiancu.com/post/impressions-on-black-box-thinking/",
      "title": "Impressions on &quot;Black Box Thinking&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6f9763144300124166fb\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Essentially this book is all about reframing the idea of &quot;failure&quot;. How to change your mindset, how to create a proper environment, how to encourage people to speak up and how to use this system to make incremental changes that lead to marginal gains.</p>\n<p>It is highly connected with the &quot;Growth Mindset&quot;.</p>\n<p>One solid thing about this book is that its author, Matthew Syed, manages to tell short stories very convincing. In fact, I think he might just as well be able to create a fiction book with proper storyline, conflict, drama, heightened emotions and all that.</p>\n<blockquote>\n<p>As children, we embrace failure.</p>\n</blockquote>\n<p>Something that is blatantly obvious after someone points it out is that we are not born with this fear of failure. As children, we embrace it. And this is just something that annoys me. The fact that many of us have to invest a lot of time and energy into <em>unlearning</em> this. Myself included.</p>\n<p>But I keep my hopes up for the next generations. They should be able to skip this process entirely and grow up in an open environment. Where they understand what failure is part of the progress. And resilience is one of the top qualities one can possess.</p>\n<h3>Recommended read</h3>\n<p>While I don't feel it's one of those books that you need to reread every half a year, I still warmly recommend this book.</p>\n<p>The stories from different fields make this a compelling read and easier to digest and understand the current status. And I now have a bigger respect towards the aviation industry. While far from perfect, if all other industries would apply similar techniques the entire world would progress much faster.</p>\n<p>In this end, this is all there is to it. How to learn new things, faster and cheaper. Why? Because this allows for progress. For new, better ideas, projects, services, products.</p>\n<p><strong>What could have the book done better?</strong></p>\n<p>I would have liked more insight into how we can work with &quot;Fixed Mindset&quot; people. And not only that, but to make them see our point of view as well. Instead, the book sort of splits everybody into these two categories, highlights the differences and that's it.</p>\n",
      "date_published": "Tue, 12 Oct 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/giving-up-on-hp-printers/",
      "url": "https://vladiiancu.com/post/giving-up-on-hp-printers/",
      "title": "Giving up on HP printers",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6f2c12c926001251112a\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\nWhen I was a teenager and in my 20s, I was a big HP fan. Still not so sure as to why. But I felt that they make the best printers. Period. \n<p>I didn't like their laptops or other stuff. But when it came to printers, scanners, all-in-ones etc. for me, it was HP and the others.</p>\n<p>For a while, I had a habit of taking a printed piece of paper and guessing if it was printed on HP or not. I had a 100% success rate. Very sure that 70% of that was luck but still.</p>\n<p>In the year 2021 my printing and scanning needs went from 0 to a lot.</p>\n<p>I actually didn't own a printer until recently because, in the last years, I had little use for one. I was better off going to a print center. Things change. Not a problem.</p>\n<p>The true problem was that my parents still owned the HP M1132 MFP. So I wanted to make use of it when I visited them last week. And this is how the story begins.</p>\n<p>The printer works via USB only. So I connected it to my MBP. What were my expectations? To automatically detect and install. Hit the print button and be done with it.\nWhat actually happened? None of that.</p>\n<p>After fiddling around a little and not going anywhere, I took the Google route. After some forums and discussions and various links around the Internet (one of it had me download a 900+ MB file with 'drivers'), I ended up on the HP support website. Finally, some progress.</p>\n<p>So here I am on the official website, where they ask me for the model of the printer. Here you go. I then takes me to <a href=\"https://support.hp.com/vn-en/drivers/selfservice/hp-laserjet-pro-m1132-multifunction-printer-series/3965842/\">another page</a>.</p>\n<p>On this new page, it automatically detects my OS. But not very accurate since it says it's Mac OS 10.5. Using the dropdown options I selected Mac OS 11 which was the latest available. I was actually using v11.5</p>\n<p>So, I download this app called HP Easy Start. I install the app, it scans for printers and... my printer is not supported. It tells me that I actually need to download a <em>different</em> app. I feel at this point that it should have been possible from the self-service webpage to tell me this and not make me go through the process. Anyway, let's move on.</p>\n<p>I arrive on a different webpage on their website which basically tells me I need to go the App Store to download it. And a link to the product page. Again, too many redirections but fine. Was my store connected to an Apple ID? No. So do that as well.</p>\n<p>Finally, the new app called HP Smart gets downloaded and installed. Opened the app which had a big blue &quot;Add a printer&quot; button. Clicked on it. Nothing happened.\nReconnected the USB and restarted the printer. Still nothing. I was already wroth. There was a smaller button at the top called &quot;Set up a new printer&quot; or something similar. Clicked on that, and I was taken to a wizard of sorts. Selected the proper options and waited for the scan to complete.</p>\n<p>It took a while. Didn't find anything. Reconnected some stuff again, tried again with both options. Nothing. No luck, no success. I was out of patience and out of time.</p>\n<p>I was very frustrated with this situation. Basically, older printers lacked support for newer operating systems. And that's not nice, is it now?</p>\n<p>Combine this experience with news that newer HP printers won't allow you to print unless connected to the Internet and linked to an <a href=\"https://support.hp.com/us-en/product/hp-laserjet-mfp-m232e-m237e-printer-series/38099931/document/c06985417\">HP account</a>. Crazy, right?</p>\n<p>And this is the story of how I am not an HP fan any longer.</p>\n<p>ps. I ended up, after a quick research with a Canon that I quite like so far. The strangest thing? On their website there's an app for the printer to be used for various actions. There's a Mac version, there's a Windows version and also Android and iOS. What was missing? A Linux version.\nBut the next day, doing exactly <strong>nothing</strong> except for physically installing the printer and making a few test prints from my phone, the new printer was automatically available on Linux. Hit the print button and done. <em>Exactly</em> as I expected earlier in the story. Fun.</p>\n",
      "date_published": "Sun, 03 Oct 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-zero-to-one/",
      "url": "https://vladiiancu.com/post/impressions-on-zero-to-one/",
      "title": "Impressions on &quot;Zero to One&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6e2c3cef5d0012910cd9\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Before reading this book I was skeptical. Why?\nBecause of the reputation Palantir Technologies has. And also my impressions of the author of the book based solely on what I read about him and various companies and projects.\nNot a lot to go on, right? So I started reading it with an open mind.</p>\n<ul>\n<li>The first interesting idea was the parallel between one-to-many aka globalization and zero-to-one aka innovation.</li>\n<li>A surprising thought was related to competition. How bad is it for everybody involved. Did not expect this from the author.</li>\n<li>The next idea that caught my attention is basically referred to as 'PayPal Mafia'. Behind it is the concept that the people that are part of your team matter a lot. And not only their intelligence or skills. It's important to connect with them. Outside of work as well would be ideal.</li>\n<li>A useful part of the book was towards the end, with a list of around 10 questions that every business should be able to answer in order for it to have success.</li>\n</ul>\n<p>How success is defined by the author is a different story. For example, if you create a small company that will sustain you for the rest of your life then I'm pretty sure that Peter Thiel will not consider your company a success. Or you for that matter. If you are not playing in the multi-million-dollars revenue league, you don't exist. You are either on a wrong path and will get eaten by others, or you don't think big enough. There's no other way.</p>\n<p>In contrast with the idea of competition from the start of the book, I might add. And this is just one of the points that I disagreed with.</p>\n<p>One of the stories presented in the book also revealed how Palantir Technologies basically came to life. If I had to guess it was just an opportunity that presented itself during PayPal times. He saw there's an interest, he thought his approach is unique (or very little put in practice) and so he went on creating it.\nMy own takeaway from these origins' story is that you need a vision. You can't wonder around and see what sticks.</p>\n<p>I'm still not sold on the company. Some numbers look great. The stock looks pretty ok (see <a href=\"https://www.marketwatch.com/investing/stock/pltr\">PLTR</a>). But there's more to that, isn't it? We should look at the impact of that company from multiple points of view: socially, economically, environment impact and so on.  But I digress.</p>\n<p>Overall, I enjoyed the shortness of the book. Not a lot of bloatware :)\nWould I read it again? Maybe I would skim some parts of it.\nWill I recommend it? Sure. Depends on where you are in your journey, though. Some ideas might resonate with you better. Or they might give you a new perspective on things.</p>\n",
      "date_published": "Mon, 06 Sep 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/is-lack-of-sleep-a-superpower/",
      "url": "https://vladiiancu.com/post/is-lack-of-sleep-a-superpower/",
      "title": "Is lack of sleep a superpower?",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6dce9138e3001295331b\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\nAbout 10 years ago, if you asked me what kind of superpower I want my answer would be related to... sleep. Wait, what?\nSuperpowers and sleep? How does that work?\n<p>Let me tell you the story.</p>\n<p>So the younger version of me, had this thing in his head. A voice that was always nagging him. This voice was telling him to do more, to learn more. More clients, more projects, more development etc.</p>\n<p>When I knew it was time to sleep, I was annoyed. I felt interrupted. It felt so unnecessary. I dreaded it. I secretly wished I didn't have to.\nAs a child, I saw a movie once in which an alien went to bed for 3 seconds, and he was fully rested. Needless to say I was very much impressed. It stuck with me for a long time.</p>\n<p>Now, coming back to that superpower talk. My answer was something similar to &quot;The power to not need any sleep&quot;. I had fantasies about having a double life.\nBy day, I would do the same things as before. And by night, I had the chance to do something completely different. Some days I would dream that I was able to finish what I started during the day. Thus, I would be more productive.</p>\n<p>Other times, I thought about how much different the world is during the night. Less traffic, less noise. And I would start thinking about building something while everybody else was asleep. For me, that was a superpower.</p>\n<p>As time passed I learned one or two things. I learned about sleep. I read about its role and functions. How everything ties together.</p>\n<p>But I also learned something unrelated to sleep: Even if I possessed those capabilities, in a short amount of time I would be back to square one.</p>\n<p>In the first few days, maybe weeks, I would be ecstatic. I would probably double down on my to-do list and start crossing of more items from it. The list would get shorter and shorted. Friends and family would be surprised by the progress. A lot more things would be developed or implemented. And so on. You get the idea.\nBut then, slowly but steadily, everybody around me, myself included, would start adjusting to this new reality.</p>\n<p>And then what? Then, everybody will change their behavior. They would expect more from me. Or faster. Or both.\nMy to-do list would start growing. At a faster pace than my new-found speed.</p>\n<p>In a couple of months I would probably be in the same exact place. A person with a ton of things to do and not enough time.\nJust like everybody else.</p>\n<blockquote>\n<p>It's not about quantity. It's about quality.</p>\n</blockquote>\n<p>This is the lesson learned that is unrelated to sleep that I mentioned earlier.</p>\n<ul>\n<li>it's not important how much time you have available</li>\n<li>it's not important how much stuff you can do at work</li>\n<li>it's not important how many things you can do</li>\n<li>it's not important how many tasks you can complete</li>\n</ul>\n<p>None of that is important. Do you know what it is?</p>\n<ul>\n<li>it's important to do the things that matter! In life, work, with friends, with family. Everywhere.</li>\n</ul>\n<p>To <strong>do things that move the needle</strong>. The things that pushes work forward. The things that bring family and friends closer. The things that make you a better person.\nThe things that have a positive influence on someone around you (even if you know that person or not).</p>\n<p>And you don't need a superpower for that. All you need is focus. A vision, a general idea of what you want and to start going in that direction.</p>\n<hr>\n<p>Now, it's time for me to think about another answer to that superpower question.</p>\n",
      "date_published": "Sun, 15 Aug 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/impressions-on-the-leadership-moment/",
      "url": "https://vladiiancu.com/post/impressions-on-the-leadership-moment/",
      "title": "Impressions on &quot;The Leadership Moment&quot;",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6d7312c9260012510b20\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>I picked up this book by luck. I was just browsing through many subjects which were on display.</p>\n<p>The title caught my attention initially. When I saw the book cover, I was a bit intrigued. A couple of hours later, at home, I started reading the first chapter.</p>\n<p>From my perspective, each person learns something different from the same book. So here are some of my thoughts on this one.</p>\n<p>What the author tried to do here, was to put the leadership skills of different people in a story. Probably because it makes it a lot easier to imagine yourself in a similar situation. This should make a bigger impact than just by reading “Person x was successful because he had y skill”.</p>\n<p>I think it worked. Basically, it's a collection of different short stories.</p>\n<h2>A sense of direction</h2>\n<p>The thing that resonated with me the most was <strong>the value of having a vision</strong>. The importance of it in various scenarios. This happened probably because I'm currently in a similar situation where the vision is defined.</p>\n<blockquote>\n<p>Having a clear vision also helps with making decisions. Whenever facing a difficult choice, you can fall back to the vision and make it easier on yourself (or faster) to take action.</p>\n</blockquote>\n<p>It also helps with preventing any person from drifting. If you find yourself in repeat mode: Each day, each week, they feel the same and nothing really happens -- it might mean you don't have a clear idea of where you are heading to. Having no direction, leads to drifting, doesn't it?</p>\n<p>So the combination of vision and objectives help. They help in making tough choices, they help when there's too many “urgent tasks”. <em>Urgent != important</em>.</p>\n<h2>Unleashing your potential</h2>\n<p>I call this a nice surprise. Another lesson from this book is that your leadership potential can be fulfilled only when the company's vision and yours match.</p>\n<p>So, if you gave it your best shot, and it didn't work, analyze things from this perspective. It might be the case that you are not really in the right place. And that's one of the things you should look out for in the future.</p>\n<h2>You don't have to be all</h2>\n<p>For a long, long time I lived under the impression that I had to have all the skills from all the successful people I read about. Crazy right?</p>\n<p>This last lesson served as a reminder. There are different leadership styles out there. And also, there are <em>different fields that require different styles</em>.\nYou just have to be yourself. Work on your weak points and take advantage of your strong points.</p>\n<p>Then find the right fit. The right company or partners. And build the right team.</p>\n<p>And also, never neglect proper communication.</p>\n",
      "date_published": "Thu, 12 Aug 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/most-people-just-talk-about-sustainability/",
      "url": "https://vladiiancu.com/post/most-people-just-talk-about-sustainability/",
      "title": "Most people just talk about sustainability",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ad6d19cfcbdb00139dd9a5\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\nRecent years and events have seen an increase in information about climate change being shared. \nMore and more people are *talking* about sustainability, best practices, the future etc. \n<p>Is this a good thing? Yes and no. Mostly, by now, I would say no. Talk is cheap.</p>\n<blockquote>\n<p>&quot;most of us like talking about this subject until it actually affects us!&quot;</p>\n</blockquote>\n<p>While there are many people who choose to talk about sustainability in life or business, very few people move the needle. In fact, most of us like talking about this subject until it actually affects us!</p>\n<p>We like talking about how bad things have gotten, how <em>something</em> has to be done. Sometimes we even point out to <em>who</em> has to do something. But it's never us. Whenever a change has to happen, it should always start with somebody else.</p>\n<p>Want to...</p>\n<ul>\n<li>reduce paper usage in the company? Don't start with my department. Start with another one!</li>\n<li>change food menu availability at the office? Other companies should do that first, not ours!</li>\n<li>reduce our environment impact? More people should take the tram or the bike. But not us. No no. We are comfortable in our car.</li>\n</ul>\n<p>In fact, we have people talking and writing about sustainability as the future, but they themselves, on a personal level, are doing the exact opposite. A person might be <strong>talking</strong> about the environment and how we must take care of it and how business will pay attention to it, but the same exact person will have a negative impact on the environment by:</p>\n<ul>\n<li>changing their phone every 6 months;</li>\n<li>purchasing used cars every couple of years with big engines having too much power;</li>\n<li>travelling short distances with a car instead of walking or using the public transport;</li>\n<li>travelling long distances in car or airplane;</li>\n<li>ordering stuff online stuff that isn't actually needed;</li>\n</ul>\n<p>and many other decisions, big or small that sum up and matter.</p>\n<p>So if you are wondering why, for years, there's been talk about environment issues yet almost nothing happened, that's why. It took a global pandemic to shut down things and for people in China to <a href=\"https://asia.nikkei.com/Spotlight/Coronavirus/Blue-skies-return-to-China-as-coronavirus-cuts-coal-consumption\">see the blue sky again</a>.</p>\n<p>What is there to be done? Hold people accountable!</p>\n<p>Whenever a CEO, business person, journalist, blogger, influencer etc talks or posts about this topic, inquire about his choices. What steps did he or she actually made? And will continue to make. Don't stop at a press release. Go for it!</p>\n",
      "date_published": "Mon, 21 Jun 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/missed-opportunities-in-changelogs/",
      "url": "https://vladiiancu.com/post/missed-opportunities-in-changelogs/",
      "title": "Missed opportunities in changelogs",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ac015e4bbbcf00123dd66e\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\nI'm one of those people that go to their App Store and for each update available reads the content of the description also known as [changelog](https://keepachangelog.com/en/1.0.0/). \n<p>I have identified these to be the common styles:</p>\n<ol>\n<li>Bland version: the ones with something generic. Examples: “Bug fixes and performance improvements”. Or my favorite “Information not provided by developer”. Usually it's the same text copied and pasted with each new version.</li>\n</ol>\n<p>*A new variant of the bland version appeared, the one where there's a simple link inserted.</p>\n<ol start=\"2\">\n<li>\n<p>Too-much-info version: the one where very important stuff is announced in the change log (new features, something that might stop working, know bugs that are still not fixed etc) and that information is not part of the actual app itself.</p>\n</li>\n<li>\n<p>List of what is new and what is fixed: a concise list of additions and fixes. IFTTT is a good example here.</p>\n</li>\n<li>\n<p>Right amount of info and a touch of personality: interesting, fun ways to let users know about what has changed.</p>\n</li>\n</ol>\n<p>For me, style #1 is annoying. But I feel that #2 is actually wrong. Time and time again I was able to use new functionalities because I've read the log, while my friends had no idea about them since the application didn't highlight anything in any way.</p>\n<p>I consider the changelog of an app to be one of the touchpoints in a user's journey. So I believe that the culture of a company should be felt there as well.</p>\n<p>That's why I really like the 4th version.</p>\n<p>A few companies are doing this right: Booking, Slack, Google, Dropbox and others. I've only listed the ones that are more popular, but there are others out there paying attention to their users in all the right ways.</p>\n",
      "date_published": "Sun, 30 May 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/house-visitors-and-our-cat-dont-mix-well/",
      "url": "https://vladiiancu.com/post/house-visitors-and-our-cat-dont-mix-well/",
      "title": "House visitors and our cat don&#39;t mix well",
      "content_html": "<p>The cat that is currently part of my family is a stray cat. How he managed to become part of it is a different story.</p>\n<p>What I find to be very strange, is how he reacts to strangers.</p>\n<p>Each and every time a person visits our home, he picks a corner of the living room or a very well hidden place in the bathroom and stays there. That's it! No sounds, no movement, no curiosity whatsoever.\nIf you look for him, you will see a creature with big, dark eyes looking at you like you are the bogyman.</p>\n<p>If you go near him, he just freezes. You can pet him. He won't bite, he won't scratch. He won't do much actually. You can even grab him and hold him close.</p>\n<p>In fact, one day we took him from a corner, and placed him in the visitor's lap. He petted him and everything. Same scared face and eyes. Little movement. A couple of minutes later, he insisted on leaving. Left him on the floor, and he very slowly started moving away and going back in to the corner.</p>\n<p>Nothing moves him. Water? No. Food? No. Toys? No. Treats? Nothing.</p>\n<p>A short time after the visitors leave, he returns to his normal behavior like nothing happened.</p>\n<p>I've heard other (horror) stories from other pet owners. Taking those into consideration, I'm more than happy with this behavior, even if I cannot understand it. He used to leave on the streets, right? You would think that he is accustomed to strangers.</p>\n",
      "date_published": "Sat, 29 May 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/different-ways-to-handle-errors-when-building-an-api/",
      "url": "https://vladiiancu.com/post/different-ways-to-handle-errors-when-building-an-api/",
      "title": "Different ways to handle errors when building an API",
      "content_html": "<p>You might have a large experience consuming various APIs. Or you were part of one or more teams in charge of building an API to the public.\nBy now, you probably noticed different ways of how they are constructed.</p>\n<p>Today, my focus goes to handling errors and outputting status code.</p>\n<p>I noticed two main ways:</p>\n<ol>\n<li>Each error thrown is accompanied by a specific <a href=\"https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\">HTTP status code</a>.</li>\n<li>All errors return 200, followed by an error message.</li>\n</ol>\n<p>Is one better than the other? I think it is a matter of preference.\nHowever, no matter which route you take, I strongly advise to <em>always return a JSON object</em> which contains useful info.</p>\n<p>Quick example</p>\n<pre><code>{\n    status: 'error',\n    error: 'This went wrong'\n}\n</code></pre>\n",
      "date_published": "Fri, 02 Apr 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/what-privacy-focused-analytics-services-can-you-use-today/",
      "url": "https://vladiiancu.com/post/what-privacy-focused-analytics-services-can-you-use-today/",
      "title": "What privacy-focused analytics services can you use today?",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ac00883509580012468ef4\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>In 2021, I feel there are many more alternatives to Google Analytics that ever before.</p>\n<p>And I also encourage any blog author, and not only, to reconsider their choice. To understand that they don't really need GA on their website.\nMost likely, they are not even using the full power of it.</p>\n<p>So why should you remove Google Analytics from your website?</p>\n<ul>\n<li>Your website will load faster (most of the alternatives are seriously light);</li>\n<li>Fewer cookies and possibly even getting rid of the cookie notification banner;</li>\n<li>Less data to/for Google.</li>\n</ul>\n<p>Basically, you are respecting your users more.</p>\n<p>What options do you have?\nLike I said, they are plenty to choose from, but I will narrow your choices down to a couple.</p>\n<p>First, there are two different types. Similar SaaS services just like GA and self-hosted options.</p>\n<p>SaaS alternatives to Google Analytics:</p>\n<ul>\n<li><a href=\"https://microanalytics.io\">Microanalytics</a> — starts with a generous free plan</li>\n<li><a href=\"https://www.cloudflare.com/web-analytics/\">Cloudflare Web Analytics</a> — free but data retention is limited</li>\n</ul>\n<p>Self-hosted alternatives to Google Analytics:</p>\n<ul>\n<li><a href=\"https://matomo.org/\">Matomo</a></li>\n<li><a href=\"https://plausible.io/docs/self-hosting\">Plausible</a></li>\n</ul>\n<p>There are the ones that I've used so far.\nActually this blog used Cloudflare Web Analytics for a while as well. But it got replaced with the self-hosted version of Plausible.</p>\n<p>What do I recommend? Based on your specific needs, if you are:</p>\n<ul>\n<li>more of a power-user, need more data and more options, I would probably choose Matomo. So far it's the closest to Google Analytics.</li>\n<li>looking for the most private and fast option then I would recommend Plausible. The script is lightweight and you own your data. Can't beat that.</li>\n<li>looking for a no-headache easy way to install analytics on your website, then I would recommend Microanalytics. And if you really go over their free limit, their paid plan are worth it. If you are already considering (small) paid plans, the SaaS version of Plausible can be taken into consideration as well at this point.</li>\n</ul>\n",
      "date_published": "Sat, 27 Mar 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/1password-and-yubikey/",
      "url": "https://vladiiancu.com/post/1password-and-yubikey/",
      "title": "1Password and Yubikey",
      "content_html": "<p>If you have a YubiKey and want to use it with 1Password the instructions tell you to go to your Profile, and somewhere there click on Add new device/key.\nOne caveat: the option will not show if you don't have 2FA active.</p>\n<p>So, you first need to enable 2FA via an app, and then you can add your YubiKey.</p>\n",
      "date_published": "Fri, 26 Mar 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/we-should-pay-more-attention-to-our-eating-behaviour/",
      "url": "https://vladiiancu.com/post/we-should-pay-more-attention-to-our-eating-behaviour/",
      "title": "We should pay more attention to our eating behaviour",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62ac0006c006310013bd3eb6\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>I don't know about you, but I rarely think about the actual process of eating.\nIn contrast with some of my peers, I do think about WHAT I'm actually eating. The actual food, the ingredients and so on.</p>\n<p>Alas, that is not enough.</p>\n<p>Since I was a boy, I would eat very fast. And a bit too much if I'm honest.\nAnd here's the thing: a lot of various other processes are affected by this.</p>\n<p>This change, which is small but difficult to make, has a tremendous potential to impact the rest of your day positively. Which, in turn, impacts the rest of your life.</p>\n<p>So here's a list of what NOT to do:</p>\n<ul>\n<li>don't eat as quickly as you can</li>\n<li>don't fill your big plate with food</li>\n<li>don't eat at your desk</li>\n<li>don't watch TV, YouTube, Netflix etc while eating</li>\n<li>don't stay on your phone while eating</li>\n<li>stop worrying about other stuff while eating</li>\n</ul>\n<p>Here's what to do instead and why:</p>\n<ul>\n<li>take your time chewing everything - it will help with the digestion process</li>\n<li>in turn, this will allow you to eat a bit slower. But make a conscious effort to make small pauses between the bites — the “I'm not hungry anymore” signal will have more time to reach your brain.</li>\n</ul>\n<p>If you do these two things, you are already on a great path. You should start eating less quantity, and yet still feel fulfilled.</p>\n<p>To help with this you can:</p>\n<ul>\n<li>remove all distractions while eating: stopping the TV, Netflix and not having the phone with you. This will let you focus on the main task: eating.\nI've found myself time and time again watching an interesting video while eating. And I've observed that my eating speed was influenced by the topic. Whenever something intense was playing, filled with action, suspense and so on, or something very funny I would increase my speed.</li>\n</ul>\n<p>I was looking to either finish up quickly and keep watching or I was drawn into the action and telling my subconscious to move faster.</p>\n<p>Either way, it was not good. It helped a lot.\nFrom removing videos to removing the phone was, at this point, only a small step. It is much harder to drop everything that you are currently doing. Abrupt changes take a toll.</p>\n<p>And now for the last item:</p>\n<ul>\n<li>stop worrying about other stuff while eating.</li>\n</ul>\n<p>Ideally, you would get ready to eat. Move to the designated area, different from where you sleep or work. Enjoy each and every bite and be grateful. A bit like having a zen attitude.</p>\n<p>Doing this, allows the brain the take a break. This means that everything that was going on in your head, goes into passive thinking. Funny enough, that's where things get to move faster or interesting connections are made.</p>\n<p>Giving your brain a pause, a true <strong>lunch break</strong>, will help you return to the rest of your day in a better mood, with more energy and focus.</p>\n<p>A bit paradoxical, taking more time to eat (say 20 minutes instead of the usual 10), will help your stomach process everything better, will help you lose some weight because you are introducing fewer calories in your body and will help you be more productive (learn more, work faster, think better).</p>\n",
      "date_published": "Thu, 18 Feb 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/configure-xdebug-3-and-vscode-with-docker/",
      "url": "https://vladiiancu.com/post/configure-xdebug-3-and-vscode-with-docker/",
      "title": "Configure xDebug 3 and VSCode with Docker",
      "content_html": "<p>I wouldn't have thought that I needed to write a post such as this but I found many different resources online that were outdated, presented strange/unnecessary/insecure solutions and so on.</p>\n<p>You have come to the right place if:</p>\n<ul>\n<li>you are using VSCode (Visual Studio Code)</li>\n<li>you have docker installed; and docker-compose</li>\n<li>maybe use a container for nginx and another one for php-fpm</li>\n<li>use xDebug 3 which introduced breaking changes</li>\n</ul>\n<p>Here's what we need to take into consideration:</p>\n<ol>\n<li>Check that xDebug is installed and loaded in your PHP container</li>\n<li>Proper xDebug settings</li>\n<li>VSCode is configured to connect to xDebug.</li>\n</ol>\n<h2>Install xDebug</h2>\n<p>First things first - install xDebug in your docker container.</p>\n<p>I have a container running PHP-FPM. It's built on a PHP-FPM image with a couple of instructions added.</p>\n<p>Therefore, I have a very simple Dockerfile with these lines:</p>\n<pre><code>FROM php:7.4-fpm\n\nRUN pecl install xdebug \\\n    &amp;&amp; docker-php-ext-enable xdebug\n</code></pre>\n<p>And my docker-compose file will have something along these lines:</p>\n<pre><code>php:\n  build:\n    dockerfile: Dockerfile\n    context: ./\n  networks:\n    - app-network\n  volumes:\n    - ./logs/xdebug:/logs/xdebug\n    - ./logs/php-fpm/:/tmp/xdebug_log  \n</code></pre>\n<h2>Configure xDebug</h2>\n<p>Next, we should configure xDebug. What we need to do is have a .ini file with the configuration that we want, and to adjust our php service container to load that file.</p>\n<p>Let's start with xdebug.ini</p>\n<pre><code>zend_extension = xdebug.so\n\nxdebug.log = &quot;/logs/xdebug/remote.log&quot;\n//this path works with the volume already set up in docker-compose where we mount the /logs/xdebug folder. \n\nxdebug.mode = debug,profile,trace\nxdebug.start_with_request = yes\nxdebug.discover_client_host = 0\nxdebug.client_port = 9003\n\nxdebug.client_host=host.docker.internal\n</code></pre>\n<p>For all options and settings available checkout the <a href=\"https://xdebug.org/docs/all_settings\">official documentation</a>.</p>\n<p>The other important bit is the client port. In our example it's 9003. Default value is 9001 for xDebug 3. Nevertheless, this information will be used in the next step, when setting up VSCode.</p>\n<p>Finally, let's adjust our docker-compose file. Add a new volume to your php service\n<code>./xdebug.ini:/usr/local/etc/php/conf.d/xy-xdebug.ini</code></p>\n<p>This line assumes that your xdebug.ini file is next to your docker-compose file. Adjust the path (the one on the left) as needed.</p>\n<p>Restart your docker containers.\nThis can be a good time to <strong>check that xDebug is loaded</strong></p>\n<p>You can docker exec in your php service and run php -version in bash. This should confirm that xDebug is installed.</p>\n<p>Then insert phpinfo() in any page and display it. You can use it to check where php is looking for additional .ini files.</p>\n<p>This is useful in case your configuration file doesn't seem to work. Adjust path as needed in the volumes section of your docker-compose.</p>\n<h2>Install plugin in VSCode</h2>\n<p>Open Visual Studio Code and install the PHP Debug extension.</p>\n<p>That's it! Nothing else to do</p>\n<h2>Configure VSCode to run the debugger</h2>\n<p>After the extension is installed, you can open the Debug section from the left menu. And then click on the small cog icon from the top.</p>\n<p>Another way would be to go to the main menu, click Debug and select 'Add Configuration...'</p>\n<p>Choose your environment - this should be PHP</p>\n<p>A new file called launch.json should open up. There should be a configurations variable that holds an array of objects.</p>\n<p>Here's a sample of an object:</p>\n<pre><code> {\n   &quot;name&quot;: &quot;xDebug listen&quot;,\n   &quot;type&quot;: &quot;php&quot;,\n   &quot;request&quot;: &quot;launch&quot;,\n   &quot;port&quot;: 9003,\n   &quot;stopOnEntry&quot;: true,\n   &quot;pathMappings&quot;: {\n     &quot;/app&quot;: &quot;${workspaceFolder}/app&quot;\n    }\n}\n</code></pre>\n<p>Note 2 things:</p>\n<ul>\n<li>the port is 9003. This is the same as the one from the xdebug.ini file. Make sure they are the same.</li>\n<li>pathMappings could be important in making sure xDebug works great.</li>\n</ul>\n<p>Let's examine this line <code>&quot;/app&quot;: &quot;${workspaceFolder}/app&quot;</code>.\nWhat's on the left is on your docker. What's on your right is locally.</p>\n<p>In the left there's the app folder.\nThis folder is also configured in my nginx as part of the root path for my server-block. Substitute this with what you actually have.</p>\n<p>In my nginx service, there's this volume mounted:\n<code>- ./app:/app</code></p>\n<p>This + the nginx setup (.conf file) = my pathMappings setting.</p>\n<p>For clarity, here's an example:</p>\n<script src=\"https://gist.github.com/vladiiancu/1e83e0fead2f1477b84dc1c463df27d0.js\"></script>\n<p>If you have any questions, leave a comment below.</p>\n",
      "date_published": "Sun, 31 Jan 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/switch-from-medium/",
      "url": "https://vladiiancu.com/post/switch-from-medium/",
      "title": "Switch from Medium",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62abff498e0f4d00149db5a3\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\nIn 2016 I wrote my first blog post on Medium. I have no recollection as to what prompted me to do that back then. \n<p>What I do know is the lack of consistency that I had. Let's look at a basic statistic. The number of articles written in one year:</p>\n<ul>\n<li>2016: 5</li>\n<li>2017: 1</li>\n<li>2018: 0</li>\n<li>2019: 5</li>\n<li>2020: 5</li>\n</ul>\n<p>Total: 16</p>\n<p>Prior to writing this post I had no idea. I laughed seeing that I probably had an unconscious limit of 5 per year.</p>\n<p>The most popular article is:</p>\n<ul>\n<li><a href=\"https://medium.com/@vladiiancu/autoloading-your-own-classes-in-slim-framework-f9f49df6caa6\">https://medium.com/@vladiiancu/autoloading-your-own-classes-in-slim-framework-f9f49df6caa6</a></li>\n</ul>\n<p>Others worth mentioning are:</p>\n<ul>\n<li><a href=\"https://medium.com/@vladiiancu/critics-are-your-main-optimists-4425d7047bf1\">https://medium.com/@vladiiancu/critics-are-your-main-optimists-4425d7047bf1</a></li>\n<li><a href=\"https://medium.com/@vladiiancu/solitude-as-your-superpower-f2b5f3c03b40\">https://medium.com/@vladiiancu/solitude-as-your-superpower-f2b5f3c03b40</a></li>\n<li><a href=\"https://medium.com/@vladiiancu/the-powerful-i-dont-know-32e8a42ad6fc\">https://medium.com/@vladiiancu/the-powerful-i-dont-know-32e8a42ad6fc</a></li>\n</ul>\n<h3>Why make the switch?</h3>\n<p>If I look at the stats, I could see that some important ones were improving (including the internal source traffic).\nProbably most folks would double-down, write more, write better, engage with others etc.</p>\n<p>I knew I wanted to write more often. But I also wanted to learn various new things. And I wanted to own my content.</p>\n<p>Plus some other small things not really worth mentioning here.</p>\n<p>The good news is that I managed to do all of them by <a href=\"https://vladiiancu.com/post/how-this-blog-started/\">creating this space</a> you are visiting right now.</p>\n<p>As for stats, in 2020 I wrote, again, 5 articles here :) In my defense, I started in December, so that's good.</p>\n<p>I am going to miss all the wonderful graphics from Medium. And the interface was pleasant most of the time. The visibility boost was also something cute.</p>\n<p>Alas, I'm happy. Even though this journey is just beginning, I've learned so much more than I planned or imagined. It's a process that I recommend.</p>\n<p>Wish you, dear reader, to be well and be bold.</p>\n",
      "date_published": "Sun, 24 Jan 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/unbaked-digital-ocean-apps-platform/",
      "url": "https://vladiiancu.com/post/unbaked-digital-ocean-apps-platform/",
      "title": "Unbaked Digital Ocean Apps Platform",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/62a81fce0bbdf3001398e822\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>I think that it comes a time in any developer's life when she or he wishes something quite simple:</p>\n<p>- after you think, plan, develop and test, push one button and have everything deployed and live.</p>\n<p>To a certain extent, this can be true. Even this small blog holds this true. One <code>git push</code> and automagically, the live version is updated.</p>\n<p>So, when I recently had a small project to create and deploy, I took this opportunity to use the <a href=\"https://www.digitalocean.com/products/app-platform/\">app platform</a> from Digital Ocean.</p>\n<p>The first version worked great, just as promised. After the initial setup, everything was set. Again, one <code>git push</code> was usually enough to have everything deployed.</p>\n<h4>Happy developer right? Not quite there yet.</h4>\n<p>Well, here's the thing. The project grew a little, and I found myself having to use a database. Redis in this case.</p>\n<p>Locally it was quite straightforward. I was already using docker for my main server. I added another service for Redis, set it up and done.</p>\n<p>Then, do the same thing on the app platform. There was the <em>components</em> tab, and there I could add another one. Created a new managed db instance (15$ p/m), got the credential, popped them in, and it worked.</p>\n<p>Great. So what's the problem? The issue was that we needed tight security and access.</p>\n<p>By default, when you create a new Redis database in Digital Ocean, you receive 4 things: a username, a password, the hostname and a port.\nThe instance is publicly available.</p>\n<p>If you are not familiar with Digital Ocean, their Droplets and databases and such can be added to a VPC (an internal private network interface).\nSo you can have them communicate freely between them.</p>\n<p>But the new app in the app platform wasn't in any VPC. And couldn't join one.</p>\n<p>Then, in Digital Ocean, you can <a href=\"https://www.digitalocean.com/docs/databases/redis/how-to/secure/#firewalls\">restrict public access</a>.\nSounds awesome, let's do this!</p>\n<p>Well, you can only select Droplets, Kubernetes clusters or a specific IP address.</p>\n<p>The Digital Ocean App is or has none of those things.</p>\n<p>Well ain't that a disappointment? Yes, yes it was. It felt that the app platform is unbaked.</p>\n<p>I hope that this will get resolved in the near future.</p>\n",
      "date_published": "Fri, 15 Jan 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/stress-test-your-php-app-with-post-requests/",
      "url": "https://vladiiancu.com/post/stress-test-your-php-app-with-post-requests/",
      "title": "Stress Test your PHP App with POST Requests",
      "content_html": "<p>If you need a quick and easy way to stress test your PHP application by sending a lot of POST requests with some JSON, this post is for you.</p>\n<p>What you will need for this:</p>\n<ol>\n<li>ApacheBench (<a href=\"https://httpd.apache.org/docs/2.4/programs/ab.html\">official link</a>)</li>\n<li>A file with some JSON in it</li>\n</ol>\n<p>First, let's create our file.</p>\n<pre><code>cd stress-folder\ntouch data.txt\nnano data.txt\n</code></pre>\n<p>Paste your JSON. It could be something simple such as\n<code>{&quot;name&quot;: &quot;Dummy Name&quot;}</code></p>\n<p>Excellent work so far.</p>\n<p>Now for the test command.\nYou might be already familiar with the classic command:</p>\n<p><code>ab -n 100 -c 10 &quot;http://localhost:8080/&quot;</code></p>\n<p>In our case we would need to write</p>\n<p><code>ab -p data.txt -T application/json -n 100 -c 10 http://localhost:8080/</code></p>\n<p>And, if you also need to send some headers</p>\n<p><code>ab -p data.txt -T application/json -H 'Header-Name: header-value' -n 100 -c 10 http://localhost:3000/</code></p>\n<p>Hints:</p>\n<ul>\n<li>if you need multiple headers sent, you simply add multiple -H flags.</li>\n<li>you can also send cookies with the -C flag.</li>\n<li>maybe add the -k flag to Enable KeepAlive</li>\n</ul>\n",
      "date_published": "Wed, 06 Jan 2021 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/customer-value-optimisation/",
      "url": "https://vladiiancu.com/post/customer-value-optimisation/",
      "title": "Customer Value Optimisation",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/629c830d83d51100135bfbd3\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n## Why are you ignoring money on the table?\n<p>Around the year 2005, the term &quot;Inbound Marketing&quot; started gathering attention.\nYears later, everybody in the industry knows and is convinced about the value it brings. It's indispensable.</p>\n<p>It made a lot of sense back then. Instead of reaching out into the unknown, trying to make yourself heard to <em>everybody</em> you would create something of value.\nPeople interested in you or what you have to offer came to you!</p>\n<p>Then, people started spamming. The organic results for highly-competitive keywords were polluted with SPAM.</p>\n<p>Again, after some time, things improved naturally. The search results improved, companies were putting in a real effort to produce quality stuff etc.</p>\n<blockquote>\n<p>Pay attention to Customer Lifetime Value (CLV): It transforms your e-commerce into a <em>profitable</em> e-commerce.</p>\n</blockquote>\n<p>Things have turned. For the better I would say. Now, the user has multiple, valid choices.\nGreat for the user, not so great for a struggling business.</p>\n<p>But here's the thing: all you need to do, is to <em>treat your customer right</em>.\nThat's it! That's the magic sauce (unless you run a monopoly in your industry).</p>\n<p>How do you treat them right?</p>\n<ol>\n<li>Stop annoying them with countless ads; Stop following them everywhere maybe;</li>\n<li>Start understanding them. Not all customers are the same;</li>\n<li>Offer what they need and what they are looking for.</li>\n</ol>\n<p>Is that it?\nYhea, a very high-level view.</p>\n<p>Instead of pouring all your money into Facebook and Google for ads trying to always get new customers (having a really high churn rate in the process), try NOT ignoring your current customers. Or old ones.</p>\n<p>Much easier, much cheaper. More bang for the proverbial buck.</p>\n<p>How? One word: CVO (Customer Value Optimization)</p>\n<p>Start creating your strategy. Take a look at:\n<a href=\"https://www.digitalmarketer.com/blog/customer-value-optimization/\">https://www.digitalmarketer.com/blog/customer-value-optimization/</a></p>\n<p><a href=\"https://www.omniconvert.com/blog/how-to-master-customer-value-optimization.html\">https://www.omniconvert.com/blog/how-to-master-customer-value-optimization.html</a></p>\n<p><a href=\"https://www.nerdmarketing.com/customer-value-optimization/\">https://www.nerdmarketing.com/customer-value-optimization/</a></p>\n<p>ps. just like in the old days, where it wasn't about SEO VS PPC, today it is not about CVO vs CRO or something else.\nFor me, CVO is just like Inbound Marketing. An arsenal of processes and tools that elevate your business.</p>\n",
      "date_published": "Thu, 17 Dec 2020 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/work-better-from-home/",
      "url": "https://vladiiancu.com/post/work-better-from-home/",
      "title": "Work better from home",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/629657d0b3afd700123d3c67\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>Working from home has been a hot topic in the year 2020.</p>\n<p>Common phrases: &quot;you are on mute&quot;, &quot;can you see my screen?&quot;, &quot;zoom&quot;, &quot;sorry, I have to feed the baby&quot;, &quot;ops, the cat got on the laptop&quot;.</p>\n<p>As a fortunate person who has been able to work from home for years before the trend, I was prepared.\nEven so, I still discover new things that help me.</p>\n<p>I can only imagine how difficult it has been for people new to this.</p>\n<p>Unfortunately, there is no silver bullet. No universal solution.</p>\n<p>There are a number of questions that can influence the best solution to take. Here are some of them:</p>\n<ul>\n<li>are you living alone or not?</li>\n<li>do you have any children?</li>\n<li>is there any dedicated room for your work?</li>\n<li>if not alone, does the other person need to talk to the phone or be in conferences many times per day?</li>\n<li>do you have any kind of budget for this?</li>\n</ul>\n<p>That's just a sample.</p>\n<h2>Separate work from everything else</h2>\n<p>This is the toughest thing to do because it has to be done on so many levels.</p>\n<p>I already knew, and many people already wrote and recommended <strong>physical separation</strong> - having a private space for your work. It could be a separate room, or a section of the living room or bedroom that is marked as such.</p>\n<p>I already knew about <strong>time separation</strong> - making sure you have a schedule and you stick to it.</p>\n<p>What I learned this year was the huge benefit of <strong>device separation</strong>.</p>\n<p>For years I've been working, playing, researching and so on, using one single computer/device. That all changed this year and let me tell you, it has been a bliss.</p>\n<blockquote>\n<p>Having one device dedicated to work and another device for everything else brought me to the next level.</p>\n</blockquote>\n<p>Why?</p>\n<ul>\n<li>It allowed me to keep my schedule easier;</li>\n<li>I could organize myself much better;</li>\n<li>Less load on the computer: No more Dropbox AND Google Drive, no more Zoom AND Teams, no more 6 different browsers and so on;</li>\n<li>During the weekend, I tended to open a tab with something work-related and 3 hours later I was still there;</li>\n<li>Mentally, it's been a noticeable improvement.</li>\n</ul>\n<p>So, if you have been looking for a way to step up your work-from-home game, this would be my suggestion.</p>\n<p>Also, for anybody else who's new to working remotely let me point out this: it has been a stressful year for all of us. Even for experienced remote workers - everything has been harder than normal.</p>\n<p>I believe that even the people forced to work-from-home (and not adjusting to it) will eventually see some of the major benefits. It's not 100% ideal but choosing between fully-remote and fully-onsite is not even a competition. <!-- TODO: consider making a new article about the advantages of remote work --></p>\n",
      "date_published": "Tue, 15 Dec 2020 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/clean-kitchen-using-programming-techniques/",
      "url": "https://vladiiancu.com/post/clean-kitchen-using-programming-techniques/",
      "title": "Clean kitchen using programming techniques",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/6296578f70338500121e1c55\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<h2>What does keeping your kitchen nice and tidy have to do with coding?</h2>\n<p>As part of the <a href=\"/post/cross-domain-thinking\" title=\"Cross Domain Thinking\">domain intersection</a> series, I write about cases where I take a concept from one domain and apply it in a different one.</p>\n<hr>\n<p>I would guess that, for anybody who uses the kitchen extensively, keeping it organized and clean can be a challenge.</p>\n<blockquote>\n<p>So how can I make this better, I thought?</p>\n</blockquote>\n<p>Let's take two ideas:</p>\n<p>Idea A: keeping your kitchen clean;</p>\n<p>Idea B: making small changes in your code to improve it over-time;</p>\n<p>Idea B is simple: each time you read or edit a file, make one small adjustment to it. Over time, this will lead to big gains. It has an official name too: <a href=\"https://en.wikipedia.org/wiki/Incremental_build_model\">incremental build model</a>.</p>\n<p>Keeping your kitchen clean (or any room for that matter!) is a two step process:</p>\n<ol>\n<li>[one time] Have one big cleaning session: take some dedicated time to clean everything from top to bottom. Also use this time to think about how things are organized and what could be improved.</li>\n<li>[recurring] Apply incremental changes: each time you enter your kitchen, make one small and quick adjustment.</li>\n</ol>\n<p>The second step varies quite a lot.</p>\n<p>Most of the time it usually means taking an object and dealing with it (for instance, putting a dirty dish in the dishwasher or moving a clean dish to it's proper place).</p>\n<p>Other times, it might mean moving all your spices from the kitchen counter to a designated place in your cupboard.</p>\n<p>It doesn't matter that much. The <strong>basic idea</strong> is that simple: Each time you enter the room, you leave it a little bit better.</p>\n<hr>\n<p>And here's the punch line: it works even if you sometimes have a lazy day. Which, admit it, we all have those.</p>\n",
      "date_published": "Fri, 11 Dec 2020 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/cross-domain-thinking/",
      "url": "https://vladiiancu.com/post/cross-domain-thinking/",
      "title": "Cross-domain Thinking",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/629653e3b3afd700123d2a32\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>The idea of taking a process (or a way of thinking) from one domain, and applying it in a different one. This is what I call cross domain thinking.</p>\n<p>It can be a really useful technique when trying to improve something or in brainstorming sessions.</p>\n<p>But aside the &quot;professional&quot; aspect, there are more areas where this can be applied.</p>\n<p>And I strongly suggest doing this exercise. Practice it as much as possible. I see a lot of benefits from seeing things with a different perspective.</p>\n<p>Here's an article to get you started:</p>\n<ul>\n<li>Keep your house tidy using an incremental build model. Read about it <a href=\"/post/clean-kitchen-using-programming-techniques/\">here</a>.</li>\n</ul>\n",
      "date_published": "Thu, 10 Dec 2020 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/how-this-blog-started/",
      "url": "https://vladiiancu.com/post/how-this-blog-started/",
      "title": "How this blog started",
      "content_html": "<iframe src=\"https://embed.acast.com/628fbf13351b980013e73001/6294e95149e3da0012fe8340\" frameBorder=\"0\" width=\"100%\" height=\"190px\"></iframe>\n<p>A story of how this place came to reality.</p>\n<p>It was a normal November day. I was using my personal laptop when I saw the notification that macOS Big Sur update is available to download and install.</p>\n<p>I decided to install it. First, I had to clean up some old stuff to make room for it.\nIt needed &gt;30 GB of free space if I recall.</p>\n<p>Once that was done, I continued as usual.</p>\n<p>Returning to my laptop, I was surprised to see the screen blank. I thought that it was still rebooting from the update. I left it alone.</p>\n<p>After a while, coming back to it, there was no change. The Apple logo was lit, but there was no activity whatsoever.</p>\n<p>Long story short, the update bricked my laptop. After some research, it seems that only <strong>some</strong> MacBook owners of models 2013-2014 are affected.</p>\n<p><a href=\"https://mrmacintosh.com/big-sur-11-0-1-20b50-released-to-block-install-for-2013-14-13-mbpros/\">https://mrmacintosh.com/big-sur-11-0-1-20b50-released-to-block-install-for-2013-14-13-mbpros/</a></p>\n<p>Of course, I'm part of the “lucky” ones.\nNo point in dwelling, I immediately started looking for a replacement.</p>\n<blockquote>\n<p>Finding a new model is easy. Paying for it is harder.</p>\n</blockquote>\n<p>I already knew I wanted the MacBook Pro 13&quot; model. And I looked for the one with 4 ports. Easy, right?</p>\n<p>But the price was hard to swallow. Especially now, with my current WFH setup that involves <a href=\"/post/work-better-from-home\">device separation</a>.</p>\n<p>I looked up some more budget-friendly alternatives. Nothing really worthwhile. But that's a story for another day. Maybe.</p>\n<p>And then it hit me! Why was I stuck on a laptop?</p>\n<p>Why not build myself a new desktop from scratch? Dual-boot Linux on it to work on personal projects in my own time and Windows to maybe play a game once in a while.</p>\n<p>The idea started to grow on me. I started remembering the good old days when all day long I was either playing a game, tinkering with PC parts or researching the market.</p>\n<p>After that trip down-memory lane, I started doing my thing:</p>\n<ul>\n<li>catching up with the industry</li>\n<li>researching current offers</li>\n<li>writing down what I needed</li>\n<li>picking parts</li>\n</ul>\n<p>Right around this time, two ideas collapsed.</p>\n<p>First there were all these memories that brought joy. And the idea of building something again was exciting. Then, I knew I had to change some things around. I haven't used Windows in many years and Linux only via ssh.</p>\n<p>Using 3 operating system regularly meant I needed to make sure always had cross-platform in the back of my head.</p>\n<h2>Now is a good time to tinker with the JAMStack and Static Site Generators</h2>\n<p>This excitement continued and fueled my desire to learn or try something new. Since I've been reading about SSGs for some time, everything was set.</p>\n<p>I believe that the best way to learn something is by doing. Reading, listening or watching others is good. But getting my hands dirty makes things really stick and speeds up the entire process.</p>\n<h2>Why not Medium? Why not WordPress?</h2>\n<p>The decision to <a href=\"/post/switch-from-medium\">switch from Medium</a> was quite easy (for me). Don't get me wrong, it's a great option for many people.\nFirst and foremost I wanted to own and be in control of the content I produce.</p>\n<p>Then, I wanted an easy way to create it (markdown), to maintain it and to move it from one place to another. Or even keep it offline if I desire.</p>\n<p>Of course, WordPress would have been an easy option for me, but I wouldn't have learned anything new.</p>\n<p>So here we are.</p>\n<p>I'm very curious to see where this road will take me.</p>\n",
      "date_published": "Wed, 02 Dec 2020 00:00:00 +0000"
    },{
      "id": "https://vladiiancu.com/post/hello-world/",
      "url": "https://vladiiancu.com/post/hello-world/",
      "title": "Hello World",
      "content_html": "<p>Thank you for your time. Please explore.</p>\n",
      "date_published": "Sun, 22 Nov 2020 00:00:00 +0000"
    }
  ]
}