<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stoinov</title>
    <link>https://stoinov.com/en/</link>
    <description>Stoinov</description>
    <language>en</language>
    <atom:link href="https://stoinov.com/en/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Choosing a font</title>
      <link>https://stoinov.com/en/choosing-a-font</link>
      <author>Peter Stoinov</author>
      <description><![CDATA[<h1>Choosing a font</h1>
<p>In a <a href="en/making-your-own-tools/">previous post</a>, I promised to write about some of the decisions I made while building this site. Choosing a font turned out to be one of the most interesting. What started as “pick something that looks nice” quickly became a rabbit hole into typography, Cyrillic, and font optimization.</p>
<div class="content-block"><h2>Cyrillic is not simple</h2>
<p>The first requirement was simple yet very important: the font had to properly support Bulgarian Cyrillic. But then again - what is proper in this context? I’ve been vaguely aware for a while that there’s a difference in the typesets for Bulgarian and Russian Cyrillic, but never read up on it. Until now.</p>
<p>A good starting point with an overview of the history and the main visual differences is <a href="https://cyrillic.bgweb.bg/">the page</a> made by <a href="https://bgweb.bg/english/">the foundation organizing Вulgarian Best Website Awards (BG Web)</a>. The most important thing I remembered from it was the striking difference between the lowercase letters. The Bulgarian ones are so much more diverse in shape and height than the Russian ones. The more varied shapes make words easier to recognize at a glance because each letter contributes more to the overall silhouette of a word. More in-depth analysis can be read in <a href="https://newspaper.kultura.bg/bg/article/view/23494">a post</a> by Cultura magazine.</p>
<p>So with that knowledge, I was off to look for fonts that support Bulgarian Cyrillic. A good starting point is <a href="https://localfonts.eu/freefonts/bulgarian-cyrillic/">this page</a> with a large selection of Bulgarian fonts.</p></div>
<div class="content-block"><h2>To serif or not to serif</h2>
<p>My next decision was a more aesthetic one - should I use a serif or sans-serif font?</p>
<p>I’ve been aware of the common belief that serifs are more comfortable for extended reading, but wanted to see how much truth there is to this statement. <a href="https://phys.org/news/2022-07-personalized-fonts-comprehension.html">A recent study found</a> that font preferences are highly individual. Much like glasses, it can be tailored for any person. <a href="https://www.sciencedirect.com/science/article/pii/S000169182200138X">Other</a> <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4612630/">studies</a> confirm that any difference between them is at most insignificant. So I was left with a personal choice. That gave me an excuse to ask: “Why not both?”</p>
<p>So I decided to let readers choose whichever they find more comfortable: serif or sans-serif.</p></div>
<div class="content-block"><h2>Technical implementation</h2>
<p>After selecting the fonts for my site - <a href="https://github.com/lettersoup/Sofia-Sans">Sofia Sans</a> and <a href="https://github.com/StefanPeev/Veleka">Veleka</a> - I only had to implement a way to switch between them and remember the reader’s preference for future visits.</p>
<p>The downloaded font files contained dozens of glyphs my website would never display, yet they would still be downloaded and stored on the devices of every visitor. Years ago in my WordPress days, I was using <a href="https://transfonter.org/">Tranfonter</a> to convert and compress fonts for web use. I left only Latin and Cyrillic subsets, while dropping their extended ones along with the Greek.</p>
<p>This reduced the size of a single font from around 400 KB to just 28 KB - a reduction of more than 90%.</p>
<p>I wanted to see exactly which characters remained after subsetting, and I used <a href="wakamaifondue.com">Wakamaifondue</a>. Upload a font and it shows you everything from supported glyphs to OpenType features, along with visual previews of what they do.</p>
<p>After comparing the original and subsetted fonts, I wasn’t entirely happy with the default glyph selection. So I built a custom list of all <a href="https://en.wikipedia.org/wiki/List_of_Unicode_characters">Unicode code points</a> for the characters I wanted, and provided them as a Unicode ranges parameter to Transfonter. This resulted in an even smaller size of about 24 KB and the exact selection of glyphs I plan to use.</p>
<p>If at any point in the future I need more, I can simply rerun the process with an expanded list of Unicode code points.</p></div>
<div class="content-block"><h2>Future optimization</h2>
<p>One thing that I didn’t implement is automating the font optimization during the build process. There’s a webfont tool called <a href="https://github.com/zachleat/glyphhanger">Glyphhanger</a>, that can scan an HTML file or even a webpage, get the unique set of characters used and then subset a font with only them. This will make each font grow only when new characters are introduced and further reduce bandwidth usage.</p></div>
<div class="content-block"><h2>Conclusion</h2>
<p>In the end, it turned out that fonts are not as simple if you care for every step of their deployment and use. And this is another example of the same principle that motivated this project in the first place. Spending a little more effort during development can remove a surprising amount of friction for every future visitor. Whether it’s choosing typography that feels more natural to read or trimming hundreds of kilobytes from every page load, the details matter.</p>
<p>Giving users the option to choose between serif and sans-serif fonts is a small UX improvement, but one that’s well worth the effort.</p></div>
]]></description>
      <guid>https://stoinov.com/en/choosing-a-font</guid>
    </item>
    <item>
      <title>Making your own tools</title>
      <link>https://stoinov.com/en/making-your-own-tools</link>
      <author>Peter Stoinov</author>
      <description><![CDATA[<h1>Making Your Own Tools</h1>
<p>A running theme throughout my life has always been automating friction away. Whether in my personal life or at work, I’ve always tried to make things easier—for myself and for everyone around me.</p>
<p>Back in my twenties, this mostly manifested as an endless search for the <em>best</em> tool for any given task. That approach served me well for years while I was building my skills and confidence. Eventually, though, my mindset shifted from <strong>“What tool should I use?”</strong> to <strong>“Should I just build this myself?”</strong></p>
<div class="content-block"><h2>Learning Through Building</h2>
<p>I’ve never been the type to jump headfirst into a new problem. I preferred taking my time, reading documentation, understanding the landscape, and making informed decisions before writing any code.</p>
<p>Over the past few years, though, that changed. Maybe “impatient” is the wrong word, but I increasingly found tutorials and documentation jumping off point rather than final authority. They’re great for learning syntax or passing an exam, but they rarely provide the understanding that comes from building something real.</p>
<p>Experience certainly played a part. After solving enough similar problems, you develop confidence that you’ll figure things out along the way. Add to that the recent rise of AI-assisted development - and the unexpected influx of free time - and I decided to challenge myself: pick a project, learn some new technologies, and finish it in under a week.</p></div>
<div class="content-block"><h2>Picking a Tool to Build</h2>
<p>The project basically chose itself. My personal website had been sitting unfinished for years.</p>
<p>Part of the reason was time, but a bigger part was that I never wanted to commit to WordPress or some other feature-rich CMS just to publish an occasional post. I wanted something much simpler: write a Markdown file, run a command, and enjoy the newly deployed page.</p>
<p>I didn’t need a visual editor or a complex publishing workflow. I already had my IDE, or even the the Notes app on my phone. Reducing friction had always been the goal, remember?</p></div>
<div class="content-block"><h2>More Than a Static Site Builder</h2>
<p>I wasn’t trying to build the next great static site generator. The real goal was to learn while building it.</p>
<p>Building something from scratch forced me to make architectural and technical decisions that tutorials simply gloss over. Every decision led to another question, and every question opened another rabbit hole. I ended up learning far more than I would have by following a course or recreating a sample project.</p>
<p>Many of those rabbit holes deserve posts of their own. Over the next few articles, I’ll write about the decisions I made, the technologies I experimented with, and the unexpected outcomes I encountered along the way. The static site builder was never really the destination - it was simply an excuse to explore ideas I’d been wanting to play with for a while.</p></div>
<div class="content-block"><h2>Final Thoughts</h2>
<p>One of the biggest lessons DevOps taught me wasn’t Kubernetes, CI/CD, or infrastructure as code. It was that if a task feels repetitive or unnecessarily difficult, you don’t always have to look for a better tool - you can build one.</p>
<p>Almost all of the tools I create will never be used by more than several people, and that’s okay. Making something mass appealing requires very different skills and mindset and it very rarely, if ever, does it make people lifes easier.</p></div>
]]></description>
      <guid>https://stoinov.com/en/making-your-own-tools</guid>
    </item>
    <item>
      <title>19 years</title>
      <link>https://stoinov.com/en/19-years</link>
      <author>Peter Stoinov</author>
      <description><![CDATA[<h1>19 years</h1>
<p>Half of my life.</p>
<p>That is exactly how much time I have spent at the same company, growing, supporting, and maintaining the same product: Cognity. Half of that journey was spent at FactSet, working across its diverse portfolio of products, where I had the opportunity to further hone my engineering skills.</p>
<p>Looking back at where it all began and where I am today, I cannot help but reflect on some of the experiences that shaped me along the way.</p>
<div class="content-block"><h2>The Cognity beginning</h2>
<p>I am deeply thankful for the close, family-like environment I was lucky enough to join. The startup phase was long and often thankless for everyone involved, but the team more than made up for it.</p>
<p>I joined just in time to witness the 2008 market crash through the eyes of a highly knowledgeable financial team that helped me make sense of it all. We had to build our product during uncertain times, facing constant hurdles of every kind. The lessons learned during late nights and on tight (or sometimes nonexistent) budgets only made us more resilient for the years to come.</p></div>
<div class="content-block"><h2>The enterprise switch</h2>
<p>In quick succession during 2016 and 2017, I went from a 40-person startup to a 10,000-employee enterprise with more than 30 years of history. The transition did not happen overnight, but it certainly felt that way at the time.</p>
<p>This turbulent period was a watershed moment for me. I had to put aside my engineering hat and learn how to navigate unfamiliar waters. For one, I had to hire people. People I would trust and delegate work to. Getting to know a person in an hour is very different from building trust over years. I also learned that, in a large organization, the bottom line almost always takes precedence over personal connections. (That lesson would prove more relevant than I realized at the time)</p></div>
<div class="content-block"><h2>The FactSet growth</h2>
<p>Once the acquisition was complete and the old domain was no more, the challenges grew in both complexity and duration. Gone was the agility of making split-second decisions over a conversation by the water cooler. Gone was the freedom to pick whichever tools seemed best suited to a solution.</p>
<p>Now there were quarterly goals. KPIs. Performance reviews. Required frameworks.</p>
<p>The brightest part of that transition, however, was the managers. Somehow, I was fortunate enough to work for not one but two exceptional people. Not just great managers, but genuinely good humans.</p>
<p>They showed me that caring for your team is not merely a phrase repeated during interviews, but a real quality that some people possess. And it makes all the difference.</p>
<p>The lessons I learned from them were countless - not only in engineering, but also in becoming a better person. I cannot imagine being where I am today without their guidance and encouragement. In my early twenties, I sorely lacked many of the non-technical skills required to thrive in this field. They patiently helped me build that foundation and, in many ways, shaped the professional I became.</p></div>
<div class="content-block"><h2>The letting go</h2>
<p>I am not someone who let go things easily. Anyone who has seen my storage room - or my CV for that matter - can attest to that.</p>
<p>Nineteen years with the same product is an achievement in itself, but surviving every hurdle, acquisition, and financial downturn makes it even more meaningful.</p>
<p>So obviously, I did not envision my departure being so abrupt. But life can be strange like that sometimes.</p>
<p>Now, with all of that experience under my belt, I am preparing for a new beginning - one that I hope to help shape in a way that would make those managers proud. A chance to apply the lessons they taught me with the confidence and perspective that only a long and winding road can provide.</p></div>
<div class="content-block"><h2>Future, reconsidered</h2>
<p>So where to now? I’m definetly not taking a break. Staying with the same product for so long comes with its own downsides - I missed out on gaining experience with some of the technologies that much of today’s IT world runs on. So I have some catching up to do, which can only motivate me.</p>
<p>Hopefully, I’ll find a company that feels worth committing the next 19 years to.</p></div>
]]></description>
      <guid>https://stoinov.com/en/19-years</guid>
    </item>
    <item>
      <title>On (hand)writing</title>
      <link>https://stoinov.com/en/on-handwriting</link>
      <author>Peter Stoinov</author>
      <description><![CDATA[<h1>On (hand)writing</h1>
<p>Recently, I have been finding that I need to not only consume, to not only respond and react, but also delve into questions and try to figure out what I really feel and think about some subjects. So I plan to use this blog as a platform for expanding my though from the limited spaces of the bite-sized quips on social media.</p>
<p>My main adversary to this is, of course, laziness, but hopefully, now that I have the setup and the place, I would just need the occasion to put pen to paper. Or finger to keyboard, in modern settings.</p>
<p>Speaking of which, over the years I’ve read dozens if not hundreds of posts, <a href="https://www.craftyourcontent.com/handwriting-typing-best-method">articles</a> and <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11943480">even researchs</a>, that handwriting has very strong positives - helps memorize and learning your subject of writing. Yet I’ve never been one to journal - it always felt distant and alien to me. I’ve always preferred to internalize and process my thoughts in the privacy of my mind.</p>
<p>Yet, as inevitable as the march of time is, the change of person to someone who wants to spread his wisdom (yes, I realize how much heavy lifting this word is doing in this context), is even more unstoppable. So here I am, taking my first steps to try and share my inner thoughts with a wider audience, and no one in particular.</p>
]]></description>
      <guid>https://stoinov.com/en/on-handwriting</guid>
    </item>
  </channel>
</rss>
