<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6471778</id><updated>2026-05-18T16:10:12.008+03:00</updated><category term=".net"/><category term="ASP.NET"/><category term="vs.net"/><title type='text'>Ivan Mitev in the Tech Hive</title><subtitle type='html'>Brain Dump of a Maker of Delicious Software (Yummy as Honey)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default?alt=atom&amp;start-index=26&amp;max-results=25'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>287</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6471778.post-7497429953674567104</id><published>2026-05-16T12:36:57.619+03:00</published><updated>2026-05-16T12:36:57.619+03:00</updated><title type='text'>Vibe-coded card game and a personal projects website</title><content type='html'>&lt;p&gt;&lt;br /&gt;Happy to release an open-source vibe coded PWA card game, that I liked to play both as a kid and as a grown-up. Probably on of the best card games for three people. I suspect it&#39;s popular mainly in Bulgaria - thus &lt;a href=&quot;https://ruska-trupa.logi4no.com/&quot;&gt;the website&lt;/a&gt; is in Bulgarian and the &lt;a href=&quot;https://apps.microsoft.com/detail/9pdzmp677klt &quot;&gt;Microsoft Store app&lt;/a&gt;, too (altough you can switch to English within the game).&lt;br /&gt;&lt;br /&gt;Being comfortable with Blazor WASM after releasing&amp;nbsp;&lt;a href=&quot;https://pygmy.cozyroc.cloud/&quot;&gt;https://pygmy.cozyroc.cloud/&lt;/a&gt; , naturally I chose this technology again. It took a couple of weeks and a lot of iterations on the UX to make the game usable and the bots decent. Still, I don&#39;t expect a lot of interest in the online game, as people prefer to play Ruska Trupa in-person. For this reason, I don&#39;t plan to support a multi-player mode. I hope that it&#39;s a good way for someone who has played it awhile ago to remind themselves the rules and the game play.&lt;br /&gt;&lt;br /&gt;I built it via OpenAI Codex. I liked the builtin browser that helped with the iterations. Most of the time I used Medium reasoning with GPT 5.5 and that worked out pretty well. There were a few regressions introduced when I had asked to change the UI and/or the behavior, but overall I&#39;m pretty happy how smart the model + the harness is.&lt;br /&gt;&lt;br /&gt;I rarely looked at the code, but still caught a weird decision to not use cyrillic letters in a localization file and instead use some unicode chararacters. Probably there&#39;s a lot to improve in the codebase, but I don&#39;t really plan to extend it, so I&#39;ll likely keep it as is.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;P.S.&lt;/b&gt; As I have now accumulated a couple of personal vibe-coded projects and a couple of AI-assisted informational/educational projects in the last year or so, I decided to give them a home -&lt;a href=&quot;https://logi4no.com/&quot;&gt;https://logi4no.com/&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;harper-render-box popover=&quot;manual&quot; style=&quot;border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; pointer-events: none; visibility: hidden !important;&quot;&gt;&lt;/harper-render-box&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7497429953674567104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7497429953674567104?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7497429953674567104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7497429953674567104'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2026/05/vibe-coded-card-game-and-personal.html' title='Vibe-coded card game and a personal projects website'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-1517833768750054866</id><published>2026-05-14T09:07:46.681+03:00</published><updated>2026-05-14T09:07:46.681+03:00</updated><title type='text'>Dump of AI-assisted software development resources from the past 6 months</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the past 6 months I&#39;ve been processing a lot of materials about the AI revolution, coding agents and the new ways of doing software development. I&#39;ve been sharing some of it to my colleagues on Slack. &lt;br /&gt;&lt;br /&gt;As a Slack AI agent popped up yesterday in our workspace, I&#39;ve decided to test it to search what I&#39;ve shared with my colleagues. Strangely, it didn&#39;t find all the items that simple querying found, but still here are some of the noteworthy videos and articles that I think are good to watch/read (older items first):&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;color: inherit; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;img alt=&quot;:clapper:&quot; aria-label=&quot;clapper emoji&quot; src=&quot;https://a.slack-edge.com/production-standard-emoji-assets/16.0/google-medium/1f3ac.png&quot; style=&quot;height: 1.2em; vertical-align: text-bottom; width: 1.2em;&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: #1d1c1d; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #1d1c1d; font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: 700;&quot;&gt;Videos&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: #1d1c1d; font-family: Arial, Helvetica, sans-serif; font-size: small; margin: 0px; padding: 0px;&quot;&gt;&lt;ul style=&quot;list-style-position: outside; margin: 4px 0px 4px 24px; padding: 0px;&quot;&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://youtube.com/watch?v=eIoohUmYpGI&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;The Infinite Software Crisis – Jake Nations, Netflix&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=wc8FBhQtdsA&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;An AI state of the union: We’ve passed the inflection point &amp;amp; dark factories are coming&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=CZs8J1ZD0CE&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Martin Fowler &amp;amp; Kent Beck: Frameworks for reinventing software&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lNVa33qUzZ8&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;We all fell for it…&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: #1d1c1d; font-family: Arial, Helvetica, sans-serif; font-size: small; margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;color: #1d1c1d; font-family: Arial, Helvetica, sans-serif; font-size: small; margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 4px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;img alt=&quot;:page_facing_up:&quot; aria-label=&quot;page facing up emoji&quot; src=&quot;https://a.slack-edge.com/production-standard-emoji-assets/16.0/google-medium/1f4c4.png&quot; style=&quot;height: 1.2em; vertical-align: text-bottom; width: 1.2em;&quot; /&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-weight: 700;&quot;&gt;Articles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-position: outside; margin: 4px 0px 4px 24px; padding: 0px;&quot;&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://www.chrisgregori.dev/opinion/code-is-cheap-now-software-isnt&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Code Is Cheap Now. Software Isn&#39;t.&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://mitchellh.com/writing/my-ai-adoption-journey&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;My AI Adoption Journey – Mitchell Hashimoto&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Harness Engineering – Martin Fowler&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://aicoding.leaflet.pub/3mbrvhyye4k2e&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Relocating Rigor - The Phoenix Architecture&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://aicoding.leaflet.pub/3men54inhes2d&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;The Industrialization of Regenerative Software&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://steipete.me/posts/just-talk-to-it&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Just Talk To It – Peter Steinberger&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;https://martinfowler.com/fragments/2026-04-29.html&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Fragments: April 29 – Martin Fowler&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://addyosmani.com/blog/agent-harness-engineering/&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Agent Harness Engineering – Addy Osmani&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;span style=&quot;color: inherit;&quot;&gt;&lt;a href=&quot;https://x.com/aparnadhinak/status/2046980769747533830&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;What is an Agent Harness – Aparna Dhinakaran&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 2px 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;https://x.com/i/status/2054084334848790652&quot; rel=&quot;noopener noreferrer&quot; style=&quot;color: #1264a3; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;AI Made Us Faster. That Was the Problem – David Fowler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There&#39;s a lot to process. Truly exciting times!&lt;/div&gt;&lt;/div&gt;&lt;harper-render-box popover=&quot;manual&quot; style=&quot;border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; pointer-events: none; visibility: hidden !important;&quot;&gt;&lt;/harper-render-box&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/1517833768750054866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/1517833768750054866?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1517833768750054866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1517833768750054866'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2026/05/dump-of-ai-assisted-software.html' title='Dump of AI-assisted software development resources from the past 6 months'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4606056735531813365</id><published>2026-03-15T19:26:00.003+02:00</published><updated>2026-03-21T17:09:14.534+02:00</updated><title type='text'>Next-level vibe coding</title><content type='html'>&lt;p&gt;It has been less than 6 months since my first &lt;a href=&quot;https://immitev.blogspot.com/2025/09/my-first-vibe-coded-app.html&quot;&gt;vibe-coded child game&lt;/a&gt; and in the past 3 weeks I&#39;ve realized from personal experience that the AI has gotten so good at coding that we are now shipping a not that trivial &lt;a href=&quot;https://pygmy.cozyroc.cloud/ &quot;&gt;Blazor WASM web app&lt;/a&gt;&amp;nbsp;(see an example with data&amp;nbsp;&lt;a href=&quot;https://pygmy.cozyroc.cloud/?url=https%3A%2F%2Fssisplus.blob.core.windows.net%2Fpatches%2FMisc%2FDemoViewer.ispac&quot;&gt;here&lt;/a&gt;) that I&#39;ve single handedly vibe-coded. I started first with OpenAI Codex addon of VS Code and soon transitioned to the Codex app, in order to more effectively juggle prompts in multiple repos.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The static web page app is basically a super close match of Visual Studio SSIS Package Designer in view mode. It supports pretty both standard Microsoft components, as well as COZYROC SSIS+ components. It&#39;s fast and offers some extra analysis and navigation features that make it actually a better option for inspecting SSIS packages than what Visual Studio has out-of-the-box.&lt;/p&gt;&lt;p&gt;The app started as an experiment in my spare time, as I wanted to check what&#39;s possible to do from scratch on a greenfield project with OpenAI Codex and the GPT-5.3-Codex model. And what happened blew my mind. In about a week I had a quite impressive working prototype that I further developed and polished for 2 more weeks. I&#39;ve mostly prompted (and reprompted to correct course). Only occassionally inspected the code and only modified by hand from time to time texts and CSS.&lt;/p&gt;&lt;p&gt;Here&#39;s how the commit history looks (yes, the graphic is also Codex generated).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh_k6o92gTfGVdgRNVFi7YD0NAYzM1rAQGwFkjkhPlJ5oVEj0Y1oLQ3Ki3pfXU2BMXYwnQstjNZD4jWNP20JVLT5Ui9AEl1XA-Kazd6zBGe71qyaBMTD_wiRJBBXcDVLJQT_mwVihkNbw-PsUDyHFBtl3KZ4e5-BOX3UysUN9Ow5ZKAp_R4StsJkg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;449&quot; data-original-width=&quot;881&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh_k6o92gTfGVdgRNVFi7YD0NAYzM1rAQGwFkjkhPlJ5oVEj0Y1oLQ3Ki3pfXU2BMXYwnQstjNZD4jWNP20JVLT5Ui9AEl1XA-Kazd6zBGe71qyaBMTD_wiRJBBXcDVLJQT_mwVihkNbw-PsUDyHFBtl3KZ4e5-BOX3UysUN9Ow5ZKAp_R4StsJkg=w640-h326&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I was so hooked up that I couldn&#39;t help myself to work on it on weekends, as well. It&#39;s super addictive as you discover you can do wild things just by prompting. E.g. when I got tired of verifying some UI changes with a manual run via VS 2026, I&#39;ve asked Codex to record screenshots via Playwright, so I could just approve the final result.&lt;br /&gt;&lt;br /&gt;Did I mention that for those 3 weeks, not only an web app was developed and published, but also a VS Code extension, too? And that&#39;s the first time I&#39;m dealing with various technologies: Blazor WASM, VS Code extensions. Having only basic familiarity with CSS, I might have never be able to do something that polished (ok, at least not for less than 3 months, which would mean that I would have never started such a project).&lt;br /&gt;&lt;br /&gt;P.S. I&#39;m aware that this vibe-coding approach has its limitations and risks and e.g. if we aim for something significantly more complicated as a full SSIS package editing experience, there surely will be a need for a more structured harness-based approach for an AI agent-based development. Still I&#39;m really surprised how well Codex handled this moderately sized repo. Even as its size grows, it still remains quite adequate when making the requested changes and improvements.&lt;br /&gt;&lt;br /&gt;P.S.S. I&#39;ve also added a new mode for words in the&amp;nbsp;&lt;a href=&quot;https://immitev.blogspot.com/2025/09/my-first-vibe-coded-app.html&quot;&gt;vibe-coded child game&lt;/a&gt;, which my 5 YO is actually loving, as I&#39;ve made it look like the Wordle game, that I use to play with him (in Bulgarian). It took just 3 prompts. It&#39;s clear that programming is getting democratized and for many simple or moderately simple apps, you just need to communicate what you want and sooner or later you&#39;ll get it. Quite cheaply, too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;harper-render-box popover=&quot;manual&quot; style=&quot;border: none; pointer-events: none;&quot;&gt;&lt;/harper-render-box&gt;&lt;harper-render-box popover=&quot;manual&quot; style=&quot;border: none; pointer-events: none;&quot;&gt;&lt;/harper-render-box&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4606056735531813365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4606056735531813365?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4606056735531813365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4606056735531813365'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2026/03/next-level-vibe-coding.html' title='Next-level vibe coding'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh_k6o92gTfGVdgRNVFi7YD0NAYzM1rAQGwFkjkhPlJ5oVEj0Y1oLQ3Ki3pfXU2BMXYwnQstjNZD4jWNP20JVLT5Ui9AEl1XA-Kazd6zBGe71qyaBMTD_wiRJBBXcDVLJQT_mwVihkNbw-PsUDyHFBtl3KZ4e5-BOX3UysUN9Ow5ZKAp_R4StsJkg=s72-w640-h326-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4227802099050060792</id><published>2025-12-29T21:11:00.004+02:00</published><updated>2025-12-29T21:11:44.009+02:00</updated><title type='text'>Summary of the year 2025</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://immitev.blogspot.com/2024/12/summary-of-year-2024.html&quot;&gt;2024&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://immitev.blogspot.com/2020/12/summary-of-year-2023.html&quot; style=&quot;background-color: #fafafa; display: inline; outline: none; transition: 0.3s;&quot;&gt;2023&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://immitev.blogspot.com/2022/12/summary-of-year-2022.html&quot;&gt;2022&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none;&quot;&gt;&amp;nbsp;.&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;It&#39;s been now 8 years since I joined&amp;nbsp;&lt;a href=&quot;https://www.cozyroc.com/&quot;&gt;COZYROC&lt;/a&gt;, and this is now an official employment longevity record 💯. As usual, this year I had been juggling various types of tasks - management, coordination, research &amp;amp; design, code reviews, coding, customer support and trobleshooting. I think I like the customer support-related tasks the best, as solving issues for real clients under some tighter time constraints gives me a nice dopamine boost when successful.&lt;br /&gt;&lt;br /&gt;This year I begin a gradual shift to AI-assisted coding (and generally AI-assited work). There&#39;s a lot to assimilate and a lot to experiment here. After working pretty successfully with &lt;a href=&quot;https://immitev.blogspot.com/2025/01/chatgpt-assisted-coding.html &quot;&gt;ChatGPT&amp;nbsp;for various tasks&lt;/a&gt;&amp;nbsp;for awhile, I finally realized it&#39;s time to use AI assistants in the IDE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;, as providing the proper context is the most crucial part of effective AI-assisted development. I gave&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Augment Code, ZenCoder, Kilo Code, OpenAI Codex a try. Had some good and bad experiences with those, but the best so far for the big code base I work on, were&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Augment Code and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Codex. A&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;s the tools and LLMs improve I will be definitely relying more on AI-assisted coding/planning/troubleshooting. Btw, the &lt;a href=&quot;https://www.warp.dev/&quot;&gt;Warp&lt;/a&gt; terminal is also quite nice - I especially appreciated how much you can achieve by allowing it to run scripts on my laptop to query and tweak things.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;On the fun side, I vibe-coded two simple apps for my 5YO who was learning the Bulgarian alphabet. I&#39;ve documented my first vibe coding attempt &lt;a href=&quot;https://immitev.blogspot.com/2025/09/my-first-vibe-coded-app.html&quot;&gt;here&lt;/a&gt;. The &lt;a href=&quot;https://sdvoi-bukvichkite.lovable.app/&quot;&gt;other game&lt;/a&gt; turned out simpler to implement. Btw, for variety I tried using Bolt.New initially, but reverted to Lovable, as my prompts there were giving me significantly better results.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;As AI started to get into everything I do on and off work, I had a two weeks-long experiment to write some poetry (in Bulgarian) about AI without the use of AI. It was fun, but also t&lt;/span&gt;edious to edit and re-edit and re-edit a poem.&amp;nbsp;&lt;span style=&quot;font-family: inherit;&quot;&gt;Had some relatively funny ones, but to be honest not many that I can feel proud enough to release to the public. Maybe I should try this poetry thing with an AI boost next time. 😄&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;Physically, this year I had been in a decent shape - doing some running, table tennis and light weights. Did only a single half marathon in October due to the&amp;nbsp;&lt;/span&gt;chronic issue&lt;span&gt;&amp;nbsp;my right foot ankle. Got back to snowboarding after two years pause - and for now (three days of light snowboarding) it seems that my ankle holds well.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;That&#39;s basically it. Have an unforgettable 2026!&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4227802099050060792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4227802099050060792?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4227802099050060792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4227802099050060792'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2025/12/summary-of-year-2025.html' title='Summary of the year 2025'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-6973316750861369816</id><published>2025-09-19T11:00:00.006+03:00</published><updated>2025-09-19T14:20:10.699+03:00</updated><title type='text'>My first vibe-coded app</title><content type='html'>&lt;p&gt;Hurray, I&#39;ve published recently my first vibe-coded app&amp;nbsp;&lt;a attributionsrc=&quot;/privacy_sandbox/comet/register/source/?xt=AZVPdcBc7JQevVM8I8XzSGiBBvowSBYxVURuKG93wGU9n95ESQZS_e9IqReeW81YzPOSOejvYYYeHZ6meHl1AfzKY5wg_7aRMpk1_7zn_lPuRQq7z6Ybgv3gLO6ILV1hLZrn9apZKHY8ApWkS-WJcYkKQF-dyQsjreIeKe8LLJEZdeYu1qLQAs3aVphsL9G7E9R_5qaNlb_XRWle36nOrVnrPwYBSnxmcClEhkbYhHnPuj7MiXVm-HJDAsGoUsNaMvwZJX_6kyUoZhjy_LtiYUQAmyvgasS4GK8vS5MvFYwdIf4VhgjvVyeGAwmrF642Ntgwdx5gZ0cfP1E-PYWHFwvGDUqyq2Hl2Y-cvIdxrbYSpg&quot; class=&quot;x1i10hfl xjbqb8w x1ejq31n x18oe1m7 x1sy0etr xstzfhl x972fbf x10w94by x1qhh985 x14e42zd x9f619 x1ypdohk xt0psk2 x3ct3a4 xdj266r x14z9mp xat24cr x1lziwak xexx8yu xyri2b x18d9i69 x1c1uobl x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz xkrqix3 x1sur9pj x1fey0fg x1s688f&quot; href=&quot;https://bukvichko.lovable.app/game?fbclid=IwZXh0bgNhZW0CMTAAYnJpZBExcXpyeW5hNzVWY2w5ZkowWQEeSY9c2swPt_oCLLtbyDQmcfWq8csIUrKIrMldbtIBrHE7VIRPWUHEN2-BooA_aem_pev6g62S-f9pobzaIV3SbA&quot; rel=&quot;nofollow noreferrer&quot; role=&quot;link&quot; style=&quot;-webkit-tap-highlight-color: transparent; background-color: white; border-bottom-style: none; border-bottom-width: 0px; border-inline-style: none; border-inline-width: 0px; border-top-style: none; border-top-width: 0px; box-sizing: border-box; color: #0064d1; cursor: pointer; display: inline; font-family: &amp;quot;Segoe UI Historic&amp;quot;, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif; font-size: 15px; font-weight: 600; list-style-type: none; margin-bottom: 0px; margin-inline: 0px; margin-top: 0px; outline: none; padding-bottom: 0px; padding-inline: 0px; padding-top: 0px; text-decoration-line: none; touch-action: manipulation; white-space-collapse: preserve;&quot; tabindex=&quot;0&quot; target=&quot;_blank&quot;&gt;https://bukvichko.lovable.app/game&lt;/a&gt;&amp;nbsp;which is an online game for children learning the Bulgarian alphabet (having a 5YO, the idea came from necessity 😉).&amp;nbsp;&amp;nbsp;It took 70 prompts and 3 (rather trivial) manual edits in the linked GitHub repo across a month or so (as I&#39;ve used Lovable free tier) to get it to a shippable app.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The biggest challenge was getting the audio working well (for pronouncing letters and syllables), where Lovable initially wanted to use the browser support for TTS, but it turned out that it&#39;s problematic on some browsers (e.g. Google Chrome), so I had to setup a Microsoft Azure Speech API for Text-To-Speech (their free offering won&#39;t work well enough if the game gets too popular, but I don&#39;t anticipate a big audience for it). The craziest issue was that there&#39;s a weird bug in their TTS service, and the letter Щ is pronounced like ЩАТСКИ, so I&#39;ve hacked it by making it prounounc ЩЪ instead.&lt;/p&gt;&lt;p&gt;To be honest, I hoped that I will be able to build it without looking at the code at all, but as my free Lovable credits evaporated rather quickly, I had to spend some time understanding how the code works and making tweaks. Btw, it&#39;s useful sometimes to inspect the diff of what Lovable produces after prompting, as twice I caught it doing clearly a wrong thing, and instructed it to revert the changes.&lt;/p&gt;&lt;p&gt;Overall, I&#39;m impressed that without having much frontend dev skill, the game turned out quite nice-looking and functional.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/6973316750861369816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/6973316750861369816?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6973316750861369816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6973316750861369816'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2025/09/my-first-vibe-coded-app.html' title='My first vibe-coded app'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-2590296974782885944</id><published>2025-01-07T15:44:00.004+02:00</published><updated>2025-01-07T15:59:08.039+02:00</updated><title type='text'>ChatGPT-assisted coding</title><content type='html'>&lt;p&gt;I mentioned in my yearly review, that I&#39;m using ChatGPT more and more. I don&#39;t do a lot of coding, but when I do, I often like to experiment with ChatGPT as a productivity tool. It&#39;s getting better and better and for some straightforwards tasks, it has been a pretty good time saver.&lt;/p&gt;&lt;p&gt;Here&#39;s an example&amp;nbsp;&lt;a href=&quot;https://dotnetfiddle.net/iqj4HI&quot;&gt;https://dotnetfiddle.net/iqj4HI&lt;/a&gt; that I prepared with its help that does some basic benchmarking of the speed of deserialization/serialization of a list of objects that represents table rows of a table which structure can change in between executions. ChatGPT with some tweaking and prompting saved me at least a couple of hours.&lt;/p&gt;&lt;p&gt;If you are interested, which is the winner - it was clearly &lt;b&gt;Protobuf &lt;/b&gt;beating &lt;b&gt;MessagePack &lt;/b&gt;and &lt;b&gt;Avro. &lt;/b&gt;The results below are just for 50K records, but when there are millions, the winner is even more clear.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Benchmarking&amp;nbsp;Protobuf...&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Protobuf&amp;nbsp;Serialization&amp;nbsp;Time:&amp;nbsp;10&amp;nbsp;ms,&amp;nbsp;Size:&amp;nbsp;0.94&amp;nbsp;MB&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Protobuf&amp;nbsp;Deserialization&amp;nbsp;Time:&amp;nbsp;24&amp;nbsp;ms&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Benchmarking&amp;nbsp;MessagePack...&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;MessagePack&amp;nbsp;Serialization&amp;nbsp;Time:&amp;nbsp;106&amp;nbsp;ms,&amp;nbsp;Size:&amp;nbsp;1.19&amp;nbsp;MB&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;MessagePack&amp;nbsp;Deserialization&amp;nbsp;Time:&amp;nbsp;59&amp;nbsp;ms&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Benchmarking&amp;nbsp;Avro...&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Avro&amp;nbsp;Serialization&amp;nbsp;Time:&amp;nbsp;81&amp;nbsp;ms,&amp;nbsp;Size:&amp;nbsp;0.95&amp;nbsp;MB&lt;/span&gt;&lt;br style=&quot;background-color: #fefefe; box-sizing: border-box; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot; /&gt;&lt;span style=&quot;background-color: #fefefe; color: #333333; font-family: monospace; font-size: 11.7px; text-wrap-mode: nowrap;&quot;&gt;Avro&amp;nbsp;Deserialization&amp;nbsp;Time:&amp;nbsp;112&amp;nbsp;ms&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/2590296974782885944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/2590296974782885944?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/2590296974782885944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/2590296974782885944'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2025/01/chatgpt-assisted-coding.html' title='ChatGPT-assisted coding'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-5934750814375110212</id><published>2024-12-29T07:48:00.003+02:00</published><updated>2024-12-29T07:48:52.387+02:00</updated><title type='text'>Summary of the year 2024</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://immitev.blogspot.com/2020/12/summary-of-year-2023.html&quot; style=&quot;background-color: #fafafa; display: inline; outline: none; transition: 0.3s;&quot;&gt;2023&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://immitev.blogspot.com/2022/12/summary-of-year-2022.html&quot;&gt;2022&lt;/a&gt;,&amp;nbsp;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://immitev.blogspot.com/2021/12/summary-of-year-2021.html&quot;&gt;2021&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: inherit;&quot;&gt;&amp;nbsp;.&lt;/span&gt;&lt;span style=&quot;color: black; font-family: inherit;&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;It&#39;s been now 7 years since I joined &lt;a href=&quot;https://www.cozyroc.com/&quot;&gt;COZYROC&lt;/a&gt;. I&#39;m now very close to beating the record for my lengthiest employment in a company, as I&#39;ve stayed in &lt;a href=&quot;https://www.validata-software.com/&quot;&gt;Validata&lt;/a&gt;&amp;nbsp;for almost 8 years (well, technically the outsourcing company team that started the development was bought to create a separate company after a couple of years). In 2024 nothing that remarkable to note about my management role. The ship is sailing rather smoothly. Two of my three hires in 2023 turned out to be good picks, but one of the guys left the company after 7 months. Besides the management &amp;amp; coordination part, as usual, I was doing some support, troubleshooting and occassional coding, as well.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Physically, I think I was in a decent shape - doing some running, table tennis and light weights. Did only a single half marathon this year due to the&amp;nbsp;&lt;/span&gt;chronic issue&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;my right foot ankle. Last two months I went to an orthoped who tried an innovative prolotherapy on it, but it turned out that it didn&#39;t work out. The day I planned to try to restart snowboarding, I hurt my ankle while running in the snow and the pain is too bad to risk it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I mentioned in my previous annual review that 2023 was the year of AI. In 2024 I&#39;ve been using ChatGPT (paid) quite regularly, sometimes for work related matters, too. There are indeed so many situations where I now prefer it rather than using a normal google search, that I think traditional web search engines will sooner or later be in trouble.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;That&#39;s basically it. Have a great 2025!&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/5934750814375110212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/5934750814375110212?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/5934750814375110212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/5934750814375110212'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2024/12/summary-of-year-2024.html' title='Summary of the year 2024'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7353098315672119603</id><published>2023-12-27T08:24:00.002+02:00</published><updated>2023-12-27T08:24:23.909+02:00</updated><title type='text'>Summary of the year 2023</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://immitev.blogspot.com/2022/12/summary-of-year-2022.html&quot;&gt;2022&lt;/a&gt;,&amp;nbsp;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://immitev.blogspot.com/2021/12/summary-of-year-2021.html&quot;&gt;2021&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: inherit;&quot;&gt;&lt;a href=&quot;https://immitev.blogspot.com/2020/12/summary-of-year-2020.html&quot; style=&quot;background-color: #fafafa; display: inline; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2020&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: inherit;&quot;&gt;&amp;nbsp;.&lt;/span&gt;&lt;span style=&quot;color: black; font-family: inherit;&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;It&#39;s been now 6 years since I joined COZYROC and 4.5 years since I took a managerial role in the company. This year it&#39;s been more or less business-as-usual. The most notable challenge was that two of our developers decided it&#39;s time for a change and left the company, I had to to do some more hiring. My efforts were somewhat futile the first month, but the next one I managed to hire three developers - two senior and a junior.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;On the personal side, I continued to run. Shortly after completing a challenging 35 km trail run with 2000m denivelation I had a sprained ankle in June which left me 3 months with no practing. Shockingly, I still fell that my ankle is not fully recovered although I do my regular 5Ks in the park. Thus I decided to skip snowboarding our first winter vacation around Christmas.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Besides running, I continued to practice table tennis this year with a trainer. My progress is somewhat slow, but steady.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The year 2023 was the year of AI, and I&#39;ve been playing with&amp;nbsp;ChatGPT occassionaly, mostly for fun, but also found a few applications in work. I should focus more on it this year, as this will definitely be an important lifelong skill.&lt;/p&gt;&lt;p&gt;This year I also helped my wife to launch the new brand for her digital marketing agency. I&#39;ve came up with the new name &lt;a href=&quot;https://www.mogic.digital/&quot;&gt;MOGIC&lt;/a&gt;&amp;nbsp;and helped with preparing the website text and structure. I&#39;m not that much of a web developer, but nowadays WYSIWYG tools for websites are pretty decent.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;That&#39;s basically it. Have a great 2024!&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7353098315672119603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7353098315672119603?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7353098315672119603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7353098315672119603'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2023/12/summary-of-year-2023.html' title='Summary of the year 2023'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4814525691712365916</id><published>2023-11-26T10:15:00.001+02:00</published><updated>2023-11-26T10:15:04.360+02:00</updated><title type='text'>More of a Mender</title><content type='html'>&lt;p&gt;It&#39;s been awhile since I&#39;ve ran into the distinction of &lt;a href=&quot;https://corgibytes.com/blog/2015/08/14/makers-vs-menders/&quot;&gt;makers vs. menders&lt;/a&gt;&amp;nbsp;. As times goes by, I notice I&#39;m shifting more and more to enjoing the work of a mender. It&#39;s like I&#39;ve already done enough of &quot;making stuff from scratch&quot; and fixing, growing and nurturing stuff comes more naturally to me. It&#39;s not that it&#39;s less challenging technically, it&#39;s just different. But it&#39;s certainly feels more rewarding, as (usually) the pay off for the effort comes much faster (and with much less risk for implementing stuff that might not get used).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4814525691712365916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4814525691712365916?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4814525691712365916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4814525691712365916'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2023/11/more-of-mender.html' title='More of a Mender'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-6320044772475187049</id><published>2022-12-27T11:17:00.002+02:00</published><updated>2022-12-31T17:21:27.618+02:00</updated><title type='text'>Summary of the year 2022</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;I am continuing my series of annual retrospectives from &lt;a href=&quot;https://immitev.blogspot.com/2021/12/summary-of-year-2021.html&quot;&gt;2021&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;https://immitev.blogspot.com/2020/12/summary-of-year-2020.html&quot; style=&quot;background-color: #fafafa; display: inline; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2020&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none;&quot;&gt;&lt;a href=&quot;http://immitev.blogspot.com/2019/12/summary-of-year-2019.html&quot;&gt;2019&lt;/a&gt;&amp;nbsp;.&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;It&#39;s been now 5 years since I joined COZYROC and 3.5 years since I took a managerial role in the company.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;At work, I continue to spend my time with various types of activities - assisting developers in elaborating and prioritizing tasks, doing code reviews, writing occasionally some code, advising on help desk tickets.&amp;nbsp;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Nothing that remarkable happened this year in the company. The main revenue-generating SSIS+ components suite keeps expanding, and&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://cozyroc.cloud/&quot;&gt;COZYROC Cloud&lt;/a&gt;&amp;nbsp;is maturing, as well. In terms of team management,&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;I was asked to hire a developer after another dev left. Luckily it took only an interview and an assessment of a single candidate, who got an offer and accepted it. That&#39;s what I call &quot;lean hiring&quot; - 1 of 1 🤔&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;On the personal side, I continued to do some running and for the first time in my life entered a 42km trail race. It was at Tryavna Ultra, but after doing 30km at a pretty good pace, I felt pretty bad. As I made some unwise decisions regarding eating and drinking liquids before and during the race, I had to exit it. Hopefully I&#39;ll try again next year.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Besides running, I started playing more table tennis this autumn and even had some lessons with a trainer. I&#39;m learning more tricks of the trade and improving my game, so I&#39;ll probably continue with this hobby, especially as my bigger son Stamen also started playing ambitiously.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Speaking about hobbies, this year was also big for my now 10-year hobby of following politics and geo-politics. The start of the Russian war in Ukraine in February incited my interest in geopolitics - understanding better the bigger picture. I learned a lot about this field, as well as about global economics and about warfare in general. Btw, I stumbled upon the TV series &lt;a href=&quot;https://www.imdb.com/title/tt1526318/&quot; target=&quot;_blank&quot;&gt;Borgen&lt;/a&gt;, which turned out pretty good and I&#39;ve managed to finish all 4 seasons. Highly recommended!.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;That&#39;s basically it. Have a great 2023!&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/6320044772475187049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/6320044772475187049?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6320044772475187049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6320044772475187049'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2022/12/summary-of-year-2022.html' title='Summary of the year 2022'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4158842193189533981</id><published>2021-12-22T13:30:00.004+02:00</published><updated>2021-12-29T16:31:39.422+02:00</updated><title type='text'>Summary of the year 2021</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;https://immitev.blogspot.com/2020/12/summary-of-year-2020.html&quot; style=&quot;background-color: #fafafa; display: inline; font-family: &amp;quot;times new roman&amp;quot;; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2020&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;a href=&quot;http://immitev.blogspot.com/2019/12/summary-of-year-2019.html&quot;&gt;2019&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://immitev.blogspot.com/2018/12/summary-of-year-2018.html&quot;&gt;2018&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;It&#39;s been now 4 years since I joined COZYROC and 2.5 years since I took a managerial role in the company. And another year in the COVID-19 pandemic, where most of the work was still done remotely and the office was rarely used&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;What&#39;s most notable is that in the beginning of 2021 we revealed (what is the biggest undertaking of the company, since I&#39;ve joined the company) - an iPaaS service &lt;a href=&quot;https://cozyroc.cloud/&quot;&gt;COZYROC Cloud&lt;/a&gt;, which first version took about two years for three senior developers to develop (not counting myself). My involvement there, besides being a product owner and a technical advisor, continued with authoring most of the texts on the website and the documentation. We&#39;ll&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;soon&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;be revealing another major feature&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;- the support for on-premise execution agents&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;My main technical focus remained on our flagship&amp;nbsp;&lt;a href=&quot;https://www.cozyroc.com/products&quot;&gt;COZYROC SSIS+&lt;/a&gt;&amp;nbsp;suite to which I&#39;ve been contributing in many ways - elaboration of technical and UX designs, code reviews, some coding (mainly small tasks) and helping with the customer support. Btw, in 2021&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&amp;nbsp;I&#39;ve hired the first BG-based person to join the customer support team, which was till then entirely US-based. Getting myself a direct access to our Help Desk system provided me with even more insight about the problems and the needs of COZYROC customers. I had ran a customer support system in one of my previous jobs for about an year, so I had enough experience to be able to quickly identify what can be tweaked for good in the processes and in the KB content organization.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In terms of my management duties, this year also brought a couple of unexpected challenges. I think I dealt with them pretty well. Btw, one of the places where I find some good advice on people management topics is this podcast https://tochka2.com/radiotochka2/ (mainly Bulgarian).&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the personal side, with the continuing pandemic, again I spent plenty of time with my toddler and it&#39;s been fascinating to watch him grow. Despite the extra parenting duties, I managed to dedicate enough time to run this year after spraining an ankle in the winter and to complete my second marathon in 4 hours (in Plovdiv on Oct 31st). As I celebrated my 42th birthday in 2021, I just had to do a&amp;nbsp;42.195 km run. Actually being better prepared this time, it felt a lot easier than my first marathon two years ago. Throughout the year I managed to run a total of 1200 km (750 km of which in July-October) and I can say I&#39;m in my best physical shape ever.&lt;/div&gt;&lt;p&gt;This year was also big for my hobby of following Bulgarian politics. Three elections, a plenty of political suspense and drama, me participating in online discussions, trying to educate more people how to make more rational assessment of the political parties and politicians. It was an eventful political year, and hopefully the following couple of years will be less interesting, as participating in political discussions can be exhausting and nerve-racking. Almost as tiring as trying to get some people realize that COVID-19 vaccines are actually good on a personal and a societal level :)&lt;/p&gt;&lt;p&gt;Have a great 2022!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4158842193189533981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4158842193189533981?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4158842193189533981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4158842193189533981'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2021/12/summary-of-year-2021.html' title='Summary of the year 2021'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7835550507273823755</id><published>2020-12-27T14:41:00.002+02:00</published><updated>2021-01-01T17:25:39.440+02:00</updated><title type='text'>Summary of the year 2020</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.com/2019/12/summary-of-year-2019.html&quot;&gt;2019&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://immitev.blogspot.com/2018/12/summary-of-year-2018.html&quot;&gt;2018&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;a href=&quot;http://immitev.blogspot.com/2017/12/summary-of-year-2017.html&quot; style=&quot;background-color: #fafafa; display: inline; font-family: &amp;quot;times new roman&amp;quot;; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2017&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;It&#39;s been 3 years since I joined COZYROC and 1.5 years since I took a managerial role in the company. This year has been a somewhat special one due to the COVID-19 pandemic, but as we already had experience in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;working remotely, this was not that big of a deal.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;In terms of team growth in Bulgaria, 2020 seemed to start well, as I hired a very capable developer for the secretive new product that we have been working for more than an year now. But, several months later, it turned out that the guy was, let&#39;s put it mildly, very hard to work with. Despite all my efforts to try to influence his attitude, his jerky behavior continued to escalate to a point where&amp;nbsp;I had no better option, but to let him go. A tough, but valuable, hiring lesson was that I shouldn&#39;t compromise on humility as an essential personal characteristic of anyone who&#39;s working in a team, no matter how knowledgeable and technically savvy they are.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;On the good side, I&#39;ve hired three more developers later on - one started August, another December, and the last one will be joining us in March next year.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;For our &quot;secretive&quot; product/service that would be revealed by end of January 2021, I limited my involvement mainly to the role of a product owner/manager and to giving advice on some architectural decisions. I delegated most technical decisions to the team and was mainly focusing on clarifying the vision of the product, doing feature prioritization and elaborating the use cases and the desired user experience. I think this worked out pretty well and early feedback on the UX has been positive.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: times new roman;&quot;&gt;This year I was less involved in coding, as my focus was in other activities (hiring, managing, tasks elaboration, code reviews, etc.). Still I did some programming - mainly fixes, enhancements and small new features. I coded a couple of cool things, too, like using the&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://harmony.pardeike.net/&quot;&gt;0Harmony&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: #333333; font-family: times new roman;&quot;&gt;library to workaround an SSIS bug that Microsoft didn&#39;t plan to fix. Besides coding, I&#39;ve produced some technical marketing content for COZYROC website and even a &lt;a href=&quot;https://www.youtube.com/watch?v=rMahQuhfoLU&quot;&gt;YouTube video&lt;/a&gt;. I was keeping current with tech via my usual ways (i.e. mainly by reading &lt;a href=&quot;https://www.reddit.com/r/programming/&quot;&gt;Reddit/Programming&lt;/a&gt;). My Medium subscription also fed me some interesting content on programming, management, product management, business of software etc. While running, I was also enjoying some nice podcasts like &lt;a href=&quot;https://softskills.audio/&quot;&gt;Soft Skills Engineering&lt;/a&gt;&amp;nbsp;(super good infotainment) and&amp;nbsp;&lt;a href=&quot;https://devcast.bg/&quot;&gt;DevCast&lt;/a&gt; (in Bulgarian).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;On the personal side, my second, long-awaited, child (again a boy) was born in August. It turned out I had forgotten some things about baby care, but quickly relearned the tricks of the trade. And by staying more at home due the COVID19 pandemic, I got much more practice than with my first child :) Having a small child definitely affected my daily routine, e.g. I had a lot less time for sports. OK, that might be actually an excuse, as I did find enough free time for other hobbies, like discussing BG and US politics online :) I had also a lot less time for reading books, so I read about twice less books than in 2020. Hopefully next year, I will be able to make a bit more time to reading and other things that I enjoy.&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Have a great 2021!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7835550507273823755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7835550507273823755?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7835550507273823755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7835550507273823755'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2020/12/summary-of-year-2020.html' title='Summary of the year 2020'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-1222371612418669502</id><published>2019-12-30T18:29:00.001+02:00</published><updated>2020-02-01T14:32:10.099+02:00</updated><title type='text'>Summary of the year 2019</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif;&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.com/2018/12/summary-of-year-2018.html&quot;&gt;2018&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2017/12/summary-of-year-2017.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;times new roman&amp;quot;; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2017&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/12/summary-of-year-2016.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;times new roman&amp;quot;; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2016&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;It&#39;s been 2 years since I joined COZYROC and the last 6 months were especially interesting. I was asked to replace the person who was previously responsible for running our Sofia office (he left the company to pursue other interests). So basically I moved to a &quot;3-in-1 role&quot; - a manager, a technical lead and an individual contributor (the latter obviously having a lower priority now).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;I was mostly excited at this opportunity, because this was a chance for me to implement (to an even greater extent) my understanding how a high-performing development team should be run. At the same time I was somewhat hesitant of taking on some administrative duties/chores and of having to deal with various people-management stuff (for the latter I had not enough practice, having been mainly on the other end of such relationships). In the past, I have lead small teams, but mostly in the making/evaluating/influencing the technical decisions. I have also been in a project management role awhile ago, so I&#39;ve done some tasks prioritization, allocation, etc. But the current arrangement felt definitely different...&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;I decided I need to do some additional learning to be able to perform well in a managerial role. I&#39;ve listened to the &lt;a href=&quot;https://www.storytel.com/bg/bg/books/142723-Radical-Candor&quot;&gt;Radical Candor&lt;/a&gt; audio-book (which might be considered a classic already), which powerful ideas would definitely become the pillars of my managerial approach. I&#39;ve read a plethora of articles on management and leadership on Medium (so many that I decided to become a subscriber). I&#39;ve read also a newly published BG book &lt;a href=&quot;https://ciela.com/studen-dush-za-menidzhari.html&quot;&gt;Студен душ за мениджъри&lt;/a&gt; which despite not being targeted to the tech industry, had several worthwhile insights about what is key for being a successful manager. Now, I&#39;m feeling better equipped to be a manager that doesn&#39;t suck (at least not in a big way), but time will tell how well I&#39;ll be able to put this wisdom in practice.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;My first challenge as a manager was to grow our team by hiring two more .NET developers. It took a couple of recruitment sprints (i.e. running ads in Jobs.bg and LinkedIn and then carefully assessing candidates) to fill in the positions. It took more than 20 interviews, 9 take-home-assessment-tasks, and a couple of rejected job offers. Unfortunately one of the new hires didn&#39;t prove to be a good cultural fit and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;after 2 months&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&amp;nbsp;I had to let him go. It&#39;s unfortunate and emotionally draining when such things happen, but it&#39;s a lesson for me to try to assess in a greater depth the candidate&#39;s attitude and team work skills. Btw, this incident also motivated me to read the book &lt;/span&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/28930640-the-ideal-team-player&quot; style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;The Ideal Team Player&lt;/a&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;, which gave me extra clarity what kind of non-technical qualities I should try to look for in a candidate (humility is a big one). I have started in December a new&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;recruitment&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;sprint, but the holiday month is probably not the best one to get lucky&amp;nbsp;:) Hope that January is better...&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;Btw, one of the first practices I introduced as a new manager in the company was 1:1 meetings. I had experience with those in my last two jobs. Although they are not yet regular, I think they have a positive impact on everyone and would definitely stick with those. I am also introducing annual performance reviews, in order to state more clear expectations what skills, attitude and activities are considered desirable at the company.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;On the personal side, I&#39;ve turned 40 this year. To combat the feeling of getting old, I was extra motivated to complete my first full marathon (the Sofia Marathon in October). It was tough after the 25th kilometer and I was close to giving up at some point, but managed to finish in 04:14 hours in a good spirit and with enough power to sprint the last 100 meters. This year, I also made some progress with my snowboarding hobby, as I took some extra lessons and had more practice than usual. Not sure if this year I would get a similar number of snow days, but let&#39;s hope that my muscle memory is stronger than my other memory :)&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Have a wonderful 2020!&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/1222371612418669502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/1222371612418669502?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1222371612418669502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1222371612418669502'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2019/12/summary-of-year-2019.html' title='Summary of the year 2019'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7582540992179380377</id><published>2018-12-30T13:12:00.002+02:00</published><updated>2018-12-30T13:12:59.463+02:00</updated><title type='text'>Summary of the year 2018</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2017/12/summary-of-year-2017.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2017&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/12/summary-of-year-2016.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2016&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/01/summary-of-year-2015.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2015&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2014/12/summary-of-year-2014.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;&amp;nbsp;2014&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2013/12/summary-of-year-2013.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2013&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2012&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px; outline: none; transition: all 0.3s ease 0s;&quot;&gt;2011&lt;/a&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;It&#39;s been more than a year since I&#39;ve joined&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.cozyroc.com/&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px;&quot;&gt;COZYROC&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;and it has been definitely an exciting time. We started just two guys in the newly opened Sofia office and finishing 2018 with a team of six developers. It took a lot of interviews and coding tasks assessments to assemble a strong team, but I am quite happy with the results.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; font-family: &amp;quot;times new roman&amp;quot;; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;The coolest thing about being part of this company is that I&#39;ve found a way to channel my intrapreneural passion by participating in the optimization of various parts of the business - strategy, marketing, branding, customer support, documentation, etc. Still my primary duties revolved around a traditional-developer-type-of-work: implementing new components (e.g. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.cozyroc.com/ssis/mongodb&quot; style=&quot;color: #333333; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 14px;&quot;&gt;MongoDB SSIS adapters&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;), improving existing functionality, bug-fixing, process automation. On the latter, I&#39;ve helped with setting up a brand new automated build &amp;amp; test processes (based on GitLab CI) and have introduced obfuscation (better late than never).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;On the product side, I&#39;ve invested a lot of time to develop a solid understanding of the business domain, our company&#39;s portfolio, our value proposition and how do we compare with the other vendors. I&#39;ve been an&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;advocate for various UX improvements, have come up with some (hopefully notable) ways to enhance &amp;amp; extend our products and have been providing critical feedback on various feature ideas. I&#39;ve also been actively enhancing the quality of the code base (by refactoring and practicing the &quot;boy-scout rule&quot;) and have been carefully reviewing most of the merge requests (making sure the team is producing both functionally correct and easy-to-maintain code). Btw, on the topic of code quality, I&#39;ve read this summer a very good book&amp;nbsp;&lt;a href=&quot;https://www.goodreads.com/book/show/8677004-the-art-of-readable-code&quot;&gt;The Art of Readable Code&lt;/a&gt; that I can recommend to every developer that cares about writing good code.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;I&#39;ve also found a way to channel my passion for writing by occasionally taking the role of technical copywriter (or sometimes just a reviewer) for most of the new content on our website (e.g &lt;a href=&quot;http://www.cozyroc.com/ssis/dbas&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;http://www.cozyroc.com/ssis/solution-architects&quot;&gt;featured&lt;/a&gt; &lt;a href=&quot;http://www.cozyroc.com/ssis/application-integrators&quot;&gt;components&lt;/a&gt; pages, the newly released &lt;a href=&quot;http://www.cozyroc.com/ssis/javascript&quot;&gt;JavaScript support for SSIS&lt;/a&gt;, etc.). As I don&#39;t get to write often in my blog, that&#39;s been definitely a good practice.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;Beyond programming, I&#39;ve been in a pretty good shape this year. I&#39;ve restarted running after a small injury last year and did one 20K run in Sofia Marathon. Hopefully next year would do more 20K runs and eventually a full marathon. Also I&#39;ve been doing regularly push-ups and plan to continue this practice next year (at until I got to do 40 pushups without resting). Also hope to improve my snowboarding skills this winter (already booked some holidays in Borovets and Pamporovo)!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;Have a fantastic 2019!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7582540992179380377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7582540992179380377?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7582540992179380377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7582540992179380377'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2018/12/summary-of-year-2018.html' title='Summary of the year 2018'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-6825744424108206453</id><published>2018-08-26T14:08:00.001+03:00</published><updated>2020-01-24T10:04:48.159+02:00</updated><title type='text'>Some good advice on how to do better code reviews</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Code reviews can be illuminating, but also sometimes frustrating for all the parties involved, if not done right. I decided to re-post some of the better articles I&#39;ve read the last 6 months on the topic, as I think they deserve to&amp;nbsp;reach a wider audience, beyond our internal company&#39;s Slack:&lt;br /&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://arne-mertz.de/2017/12/code-reviews-why/&quot;&gt;https://arne-mertz.de/2017/12/code-reviews-why/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/vaidehijoshi/crafting-better-code-reviews&quot;&gt;https://dev.to/vaidehijoshi/crafting-better-code-reviews&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pagerduty.com/blog/better-code-reviews-empathy/&quot;&gt;https://www.pagerduty.com/blog/better-code-reviews-empathy/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://guzalexander.com/2018/07/10/code-review-missing-advice.html&quot;&gt;https://guzalexander.com/2018/07/10/code-review-missing-advice.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.philipphauer.de/code-review-guidelines/&quot;&gt;https://blog.philipphauer.de/code-review-guidelines/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
UPDATE: Some more good articles:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/swlh/3-problems-to-stop-looking-for-in-code-reviews-981bb169ba8b?&quot;&gt;https://medium.com/swlh/3-problems-to-stop-looking-for-in-code-reviews-981bb169ba8b?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/&quot;&gt;https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.michaelagreiler.com/code-reviews-at-microsoft-how-to-code-review-at-a-large-software-company/&quot;&gt;https://www.michaelagreiler.com/code-reviews-at-microsoft-how-to-code-review-at-a-large-software-company/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Hopefully you&#39;ll find some missing piece of the puzzle how to make your code reviews more useful and enjoyable.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/6825744424108206453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/6825744424108206453?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6825744424108206453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/6825744424108206453'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2018/08/some-good-advice-on-how-to-do-better.html' title='Some good advice on how to do better code reviews'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4038426927007240680</id><published>2017-12-27T12:53:00.001+02:00</published><updated>2018-12-28T17:51:14.861+02:00</updated><title type='text'>Summary of the year 2017</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;I am continuing my series of annual retrospectives from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/12/summary-of-year-2016.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;2016&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-size: 14px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/01/summary-of-year-2015.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;2015&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2014/12/summary-of-year-2014.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;&amp;nbsp;2014&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2013/12/summary-of-year-2013.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;2013&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;2012&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot; style=&quot;background-color: #fafafa; color: #00b2b4; display: inline; font-size: 14px; outline: none; transition: 0.3s;&quot;&gt;2011&lt;/a&gt;...&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;After spending a year and a half at&amp;nbsp;&lt;a href=&quot;https://www.receipt-bank.com/&quot;&gt;Receipt Bank&lt;/a&gt;&amp;nbsp;(a quite wonderful company to work for), in October I took a somewhat unexpected opportunity and joined&amp;nbsp;&lt;a href=&quot;https://www.cozyroc.com/&quot;&gt;COZYROC&lt;/a&gt;&amp;nbsp;in its newly opening development center in Sofia. I am really excited to be a part of a smaller company where I would hopefully be making much greater business impact - by utilizing not just my programming skills, but also my aptitude for product thinking. I guess I had gotten also a bit nostalgic about programming in C#, too. By departing from and then returning to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;the Microsoft development stack,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;I can now more objectively&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;assess&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;what its pros and cons are.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;In Receipt Bank this year I continued with my role as a (mostly) backend developer in the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;RBA Mobile Apps team, but I also worked on some small features in the web app. My productivity and comfort developing with Ruby/Rails improved further. I also&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;developed expertise in various technologies and APIs -&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&amp;nbsp;Segment, MixPanel, Twilio SMS, etc. It&#39;s somewhat strange that I changed jobs at a time when I had just started to feel quite competent both in the tech stack and the domain. Overall I felt good about my work at&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;Receipt Bank.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;I think I had my fair share in helping the company deliver superior products and services to its clients. On the other hand, I was feeling that my opportunities to contribute significantly to the business success of the company were limited, given how much talent RB had already employed. It was quite a difficult decision to leave such a good job and great teammates, but I simply couldn&#39;t ignore the opportunity to be among the first COZYROC devs in the Sofia office. I had also wanted for a while to try developing components/developer tools and&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/SQL_Server_Integration_Services&quot; style=&quot;font-size: 14px;&quot;&gt;SSIS&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-size: 14px;&quot;&gt;&amp;nbsp;looks like an interesting enough space for that. There are a lot of systems and technologies that businesses would be interested to integrate with, so variety is more or less guaranteed :)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;Besides programming, 2017 was a somewhat good year for my physical shape. E.g. the last 3 months I started to do some cycling in the park, which I hadn&#39;t done in 20+&amp;nbsp;years. But the highlight of the year was definitely my running practice. I did four 20K runs (Pancharevo, Pleven, Batak, Borisovata Gradina), and also discovered that trail runs are much more fun than city jogging. Unfortunately I got the infamous &quot;runner&#39;s knee&quot; problem in late November (obviously I overworked my right knee during my last two 20K runs), but I expect that I would fully recover in the next couple of months. Hopefully I would do a full marathon next year, if all goes well.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; font-size: 14px;&quot;&gt;Wish everyone a great 2018 year!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4038426927007240680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4038426927007240680?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4038426927007240680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4038426927007240680'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2017/12/summary-of-year-2017.html' title='Summary of the year 2017'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-1511176120454900747</id><published>2017-01-28T23:05:00.000+02:00</published><updated>2017-01-28T23:05:03.056+02:00</updated><title type='text'>Code Comments - Friend or Foe?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently I had an interesting discussion on code comments, which motivated me to spend some time to research and meditate on this topic. It started with a code review, where I was advised to better remove a comment that I have added. Basically I have added a warning that the code did something with dubious value from the user perspective. Additionally there was nothing in the UI to warn the user what would exactly happen and how to deal with potentially undesired effects. What was special about the situation is that there was nothing wrong with the code implementation-wise, but there was something potentially wrong with the intent behind the code. I also brought the UX issue to the attention of the product owner, but as it wasn&#39;t something that seemed to require an immediate action, I felt that I also needed to warn with a code comment the other curious readers. Btw, later it was actually decided to prioritize the issue, so the comment could be safely removed. But if there was no decision to do something about it, other developers might have scratched their heads over the meaning and the value of this code section.&lt;br /&gt;
&lt;br /&gt;
Anyway, the bigger topic to tackle here is whether code comments are a friend or a foe. Some&amp;nbsp; arguments against them are &quot;writing clean code eliminates the need for comments&quot;, &quot;code comments should not be an excuse for not fixing things or doing them properly&quot;, &quot;code comments are dangerous, as if they get out-of-sync with the code, they only bring confusion&quot;. There is definitely an element of truth in all these statements, but all such arguments need to be evaluated in the proper context.&lt;br /&gt;
&lt;br /&gt;
I believe it&#39;s a false dichotomy to &quot;write clean code vs. write documented code&quot; - why not just do both, if it would make developers&#39; work more efficient and enjoyable. E.g if the code is there to handle some peculiarities of 3rd party system, why not describe those and add some reference links, instead of just having some code without any context.&lt;br /&gt;
&lt;br /&gt;
When we analyze the cost of writing comments, we should also try to evaluate the cost of the time wasted, due to not having good comments. There are so many factors in the economics of maintaining code comments that I am sure I can&#39;t cover them in a single blog post :)&lt;br /&gt;
&lt;br /&gt;
Actually the question &lt;b&gt;if&lt;/b&gt; it&#39;s worth writing comments is a way too vague, the better question is probably &lt;b&gt;when&lt;/b&gt; it&#39;s worth to write comments. Or at least when to consider writing comments. My rule of thumb is that whenever it&#39;s not clear &lt;b&gt;why&lt;/b&gt; this code is there or why it is written in a particular weird way, better consider adding some explanation (assuming there is a good one). Legacy code with poor quality should get special treatment, as it can have a completely different maintenance challenges. Here is one example I am &lt;a href=&quot;https://www.quora.com/How-much-should-I-comment-on-my-code/answer/Phil-Jones&quot;&gt;quoting&lt;/a&gt; below:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&quot;When working with a lot of dense legacy code, you might want to add comments to help you keep track of what you&#39;re discovering about what the code is doing, and the dates of particular interventions and fixes that you made. This is not &quot;good&quot; as such, but might be a necessary evil. It&#39;s really just a work-around for the lack of better tools to do the same job.&quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Btw, besides clean code, good commit messages can also decrease the need of code comments. But they do have some disadvantages - mainly discoverability and accessibility. A code comment is much harder to ignore than a commit message, as it&#39;s in your face. You don&#39;t see commit messages unless you look for them. And even if you decide you need to look for them, they might be hard to find. E.g. after multiple changes in the same line of code, &quot;annotate&quot; won&#39;t bring you quickly the context that you need to familiarize yourself with. Trying to find the intent and the relevant context from commit messages might be time-consuming and sometimes annoying. Having such information easily-accessible within the code obviously saves you time and energy.&lt;br /&gt;
&lt;br /&gt;
This topic certainly has a lot of depth and breadth, and I am just scratching the surface here. If i have to summarize my current take on code comments is that when done right it pays off to maintain them. When done wrong, they can be a source of distraction and confusion. I also think that no code exists in vacuum, i.e. as it gets written to solve problems in a particular domain, the more easily accessible the domain knowledge is, the better. Anything that helps you jump quickly from the code to the context in which the code operates is a clear win (be it code comments or links to some wiki, document, issue, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;P.S.&lt;/b&gt; See also some interesting links below that also advocate on saying &quot;yes&quot; to code comments:&lt;br /&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://blog.codefx.org/techniques/documentation/comment-your-fucking-code/&amp;amp;source=gmail&amp;amp;ust=1485602590271000&amp;amp;usg=AFQjCNHOsMWEjQgx3cFEH54jyDKQ2IzWuw&quot; href=&quot;http://blog.codefx.org/techniques/documentation/comment-your-fucking-code/&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: small; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; target=&quot;_blank&quot;&gt;http://blog.codefx.org/&lt;wbr&gt;&lt;/wbr&gt;techniques/documentation/&lt;wbr&gt;&lt;/wbr&gt;comment-your-fucking-code/&lt;/a&gt;&lt;br /&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://mikegrouchy.com/blog/2013/03/yes-your-code-does-need-comments.html&amp;amp;source=gmail&amp;amp;ust=1485602590271000&amp;amp;usg=AFQjCNHdGJEsehZK4Q8tJaKjAiWPORzciw&quot; href=&quot;http://mikegrouchy.com/blog/2013/03/yes-your-code-does-need-comments.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: small; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; target=&quot;_blank&quot;&gt;http://mikegrouchy.com/blog/&lt;wbr&gt;&lt;/wbr&gt;2013/03/yes-your-code-does-&lt;wbr&gt;&lt;/wbr&gt;need-comments.html&lt;/a&gt;&lt;br /&gt;
&lt;a data-saferedirecturl=&quot;https://www.google.com/url?hl=en&amp;amp;q=http://blog.codefx.org/techniques/documentation/comment-your-fucking-code/&amp;amp;source=gmail&amp;amp;ust=1485602590271000&amp;amp;usg=AFQjCNHOsMWEjQgx3cFEH54jyDKQ2IzWuw&quot; href=&quot;http://blog.codefx.org/techniques/documentation/comment-your-fucking-code/&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: small; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; target=&quot;_blank&quot;&gt;http://queue.acm.org/detail.cfm?id=1053354&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/1511176120454900747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/1511176120454900747?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1511176120454900747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1511176120454900747'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2017/01/code-comments-friend-or-foe.html' title='Code Comments - Friend or Foe?'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7537924672604851459</id><published>2016-12-28T16:58:00.002+02:00</published><updated>2016-12-28T22:25:38.092+02:00</updated><title type='text'>Summary of the year 2016</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;I am continuing my series of annual retrospectives from&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/01/summary-of-year-2015.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Helvetica Neue Light&amp;quot;, HelveticaNeue-Light, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; outline: none; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; transition: color 0.3s; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;2015&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2014/12/summary-of-year-2014.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Helvetica Neue Light&amp;quot;, HelveticaNeue-Light, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; outline: none; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; transition: color 0.3s; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt; 2014&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2013/12/summary-of-year-2013.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Helvetica Neue Light&amp;quot;, HelveticaNeue-Light, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; outline: none; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; transition: color 0.3s; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;2013&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Helvetica Neue Light&amp;quot;, HelveticaNeue-Light, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; outline: none; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; transition: color 0.3s; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;2012&lt;/a&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #fafafa; color: #00b2b4; display: inline; font-family: &amp;quot;Helvetica Neue Light&amp;quot;, HelveticaNeue-Light, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; outline: none; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; transition: color 0.3s; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;2011&lt;/a&gt;... &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;The highlight of this year for me (professionally) was joining &lt;a href=&quot;https://www.receipt-bank.com/&quot;&gt;Receipt Bank&lt;/a&gt;. It is a really special company that operates extremely well on so many levels - vision, &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;strategy&lt;/span&gt;, execution. It is clearly a leader in its domain and it has bold ambitions (that &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;are &lt;/span&gt;backed up with smart plans and capable people) to sustain and even accelerate its&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt; &lt;/span&gt;rapid growth.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;I already blogged about Receipt Bank &lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;a href=&quot;http://immitev.blogspot.bg/2016/10/my-new-job-at-receipt-bank.html&quot;&gt;here&lt;/a&gt; and I can only add that currently I am a part of the RB Mobile Apps team. &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;My main responsibilities are&lt;/span&gt; tak&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;ing&lt;/span&gt; care of the backend API and of &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;a couple of features in the web&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt; app&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;which&lt;/span&gt; would increase the adoption of the mobile apps. I learned a lot about RESTful APIs along the way, as well as I got &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;acquainted &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;to&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; GraphQL &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;(&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;the&lt;/span&gt;&lt;/span&gt; new &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;promising HTTP APIs parad&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;igm&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. Besides getting more proficient in Ruby, I also refreshed my Java knowledge a bit by getting to know a part of the code-base of the RB Android app.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;So yes, 2016 was definitely a&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;n interesting&lt;/span&gt; year &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;- &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;wrest&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;ling with&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; a new programming language (Ruby), &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;new and highly-&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;magical&lt;/span&gt;&lt;/span&gt; web framework (Rails), new version control (Git, &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;for which I ha&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;d&lt;/span&gt; a qui&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;te &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;basic knowledge&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;), database (Postgre&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;S&lt;/span&gt;ql), various new third-party services (&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;Elastic&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt; Search&lt;/span&gt;&lt;/span&gt;, MixPanel, Twilio, Mandrill, etc), a new opera&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;ting system (&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;s&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;wit&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;ching to Ma&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;c OS after so many years of Win&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;dows), etc&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;W&lt;/span&gt;ith so many new things to get my head around, &lt;/span&gt;I am happy I didn&#39;t &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;feel&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;almost any&lt;/span&gt; &quot;learning fatigue&quot; and that I &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;have ov&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;ercome the initial friction&lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;s to productive work.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fafafa; color: #333333; display: inline; float: none; font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;Let&#39;s see what the year 2017 would &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;have &lt;span style=&quot;font-family: &amp;quot;helvetica neue light&amp;quot; , , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;in store&lt;/span&gt;&lt;/span&gt;! Bring it on!&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7537924672604851459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7537924672604851459?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7537924672604851459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7537924672604851459'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2016/12/summary-of-year-2016.html' title='Summary of the year 2016'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-5980095052631762047</id><published>2016-11-28T19:41:00.001+02:00</published><updated>2016-12-02T23:16:00.444+02:00</updated><title type='text'>7 months with RubyMine</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
This is a cross-post (with some minor edits) from the internal dev blog of Receipt Bank, which I was motivated to write after a recent company offsite event. Our dev team organized an Unconference, and there were a couple of talks about tools there. Surprisingly I am the only developer in our Ruby team that uses RubyMine for Ruby coding, so I wanted to let my colleagues know why I chose it and why I am quite happy about it.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;b&gt;Why I chose RubyMine:&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;RubyMine is part of the JetBrains family - I have enjoyed working with JetBrains tools for years - everything I tried was very polished and improved my productivity significantly. I have been using ReSharper (VS.NET extension) for full 10 years and reached a point where I would simply refuse to do any serious C# development without it. I have also used PyCharm while I was playing with Python (it was, as I expected, quite good, too). Btw,&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;https://en.wikipedia.org/wiki/Android_Studio&quot; rel=&quot;nofollow&quot; style=&quot;color: #3572b0; text-decoration: none;&quot;&gt;Android Studio&lt;/a&gt;&amp;nbsp;(the official Android IDE), that I recently tried, is also based on JetBrains IntelliJ IDEA platform and seems to offer a similarly smooth development experience.&lt;/li&gt;
&lt;li&gt;RubyMine understands Ruby (and Rails) better than any general purpose text editor. This opens up possibilities of offering some unique features and a superior implementation of other common features (e.g. its code navigation is more reliable than navigation based on simple CTags).&lt;/li&gt;
&lt;li&gt;A lot of devs, on various internet forums, swear that RubyMine is the best IDE for Ruby development. I even stumbled upon a&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://blog.andrewvc.com/i-am-now-a-ruby-miner/&quot; rel=&quot;nofollow&quot; style=&quot;color: #3572b0; text-decoration: none;&quot;&gt;post&lt;/a&gt;&amp;nbsp;by Vim/Emacs user who switched to RubyMine :) &lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Some notable characteristics of JetBrain IDEs:&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;Excellent editor with many built-in features. also extensible (via plugins)&lt;/li&gt;
&lt;li&gt;Fuzzy search a file, class, etc.&lt;/li&gt;
&lt;li&gt;Navigation to recent/recently edited files, etc..&lt;/li&gt;
&lt;li&gt;Flexible windows positioning&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;_mce_tagged_br&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
Integrated version control, very nice built-in diff editor, quite useful Annotate feature, etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;_mce_tagged_br&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
Integrated database tools - more or less can replace one&#39;s DB admin/query&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Keyboard-friendly - you can assign any command/action a keyboard combination&lt;/li&gt;
&lt;li&gt;Plugins - tons of plugins for the IntelliJ platform (i.e. would work on any JetBrains IDE)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;b&gt;Ruby/Rails-specific productivity features (listing just a few):&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;Excellent editor for all file types you need - &amp;nbsp;Ruby, Rails, Slim, ERB, CoffeeScript, Markdown, Yaml, etc.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Super nice code navigation, especially useful when working with big and unfamiliar codebases. You can quickly navigate around, even go to gems&#39; code. Navigate from Rails controller to views and vice-versa. Navigate from spec to class and vice-versa, etc...&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;&quot;&gt;
&lt;ul style=&quot;margin: 0px;&quot;&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Code completion that works pretty well&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Code formatting (instantaneous) + on-demand reformatting. Warnings for formatting inconsistencies.&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Quick smart code block selection (Cmd + W)&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Find usages and refactoring features - it&#39;s not fully automatic, as Ruby is a dynamic language, but still quite good&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Powerful visual test runner that offers everything you need for executing and troubleshooting RSpec and Minitest tests&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Visual Ruby debugger - yes, an actual debugger with breakpoints. I use it mostly for debugging test runs, as it is somewhat slow to start the with a huge web app. Btw, RubMine support for attach to process is cooking for the next release and it might be useful.&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Catch errors early - show syntax errors &amp;amp; warnings while you type, warn about typos (via integrated spell checker)&lt;/li&gt;
&lt;li class=&quot;_mce_tagged_br&quot;&gt;Internationalization helpers - preview the English value instead the key, quick jump to key definition, autocomplete of keys&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;_mce_tagged_br&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;_mce_tagged_br&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Getting started with RubyMine is easy:&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;Has very reasonable defaults - just install RubyMine and you can start coding without much frustrations (i.e. no need to tweak configurations or install additional plugins)&lt;/li&gt;
&lt;li&gt;Fully configurable key mappings - choose a familiar binding and customize it further, as you wish&lt;/li&gt;
&lt;li&gt;Excellent features discoverability - good menus organization, intuitive UI, extensive online help, and there is even an action &quot;Find Action&quot; action within the IDE&lt;/li&gt;
&lt;li&gt;Learn as you go - initially you can start discovering and using features by just looking around in the GUI. Gradually you would want to become more productive and start to learn the shortcuts and other tricks. After using it for 6-7 months, I still have a lot to learn and to automate in my workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Popular objections to using RubyMine&lt;/b&gt;:&lt;/div&gt;
&lt;ul style=&quot;margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;&lt;i&gt;You don&#39;t really need a full-fledged IDE to get work done in a dynamic language like Ruby&lt;/i&gt;&amp;nbsp;- it&#39;s definitely not a must have, but once you get used to its unique productivity features, you would be hesitant to go back to a generic text editor :)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Very few rubyists use an IDE, it&#39;s somewhat against the philosophy of the language, which emphasizes simplicity&lt;/i&gt;&amp;nbsp;- well, I agree that sometimes less is more, and that initially an IDE like RubyMine might look overwhelming. But sill some developers (like me) just want it all&amp;nbsp;&lt;img alt=&quot;(smile)&quot; class=&quot;emoticon emoticon-smile&quot; data-emoticon-name=&quot;smile&quot; src=&quot;https://receiptbank.atlassian.net/wiki/s/413795213/6451/ff643a3edd67cd06cf9429fe8aff81d1c07bc876/_/images/icons/emoticons/smile.png&quot; style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: text-bottom;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Slow and memory-hungry&lt;/i&gt;&amp;nbsp;- well, memory has definitely not been an issue for my MacBook Pro. Speed has been fine most of the time (well, for some huge legacy files you could turn off code analysis, if it gets too much in your way). Startup time is also not an issue, as I keep RubyMine always open.&lt;/li&gt;
&lt;li&gt;I&lt;i&gt;t&#39;s paid software&lt;/i&gt;&amp;nbsp;- so what? SublimeText is also paid (although cheaper). If it helps you get in the state of flow by enabling you read and write code faster, isn&#39;t it worth it. It can also detects some errors for you, and ultimately improve the quality of the software you produce.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;b&gt;Final words&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
OK, I suspect that no one would decide to leave the comfort of their favourite editor easily after reading some ramblings by a developer who&#39;s been doing Ruby for just 7 months. If you have been using SublimeText (or something equivalent like Atom, VS Code, etc.) till now, you might feel it serves you very well. You are probably right, but I would still encourage you to consider giving RubyMine a try, if you want to enjoy an extra feeling of control and further improve your productivity. Especially if you are working on a big codebase, I think you might find it well-worth it. But words are cheap, you gotta see it in action. Here is one nice&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;https://www.youtube.com/watch?v=LnN-JIxDRCg&quot; rel=&quot;nofollow&quot; style=&quot;color: #3572b0; text-decoration: none;&quot;&gt;screencast&lt;/a&gt;&amp;nbsp;I found recently, that might get you hooked further&amp;nbsp;&lt;img alt=&quot;(smile)&quot; class=&quot;emoticon emoticon-smile&quot; data-emoticon-name=&quot;smile&quot; src=&quot;https://receiptbank.atlassian.net/wiki/s/413795213/6451/ff643a3edd67cd06cf9429fe8aff81d1c07bc876/_/images/icons/emoticons/smile.png&quot; style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: text-bottom;&quot; /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;
Anyway, whatever your editor/IDE of choice is, the important thing is to develop with pleasure!&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/5980095052631762047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/5980095052631762047?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/5980095052631762047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/5980095052631762047'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2016/11/7-months-with-rubymine.html' title='7 months with RubyMine'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-361417832147698022</id><published>2016-10-28T07:34:00.001+03:00</published><updated>2016-12-28T15:34:58.766+02:00</updated><title type='text'>My new job at Receipt Bank</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
It&#39;s been now nearly 7 months since I joined &lt;a href=&quot;https://www.receipt-bank.com/&quot;&gt;Receipt Bank&lt;/a&gt; and it&#39;s about time to share my impressions. This has been a very intriguing endeavour for me as this is quite a different company from my previous employers. Here is what&#39;s so fascinating about my job at RB:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Company Size&lt;/b&gt; - &lt;a href=&quot;https://www.linkedin.com/company/1370329&quot;&gt;Receipt Bank&lt;/a&gt; is a fast growing SAAS startup, employing more than 150 people, among which around 50 developers (most of them based in Bulgaria, and ~20% based in Slovenia). That&#39;s by far the biggest company I have worked for (before RB, the largest dev team I had been a part of was 4 times smaller).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Remote Work&lt;/b&gt; - That&#39;s the first time in my career when I get to work remotely (well, if I am not counting occasional sick days when I had been working from home :) ). Besides Sofia, there are RB developers are in Plovdiv, Burgas, Varna, etc. But the company also holds a nice office next to hotel Hilton, Sofia, so people could work in an office space if they prefer to (or just pass by when they want to socialize face-to-face).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Developer Culture&lt;/b&gt; - Receipt Bank has by far the best developer culture that I have got a chance to experience first-hand. Very reasonable and constantly improving processes,&amp;nbsp;very smart and capable colleagues, a strong management buy-in for doing whatever it takes to continuously deliver high-quality software. Basically a fantastic place to learn, to improve your skills and to build things you can be proud of.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Technology Stack&lt;/b&gt; - My main duties in the last 7 months were in supporting and extending the web application and the API of the company&#39;s main SAAS product. It&#39;s all Ruby on Rails there, which is a quite different beast compared to my beloved C# and ASP.NET. I really liked to try out writing production-class code in a dynamic language like Python or Ruby, and see for my self how it compares to C#. There are pros &amp;amp; cons - e.g. Ruby gives you more freedom, more expressiveness and more magic, but in order to maintain a large code-base you need to write a lot more automated tests. &lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
So yeah, this job is a really big change for me - new development ecosystem, new tools, different processes, etc. Fortunately, after these 7 months I feel comfortable enough with the technology and the business domain and I have the basics to contribute much more effectively to the success of Receipt Bank&#39;s products.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/361417832147698022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/361417832147698022?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/361417832147698022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/361417832147698022'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2016/10/my-new-job-at-receipt-bank.html' title='My new job at Receipt Bank'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-4767299972953068631</id><published>2016-01-02T19:18:00.001+02:00</published><updated>2016-01-20T16:56:55.600+02:00</updated><title type='text'>Summary of the year 2015</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.bg/2014/12/summary-of-year-2014.html&quot;&gt;2014&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2013/12/summary-of-year-2013.html&quot;&gt;2013&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot;&gt;2012&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot;&gt;2011&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/01/summary-of-year-2010.html&quot;&gt;2010&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/12/summary-of-year-2008.html&quot;&gt;2008&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/01/summary-of-year-2007.html&quot;&gt;2007&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2007/01/summary-of-year-2006.html&quot;&gt;2006&lt;/a&gt; and &lt;a href=&quot;http://immitev.blogspot.com/2006/01/summary-of-year-2005.html&quot;&gt;2005&lt;/a&gt;... &lt;br /&gt;
&lt;br /&gt;
I already &lt;a href=&quot;http://http//immitev.blogspot.bg/2015/10/my-new-job-at-klear.html&quot;&gt;blogged&lt;/a&gt; about the most significant change – my new job at &lt;a href=&quot;https://klearlending.com/&quot;&gt;KLEAR&lt;/a&gt;. There is not much to add to this topic two months later, besides that we launched a beta version of our &lt;a href=&quot;https://klearlending.com/budget&quot;&gt;free personal budget management web application&lt;/a&gt;. I was not involved much in it (just spent one week helping with some infrastructure and deployment stuff), but still it’s nice that we already put out there something that some people can find useful. Well, the first release is lacking in usability (so most likely only advanced users would find it appealing), but it would evolve next year… Anyway, our main focus is the P2P platform and we are making a good progress with the front office and the back office applications. &lt;br /&gt;
&lt;br /&gt;
Technology-wise, it is good that I got to work with ASP.NET MVC. After so many years of ASP.NET WebForms, I find it refreshing. Working with RavenDB is also interesting - my first attempt to introduce a NoSQL database in my previous company 4-5 years ago was unsuccessful (although it was quite a good fit for one of Validata products), so now I finally can develop more in-depth understanding of the technology. I am also improving my frontend development skills – JQuery, Kendo UI, and various other Javascript libraries.&lt;br /&gt;
&lt;br /&gt;
Last year was definitely a year to remember, but I am now looking at what 2016 would offer!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/4767299972953068631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/4767299972953068631?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4767299972953068631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/4767299972953068631'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2016/01/summary-of-year-2015.html' title='Summary of the year 2015'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7340728580394311822</id><published>2015-10-31T19:24:00.001+02:00</published><updated>2016-01-02T16:11:19.235+02:00</updated><title type='text'>My new job at KLEAR</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Five months ago I quit &lt;a href=&quot;http://www.validata-software.com/&quot;&gt;Validata Group&lt;/a&gt; where I worked more than 8 years. This was a big change for me, but for many reasons I felt that this was the proper time to move on. I took the summer off to decide what to do next (in the meantime I &amp;nbsp;traveled a lot - visiting my sister in Mexico, going to a friend&#39;s wedding in Germany, and enjoying a 2 week vacation at the Bulgarian seaside).&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There were several technology areas which I was planning to explore since years and finally I found the time to do so this summer. After a decade in the .NET world, it was fun to try some Python coding, play with &lt;a href=&quot;http://robotframework.org/&quot;&gt;Robot Framework&lt;/a&gt;, etc... And just as I was ruminating about a couple of startup ideas with those technologies, I learned about a 3-months old startup called &lt;a href=&quot;http://www.klearlending.com/&quot;&gt;KLEAR&lt;/a&gt;&amp;nbsp;who were working on a type of platform that I had not heard about previously - P2P lending. They&amp;nbsp;had a promising sounding job ad for a senior developer and a &lt;a href=&quot;https://www.facebook.com/KLEARLENDING&quot;&gt;Facebook page&lt;/a&gt;&amp;nbsp;with cool videos. Well, I also happened to know one of the co-founders - as if I needed another compelling reason to learn more about this venture :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Initially I was quite skeptical about this concept of P2P lending. I couldn&#39;t imagine how it was going to attract lenders. Giving money to random strangers and expecting them to return it? Nah, not very attractive idea to risk-averse people (like me :)). But as I read a bit about the &lt;a href=&quot;https://en.wikipedia.org/wiki/Peer-to-peer_lending&quot;&gt;10 year history of p2p lending&lt;/a&gt; and its success in UK, US and other countries and as I visited KLEAR office and got to know the company vision from the&amp;nbsp;&lt;a href=&quot;https://bg.linkedin.com/in/loiclepichoux&quot;&gt;CEO&lt;/a&gt;&amp;nbsp;Loic, I started to change my mind. I realized that the founders know very well what they are doing and that they truly believe they can make this a successful business, which would also have a positive social impact for people that face financial difficulties. They had gathered a team of talented individuals with a lot of experience in the lending business, which were not only coworkers, but friends. KLEAR seemed to me the kind of startup that was doing everything right and I wanted to be a part of it. A week after having a lunch with &lt;a href=&quot;https://bg.linkedin.com/in/lukaszlukaszewski&quot;&gt;Lukasz&lt;/a&gt;, I joined the company and I have already spent almost 2 months working there.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The more I understand the business and the more I work with the team, the more confident I get that we can build a solid trustworthy P2P lending platform that would benefit both borrowers and lenders. We would be launching the summer of 2016 in Bulgaria, so stay tuned!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7340728580394311822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7340728580394311822?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7340728580394311822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7340728580394311822'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2015/10/my-new-job-at-klear.html' title='My new job at KLEAR'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-2549072290954248409</id><published>2014-12-30T22:22:00.001+02:00</published><updated>2015-04-16T22:29:51.797+03:00</updated><title type='text'>Summary of the year 2014</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.com/2013/12/summary-of-year-2013.html&quot;&gt;2013&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot;&gt;2012&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot;&gt;2011&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/01/summary-of-year-2010.html&quot;&gt;2010&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/12/summary-of-year-2008.html&quot;&gt;2008&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/01/summary-of-year-2007.html&quot;&gt;2007&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2007/01/summary-of-year-2006.html&quot;&gt;2006&lt;/a&gt; and &lt;a href=&quot;http://immitev.blogspot.com/2006/01/summary-of-year-2005.html&quot;&gt;2005&lt;/a&gt;... &lt;br /&gt;
2014 was my 8th year in &lt;a href=&quot;http://www.validata-software.com/&quot; target=&quot;_blank&quot;&gt;Validata&lt;/a&gt;. Surprisingly there are still interesting developments that I get the chance to be involved in :) &lt;br /&gt;
About half of the year, I had been working on incremental improvements in several of the company’s key products (performance, usability, newly requested features). I tend to enjoy doing such type of work, especially if it is on foundations that me or someone else has previously laid well.&lt;br /&gt;
Besides this, there were a couple of new undertakings. &lt;a href=&quot;http://www.validata-software.com/index.php/products/validata-software-assets-suite-sas/quality-suite/cob-monitoring&quot; target=&quot;_blank&quot;&gt;The first&lt;/a&gt; was a nice addition to the company portfolio of T24 offerings, where we released a very decent tool in quite short time frames. The other undertaking is yet in the works, so the only thing that I can mention about it, is that it’s a quite an ambitious project with interesting challenges - both technical and business ones. As it is heavily reporting-related, I got to know a dozen reporting and BI frameworks for a start…&lt;br /&gt;
I am thinking for the next year that it might be good to finally get involved in an open-source project and get a taste of other technologies that have been interesting to me. While there were recent &lt;a href=&quot;http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx&quot; target=&quot;_blank&quot;&gt;exciting news&lt;/a&gt; for the .NET eco system, I think I should jump to something much different. Most likely Python or Javascript (I have been reading a lot about those languages, but without a more hands-on experience, that&#39;s not real knowledge).&lt;br /&gt;
I am sure that 2015 would be an exciting year!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/2549072290954248409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/2549072290954248409?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/2549072290954248409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/2549072290954248409'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2014/12/summary-of-year-2014.html' title='Summary of the year 2014'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-7326378956912807552</id><published>2013-12-24T12:24:00.001+02:00</published><updated>2013-12-24T12:24:31.866+02:00</updated><title type='text'>Summary of the year 2013</title><content type='html'>&lt;p&gt;I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.com/2012/12/summary-of-year-2012.html&quot;&gt;2012&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot;&gt;2011&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/01/summary-of-year-2010.html&quot;&gt;2010&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/12/summary-of-year-2008.html&quot;&gt;2008&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/01/summary-of-year-2007.html&quot;&gt;2007&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2007/01/summary-of-year-2006.html&quot;&gt;2006&lt;/a&gt; and &lt;a href=&quot;http://immitev.blogspot.com/2006/01/summary-of-year-2005.html&quot;&gt;2005&lt;/a&gt;...    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;The highlight of this year for me was definitely the birth of my son in January. But this blog is about software, and Stamen still can’t code, so let’s see now how I did professionally:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The year started with a month of polishing off a product that is yet to be used for the first time in actual projects. It has already reached a pretty good maturity and a client was close to adopting it, but unfortunately this didn’t happen in 2013. But in the beginning of the next year other clients would finally start using it, and I am excited to see how it will serve their needs.&lt;/li&gt;    &lt;li&gt;Worked on many maintenance tasks in various functional areas throughout the year. Besides those small stuff, there was one major development that I lead, which I am pretty proud of. It was the next generation of our migration’s solution mapping schemas. The legacy approach had numerous flaws – didn’t scale, didn’t allow expressing intuitively condition logic, wasn’t convenient, wasn’t stable. It was more or less completely redesigned in terms of features, UI and storage. It became a desktop application that resembles a mini-IDE for a visual programming language. There were numerous usability challenges how to make it productive both for developer-minded users and not-so-technical users. And it turned out pretty well. It is being used for more than 3 months in a couple of projects, and the feedback helped us to polish it even further.&lt;/li&gt;    &lt;li&gt;In the last couple of months I also continued to work on the cloud strategy for our testing product. Participated in some architectural redesign of test execution components, in order to have better deployment flexibility that works outside a LAN (via HTTP).&lt;/li&gt;    &lt;li&gt;For fun, I spent some time with IronPython. I wanted to experiment with an interpreted language for awhile. Read a couple of books about it, tried it on a small work-related task. It’s certainly a fine language, but since I do most development with C#, I am not sure that the context-switching to IronPython makes me more productive, though for exploratory code it’s definitely nice.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Looking forward to what 2014 has to offer!&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/7326378956912807552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/7326378956912807552?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7326378956912807552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/7326378956912807552'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2013/12/summary-of-year-2013.html' title='Summary of the year 2013'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6471778.post-1316027250916210916</id><published>2012-12-21T17:35:00.002+02:00</published><updated>2015-04-16T12:47:53.375+03:00</updated><title type='text'>Summary of the year 2012</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I am continuing my series of annual retrospectives from &lt;a href=&quot;http://immitev.blogspot.com/2011/12/summary-of-year-2011.html&quot;&gt;2011&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2011/01/summary-of-year-2010.html&quot;&gt;2010&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/12/summary-of-year-2008.html&quot;&gt;2008&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2008/01/summary-of-year-2007.html&quot;&gt;2007&lt;/a&gt;, &lt;a href=&quot;http://immitev.blogspot.com/2007/01/summary-of-year-2006.html&quot;&gt;2006&lt;/a&gt; and &lt;a href=&quot;http://immitev.blogspot.com/2006/01/summary-of-year-2005.html&quot;&gt;2005&lt;/a&gt;...&lt;br /&gt;
Here is how the year 2012 went for me&amp;nbsp;professionally:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Expected in 2012 the bulk of my time to go for the role of a team lead/product owner for one of our emerging products, but this turned out to be not a full-time effort (spent just a couple of months on it). So my concerns of too narrow specialization were groundless :)&lt;/li&gt;
&lt;li&gt;Lead another project – integration of HP Quality Center with our testing solution. Was glad that I put extensive logging all over the place, otherwise troubleshooting of the issues on-site would have been a PIA.&lt;/li&gt;
&lt;li&gt;Expected not to spend much time on customer support this year, but there were weeks when my sole assignment was providing technical assistance, especially when troubleshooting difficult issues. I still like it, given that it’s a part of a mix with other activities.&lt;/li&gt;
&lt;li&gt;Participated in the development of a cloud strategy for the company’s products. It was interesting to get to know Amazon, Azure and other offerings. In the&amp;nbsp;beginning&amp;nbsp;of the year Amazon seemed to be way ahead, but Azure is doing some good catch up work. This project was also a good chance to re-examine the architectural decisions in our products.&lt;/li&gt;
&lt;li&gt;Several tools, that I had tried to introduced last year, were finally adopted: PlasticSCM for source control management and Jira for task management and issue tracking. The transition was not painless, but it was well worth it. Both release often new versions (especially PlasticSCM) and it’s fascinating to observe the evolution of such best-of-breed products.&lt;/li&gt;
&lt;li&gt;Worked with several newly hired developers with various experience and personalities. That taught me valuable lessons what to do and what to avoid in such work relationships. Also continued to participate in developers assessment in recruiting campaigns.&lt;/li&gt;
&lt;li&gt;Kept reading my favourite blogs + some &lt;a href=&quot;http://jasonhaley.com/blog/&quot;&gt;link blogs&lt;/a&gt;. Several books that I read recently and liked are &lt;a href=&quot;http://shop.oreilly.com/product/0636920018025.do&quot;&gt;Team Geek&lt;/a&gt;, &lt;a href=&quot;http://shop.oreilly.com/product/9780596155414.do&quot;&gt;Being Geek&lt;/a&gt;, &lt;a href=&quot;http://shop.oreilly.com/product/0636920028741.do&quot;&gt;User-Centered Design&lt;/a&gt; and &lt;a href=&quot;http://shop.oreilly.com/product/9780596517717.do&quot;&gt;Making Things Happen&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Spent a couple of weeks researching if it’s worth to learn another language. Thanks to stackoverflow contributors, I narrowed down the candidates to Python, Ruby, Powershell, F#, Clojure, Scala, Fantom, Cobra. Wrote my first Python program a couple of months ago, when I needed to organize a&amp;nbsp;big e-mail address list. Have to say I liked the language conciseness. But after all, despite some minor&amp;nbsp;deficiencies&amp;nbsp; C# is not that bad for a general-purpose language, so I am not sure if I want to invest much time on other languages.&lt;/li&gt;
&lt;/ul&gt;
So that’s it for 2012.&lt;br /&gt;
&lt;br /&gt;
P.S. My memory is getting bad. I had to browse through hundreds of e-mail subjects to recollect what I was doing in the first three quarters of the year :)&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://immitev.blogspot.com/feeds/1316027250916210916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6471778/1316027250916210916?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1316027250916210916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6471778/posts/default/1316027250916210916'/><link rel='alternate' type='text/html' href='http://immitev.blogspot.com/2012/12/summary-of-year-2012.html' title='Summary of the year 2012'/><author><name>Ivan Mitev</name><uri>http://www.blogger.com/profile/00282745654787781625</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQWeCedBcNLnrCk9VseEbpynCWgiGBmHAIBTmtO_JctnnCUWptoIjk_n8OdhCZq-0E7lB8RxRLs0TS5LTzm-X-pYmldOoZ1WXr9ybxsqOtO9HyDPi17OdncInd99seA/s220/7853.jpg'/></author><thr:total>0</thr:total></entry></feed>