<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Silviu Troscot</title>
    <description>Notes on technology, football, food and drinks, and the thoughts that don&apos;t fit anywhere else.</description>
    <link>https://www.troscot.xyz/</link>
    <atom:link href="https://www.troscot.xyz/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 24 May 2026 20:55:07 +0000</pubDate>
    <lastBuildDate>Sun, 24 May 2026 20:55:07 +0000</lastBuildDate>
    <generator>Jekyll v4.0.1</generator>
    
      <item>
        <title>On endings</title>
        <description>&lt;p&gt;It feels weird to start with the “endings” section, isn’t it? I am writing this on the plane, as I am moving back to Romania. The University is about to end and everything has been moved online and in this context, I thought that there isn’t anything that keeps me in Manchester anymore. These days I’ve met the closest friends I have in Manchester and I wondered how many people I’ve seen for the last time in my life. This may sound too dramatic but I guess that’s normal, people come and go. The university is just a temporary stage of our lives and we’re slowly moving to “adulthood”.&lt;/p&gt;

&lt;p&gt;I think that for most of the people, after a final of a story, independent if it was a job, a city, a country that you left, a relationship, an idea or a company that cannot exist anymore, the first period after the ending is the most painful. You think about your mistakes and weaknesses and maybe that things could have been better if you were the best version of yourself and you realize that all the plans you may have had are not possible anymore. This feeling can last for days, weeks, months…but after that, a wave of inner peace comes and that feeling of relief, freedom, and calm is priceless. At that moment you realize your worth and qualities, the sacrifices and compromises you made, who you can trust and you promise yourself that you won’t make the same mistakes again. 
For me, this is the fundament of evolution: you do what you can so, in the end, you can understand who you are and learn based on these past experiences.&lt;/p&gt;

&lt;p&gt;However, this is not always the case: that emotion of an ending can be insignificant compared with the excitement of a new start, new opportunities, and a new life. This is the case for me now, as I feel that this is the beginning of my professional and personal maturity and I shared my thoughts and feelings below.&lt;/p&gt;

&lt;h1 id=&quot;manchester&quot;&gt;Manchester&lt;/h1&gt;

&lt;p&gt;For me, Manchester and the University was an interesting experience and by far the most intense 4 years of my life. It was the first time I went out of Romania for the long term and knowing that I can barely afford it and that my programming knowledge is inexistent. In these 4 years, I have experienced enthusiasm, deception, anger, fear, poverty, happiness, love, loneliness, anxiety, stress, relief, pain and many others. I have met a lot of people in these 4 years and they helped me become who I am now and I strongly believe that some of them will remain in my world even though we’ll see each other physically much less often.&lt;/p&gt;

&lt;p&gt;In my memory, the image of the scared kid who just moved into the city and lived a minimal life at Withworth Hall is very vivid. I was afraid that I am not smart enough, that I won’t be able to do anything meaningful or important and now looking back I don’t recognize that person at all. As that year passed I started to understand how my perspectives change and after the first semester my main focus was to get an internship for the next summer and gain some experience. I got an offer from Seers CX and I am very thankful to Norbert and Bogdan who gave me this opportunity. I lived for that (hot) summer in Bucharest and looking at it backward, it was a funny experience: long nights of FIFA, basketball, and discussions, concerts and even more important, a great state of mind.&lt;/p&gt;

&lt;p&gt;In the following year, I decided from the beginning that I want to go for placement so I made that my main priority. The first interviews were failures and my self-confidence was strongly shaken. The pressure of getting an offer was bigger and bigger but I knew I did everything I could, so I was happy with myself. The first offer eventually arrived and it taught me that delayed gratification works and all the effort weren’t in vain. Also, this year I tried to start a company that failed but was one of the best lessons of my life so far. This year was probably the most fun, as everyone was celebrating after getting a placement and those parties are unforgettable.
For the summer I was at Twitter in London which was great and I wrote down the story of that summer &lt;a href=&quot;https://www.troscot.xyz/2020/My-Magic-Pony-experience/&quot;&gt;here&lt;/a&gt;. After that, I was at Bloomberg in London, Twitter and Microsoft in Seattle and I fell in love with the US, but I’ll tell you more about that in another post.&lt;/p&gt;

&lt;p&gt;For the last year, I had probably the widest variety of feelings and uncertainties and I felt that the decisions and commitments I make are more impactful than ever and I discovered and improved myself the most after analyzing my feelings and thoughts. As I started the year with some uncertainties and some clear plans, everything changed but that leads me to a peaceful and motivational state which is priceless. The Uni was interesting, with plenty of effort put into my Bachelor’s project and besides that, I got into the best physical shape I’ve ever been, I kept my circles closer and smaller and everything went great.&lt;/p&gt;

&lt;p&gt;Eventually, I decided to go back to Romania for a new life. I hate packing and I realized that I have a lot of stuff from all these 4 years and putting it together felt like assembling pieces from the puzzle of my life and merging all may ways of being. Finally, when packing my BoJack Horseman poster I felt that he was whispering “we’re going into another adventure, friend”…and it starts now.&lt;/p&gt;

&lt;h1 id=&quot;a-new-life&quot;&gt;A new life&lt;/h1&gt;

&lt;p&gt;I love the present, as it is the future I projected in the past.&lt;/p&gt;

&lt;p&gt;Compared with any other stage or experience of my life so far, excepting the first start-up attempt, everything was short term and had a known ending date. 
Now, for the first time, I am looking at everything with the goal of making it last forever, and this changes sharpy my overall perspective and makes me focus on the process more than on the end goal. This excites me and it is a huge motivation to get out of the comfort zone and create things which 2 years ago seemed impossible and which I visualize now as huge and successful in the next 5 years. I am currently working with 2 great companies and for my products and it feels great, I am surrounded by crazily smart and creative people and I can see them having a great impact in my long term career plans and development. Especially working with Fatih again who I feel like a mentor is amazing and I am very grateful for the opportunity and learning outcomes he gave me.&lt;/p&gt;

&lt;p&gt;As I move back to Romania, both my personal and professional life change sharply. Being closer to my business partners, family and friends matters for me and I feel that they are the ground where I have my roots and with their support to aim as high as possible. 
I cannot say I didn’t miss the late-night talks, FIFA and tennis matches, board games and everything I used to do with the few people I care about and I am hyped to be back home. My gut feeling tells me that this is the beginning of a new stage of my life and there is a long road ahead…let’s see where it takes me.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Mar 2020 00:00:00 +0000</pubDate>
        <link>https://www.troscot.xyz/2020/Endings/</link>
        <guid isPermaLink="true">https://www.troscot.xyz/2020/Endings/</guid>
        
        
        <category>thoughts</category>
        
      </item>
    
      <item>
        <title>Growth - a perspective</title>
        <description>&lt;h2 id=&quot;universes&quot;&gt;Universes&lt;/h2&gt;
&lt;p&gt;This post is by far the most personal I’ve ever written. A lot of things changed lately, in my world and the outside world, as in my view for each of us there are two worlds: our world, which contains people and events we care about, and this universe is wide and contain family, friends, but also your role models, your favorite football or basketball team, a podcaster or the political party you support, and there is also an “external” world, made of people and events that don’t matter to you and that is at most a thought crossing your mind.&lt;/p&gt;

&lt;p&gt;My world changed sharply in the last months and I felt that it keeps taking me out of the comfort zone and shapes me more into the man I want to become, both professional and personal. Looking backward, I realize I have made a lot of mistakes and a significant part of them was because I couldn’t listen to my inner voice so I lost myself or I made decisions and actions based on fears and my lack of self-confidence which is a side effect of not knowing myself deeply, or I simply preferred to remain in my comfort zone.&lt;/p&gt;

&lt;p&gt;Also, the external world changed a lot, but one step I made to become a better version of myself is to ignore this universe and don’t let anything from it touch me in any way.&lt;/p&gt;

&lt;h2 id=&quot;no-one-is-defined-by-a-single-feature&quot;&gt;No one is defined by a single feature&lt;/h2&gt;
&lt;p&gt;Everything you read here it’s just my opinion, and not even that, I’m not that smart. I listen to a pretty wide variety of people and I tried to embed in me the wisdom and perspectives I found inspiring, wise or motivational. Just to drop some names, I follow and think about the opinions and views of people such as &lt;a href=&quot;https://twitter.com/naval&quot;&gt;Naval Ravikant&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/ProfFeynman&quot;&gt;Richard Feynman&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/lexfridman&quot;&gt;Lex Fridman&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Peter_Thiel&quot;&gt;Peter Thiel&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/jordanbpeterson&quot;&gt;Jordan Peterson&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/elonmusk&quot;&gt;Elon Musk&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/SamHarrisOrg&quot;&gt;Sam Harris&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/math_rachel&quot;&gt;Rachel Thomas&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/EricRWeinstein&quot;&gt;Eric Weinstein&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/TheNotoriousMMA&quot;&gt;Conor McGregor&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=VSceuiPBpxY&quot;&gt;Kobe Bryant&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/KingJames&quot;&gt;LeBron James&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=2wzs33wvr9E&quot;&gt;Suzan Polgar&lt;/a&gt;, &lt;a href=&quot;https://www.cnbc.com/2020/01/15/twitter-ceo-jack-dorsey-eats-seven-meals-every-week-only-dinner.html&quot;&gt;Jack Dorsey&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=Uo-QIY7ys-k&quot;&gt;George Carlin&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/joerogan&quot;&gt;Joe Rogan&lt;/a&gt; and others.&lt;/p&gt;

&lt;p&gt;They are entrepreneurs, comedians, athletes, scientists, psychologists, but they are much more than that: they are parents, lovers, children, thinkers, sports players and many other things. I believe none of us are defined only by one side or activity of our life and it took me 22 years to understand that. We can grow in almost any aspect of our life, but it can be horribly painful. It will probably involve losing sleep, people you love, dead ends and restarts, deception, maybe physical pain, but in the end, everything worths. During these journeys, even if I made all the possible mistakes, I start understanding myself and each part of me which grew brought me closer to the balanced man I want to be. In a conversation about style and clothes, one of my wisest friends explained to me that her style flourished when she started understanding herself, and that should be my aim and the rest will come naturally. This idea made me understand even more that the journey is very important as well, not only the destination, and I am deeply grateful for that, as well as for other perspectives she helped me to improve.&lt;/p&gt;

&lt;h2 id=&quot;growth&quot;&gt;Growth&lt;/h2&gt;
&lt;p&gt;One of the main things I learned from &lt;a href=&quot;https://www.youtube.com/watch?v=3qHkcs3kG44&quot;&gt;Naval&lt;/a&gt; is that first of all, one should pick their battle(s). This sounds simple but in reality it is very difficult, at least for me. As Naval explains, desire is a pact you make with yourself to be unhappy until you achieve that goal, but having too many, too broad or vague goals make you lose focus and be in a continuous unhappy state or even decrease your self-confidence. Tackling a problem and not allowing anything else affect your mood will make you more efficient but also will isolate that activity from all the negativity. I think that one of the best examples is going to the gym where you just focus on doing your training and your mood is not affected by your problems, and that feels great: you are doing one thing and you dedicate your mind and body for that..and in the end you’ll grow, you make progress.&lt;/p&gt;

&lt;p&gt;However, growth is not linear or predictable: what do you feel now as a terrible thing may be the trigger of your evolution or what you needed to become free and the real you. We don’t have the same goals, views or feelings and this is what makes us interesting..you may believe in a business idea which seems like a dead-end for everyone, you may fall in love with that person who doesn’t seem suitable for you but you are the only one who sees their potential, you may want to move to that city or country where you’re the only one who believes that it is suitable for you…and you should do it. That business or relationship may not work, but the experience and what you become and the end of that is priceless and will show you parts of you that you didn’t know about. This makes you who you are.&lt;/p&gt;

&lt;h2 id=&quot;mamba&quot;&gt;Mamba&lt;/h2&gt;
&lt;p&gt;Some of those people I follow and have as role models in different aspects of my life are not alive anymore, but it doesn’t change a thing in the way I perceive them. They are always alive in my mind and memories and this is how probably everyone perceives their heroes like this. Kobe’s death was very impactful for my world, as he is one of my heroes and especially after he retired we could see other parts of him: a great father, husband, coach and a man willing to do everything to inspire others in becoming a better version of themselves.&lt;/p&gt;

&lt;p&gt;Every time I speak about Kobe, I remember what he said about his career and life: “I did everything I could so at the end of my career I will have no regrets about what I could have been” and looking inside me, this is the major thing that guides me: minimize the regrets. But focusing on that without a personal and emotional balance can be misguiding and can make you do things which you’ll perceive as wrong after you grow, but it’s just what you think as the best thing to do at that time. This is normal and there shouldn’t be regrets about that, and analyzing your mistakes from the past will make you better when a new opportunity will appear..and it will appear if you look for them. After a person you love leaves your life or your idea or start-up fail or when you have a goal and you didn’t succeed, it hurts (especially if you take yourself too seriously)…but you gain a lot from that journey: you discover your behavior in that situation and how those contexts change who you are and how you see the world, and after you get over the failure you’ll understand what you want and how to be better for the next time. As Jordan said “I’ve missed more than 9,000 shots in my career. I’ve lost almost 300 games. Twenty-six times, I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.”&lt;/p&gt;

&lt;h2 id=&quot;the-end&quot;&gt;The end&lt;/h2&gt;
&lt;p&gt;I think there is no end. Nothing ends, the impact of an event or person and how these are part of yourself and how you change the universe around you just become more subtle and the implications in your life and world are more difficult to be associated with that. Improving yourself day by day, physically, mentally, as a lover, as a (future) parent, employer, employee, friend, colleague, athlete, person will make you happier and in a great relationship with yourself, and that is the fundament of all growth…but don’t believe me, go try it yourself.&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://www.troscot.xyz/2020/Growth/</link>
        <guid isPermaLink="true">https://www.troscot.xyz/2020/Growth/</guid>
        
        
        <category>thoughts</category>
        
      </item>
    
      <item>
        <title>My Twitter (Magic Pony) experience</title>
        <description>&lt;h2 id=&quot;context-and-recruiting&quot;&gt;Context and recruiting&lt;/h2&gt;
&lt;p&gt;In the summer of 2018, I was a software engineer intern at Twitter London, in the Media Client Infrastructure team. The hiring process began with my application on the Twitter website; after that, they sent a coding challenge which involves 2 quite easy algorithmic questions and a SQL question.
After solving these questions and submitting them, nothing happened for around 3 months.
Suddenly, I got an email from Twitter’s HR that they want to proceed to the next stage with my application, which was a semi-technical discussion with the team manager, &lt;a href=&quot;https://twitter.com/johannes_totz&quot;&gt;Johannes Totz&lt;/a&gt; and it was amazing: we spoke about Machine Learning, Signal Processing, Data Structures, what the team does and which are the challenges they are facing, etc. We didn’t dive into a very technical discussion as my knowledge on all the areas mentioned above is very limited.&lt;/p&gt;

&lt;p&gt;Following this, I had a technical (coding) interview with the man who became my mentor and taught me with great patience and shared with me a lot of knowledge about video engineering and iOS development, &lt;a href=&quot;https://twitter.com/ychaparov&quot;&gt;Yordan Chaparov&lt;/a&gt;. He gave me a coding problem which was not very hard but required clean coding and thinking about the edge cases. Finally, I had another interview with Johannes and after that, I got the formal offer.
Twitter was very flexible in terms of start and end date and it was very suitable for me, as I could take a break after University.&lt;/p&gt;

&lt;p&gt;Overall the hiring process was interesting but there are clear improvements that can be made on the HR size in terms of response time.&lt;/p&gt;

&lt;h2 id=&quot;magic-pony&quot;&gt;&lt;a href=&quot;https://techcrunch.com/2016/04/14/magic-ponys-neural-network-dreams-up-new-imagery-to-expand-an-existing-picture/&quot;&gt;Magic Pony&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Was a London based start-up, founded by &lt;a href=&quot;https://twitter.com/ZehanWang&quot;&gt;Zehan Wang&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/Rob_Bishop&quot;&gt;Rob Bishop&lt;/a&gt; which consisted of highly skilled engineers and researchers, with PhDs and important contributions in Machine Learning, Computer Vision, Video Encoding. Their product was able to perform image and video &lt;a href=&quot;https://en.wikipedia.org/wiki/Super-resolution_imaging&quot;&gt;super-resolution&lt;/a&gt; using &lt;a href=&quot;https://arxiv.org/abs/1609.04802&quot;&gt;GANs&lt;/a&gt; and brought impressive innovations into this area.&lt;/p&gt;

&lt;p&gt;In 2016 Magic Pony was &lt;a href=&quot;https://www.theverge.com/2016/6/20/11975894/twitter-machine-learning-magic-pony-acquisition&quot;&gt;acquired&lt;/a&gt; by Twitter and the “ponies” have a great impact over the whole product, especially on the Machine Learning and video sides.&lt;/p&gt;

&lt;h2 id=&quot;the-beginning-of-the-story&quot;&gt;The beginning of the story&lt;/h2&gt;
&lt;p&gt;I started the internship in the middle of June and I can remember very well the first day: I was confused by the London tube and as I lived close to the Bank station, I took the Central Line from Bank to Oxford Street, which is very busy and warm during summer, and then I had to walk the Regent Street, which I still find impressive and it is one of my favorite places in London, to reach the office. However, I feel that the office is slightly too central and it is very expensive to live nearby and I am not a huge fan of the London tube.
&lt;img src=&quot;https://i.pinimg.com/originals/a8/59/fa/a859fa002d2338fc0e73d791d2615e02.jpg&quot; alt=&quot;Regent Street&quot; title=&quot;Regent Street&quot; /&gt;
The office is very central and Twitter has 2 floors of the building, which also have showers, parking, bike racks and lockers, which makes it a very comfortable place, especially if you like working out in the morning. Besides that, Twitter provides breakfast, lunch, snacks and beverages for its employees and the food is amazing (shoutout to &lt;a href=&quot;https://twitter.com/JustEatMyTweet&quot;&gt;JustEatMyTweet&lt;/a&gt;). 
On the first day, I got to meet my team and my mentor and I got a brief description of what the team does and what will be the project I will be working on, alongside the set-up for my laptop and the security and privacy trainings.
In the first couple of weeks, I got great materials and tutorials from the team and they spend a lot of time with me, teaching me the basics of the video streaming and how the mobile client works. This made me very interested in video engineering and I feel that their contribution is priceless for my professional path; thanks a lot &lt;a href=&quot;https://twitter.com/svleuven&quot;&gt;Sebastian van Leuven&lt;/a&gt;, Yordan, Johannes, &lt;a href=&quot;https://twitter.com/aacostad&quot;&gt;Alejandro&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;internship-work&quot;&gt;Internship work&lt;/h2&gt;
&lt;p&gt;After getting a brief understanding of the tools and technologies used by my team, I was assigned to some very simple tickets, just to learn better the codebase, the development process and how engineering works at Twitter. This helped me a lot, as I got reviews and suggestions from very experienced and smart video and iOS engineers (shoutout to &lt;a href=&quot;https://twitter.com/fcanas&quot;&gt;Fabián Cañas&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/patricknixon&quot;&gt;Patrick Nixon&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/NolanOBrien&quot;&gt;Nolan O’Brien&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/geraintd&quot;&gt;Geraint Davies&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/taouabit/&quot;&gt;Kamal Taouabit&lt;/a&gt;), especially as I didn’t have prior experience in working in a large company or a distributed team.&lt;/p&gt;

&lt;p&gt;My project was to improve the performance of the short looping videos, on the Twitter iOS app. For this, I needed a good understanding and hands-on experience with AVFoundation, Apple’s video player, and the Twitter iOS video frameworks. Among the technologies used, &lt;a href=&quot;https://www.charlesproxy.com/&quot;&gt;Charles proxy&lt;/a&gt; was very useful to check the video segments played by the player and it is very friendly for mobile usage.&lt;/p&gt;

&lt;p&gt;I think that the most important gains from this project, besides the technical learning outcomes mentioned above, alongside dogfooding, A/B testing, learning Objective C and Swift, is that I understood the role of each development practice used and how those steps are needed to deliver the best product possible for our customers. After this experience, I find plenty of value in following the good practices for the development and I discovered how many technologies and stats and metrics are used for a product at this scale and I still think this is insane.&lt;/p&gt;

&lt;p&gt;Besides that, my team gave me the chance to work on some very interesting open problems, and one of them worth mentioning is improving the bandwidth estimation, which aims to provide a more accurate estimation of the network bandwidth available for the mobile client at this moment. This still is a hard problem but I could try different papers and approaches to test how well our algorithms work and if we can improve them.&lt;/p&gt;

&lt;p&gt;In the meetings but also during lunches or just randomly we had chats about different features and parts of our systems, how we can improve them, what may worth trying and this made my knowledge of video engineering wider but also gave me good insights into what other people are working on. Moreover, I was very encouraged to ask everything and any time I had something unclear, Yordan or someone else spent time with me to help me understand and get an intuition on that topic or problem, and I strongly appreciate that especially now, when I understand the impact it had on my development. Finally, Twitter is very flat and even as an intern you can have a great impact and share your ideas and perspectives with highly ranked people and have a real impact, which I think is very difficult in companies at this scale.&lt;/p&gt;

&lt;h2 id=&quot;twitter-life&quot;&gt;Twitter life&lt;/h2&gt;
&lt;p&gt;The Twitter community is great and friendly, and everything felt very natural in human interactions. In my time there I got into foosball, which was my favorite activity after lunch and in the evenings, after work. Moreover, each Tuesday evening we went to Wembley to play football, some Wednesdays we went to a park to play basketball and there were many other activities such as bouldering, softball, etc. Also, almost every evening we gathered together after work to play Fifa championships and watch World Cup games, which I really enjoyed and helped me getting to know other tweeps.&lt;/p&gt;

&lt;p&gt;At breakfast and lunch, people were very friendly and after 2 months I guess I got to know everyone in the office and I was comfortable talking with them. This made me feel that I belong there and I genuinely enjoyed all the time I’ve been there.&lt;/p&gt;

&lt;p&gt;Also, each Friday afternoon we have an internal event called “Tea Time” when the amazing &lt;a href=&quot;https://twitter.com/RebeccaW&quot;&gt;Rebecca&lt;/a&gt; organizes a thematic party and various people present the impact Twitter has in the world and the interesting stuff they are working on. Besides that, at these events, I’ve met the best storyteller ever, &lt;a href=&quot;https://twitter.com/tweetanor&quot;&gt;Eleanor&lt;/a&gt; who could make any story veeery interesting and engaging.&lt;/p&gt;

&lt;p&gt;We also had office events such as picnic, summer party, which improved the friendships and professional cooperations between the tweeps and helped us get to know each other. In my opinion, from the lifestyle and social perspective, Twitter is a great place to work as you can meet very smart and friendly people and find activities which interest you and tweeps who share your interests.&lt;/p&gt;

&lt;h2 id=&quot;what-next&quot;&gt;What next?&lt;/h2&gt;
&lt;p&gt;After this internship, I fell in love with Twitter and video engineering, and I wanted to go and work in the Media Platform team, which deals with the server-side video processing and which is based in Seattle. Based on the good feedback I received from my team, I got a call with &lt;a href=&quot;https://twitter.com/yildiz&quot;&gt;Fatih Yildiz&lt;/a&gt; who was at that time the manager of the Media Platform team and who became my mentor for the next internship at Twitter, and he was interested in taking me as an intern for the next Spring. Following this, I received an offer to join Twitter Seattle from Apil 2019 to June 2019, and I will share the stories from that period in a future blog post.&lt;/p&gt;
</description>
        <pubDate>Thu, 30 Jan 2020 00:00:00 +0000</pubDate>
        <link>https://www.troscot.xyz/2020/My-Magic-Pony-experience/</link>
        <guid isPermaLink="true">https://www.troscot.xyz/2020/My-Magic-Pony-experience/</guid>
        
        
        <category>tech</category>
        
      </item>
    
      <item>
        <title>Introduction to video streaming</title>
        <description>&lt;h2 id=&quot;why-video-engineering&quot;&gt;Why video engineering?&lt;/h2&gt;

&lt;p&gt;According to &lt;a href=&quot;https://www.webmarketingpros.com/internet-video-to-account-for-80-of-global-traffic-by-2019/&quot;&gt;Cisco projections&lt;/a&gt;, 80% all web traffic in 2019 is video, which shows that video streaming is a very important and growing area. Besides the well-known video platforms such as &lt;a href=&quot;https://www.youtube.com&quot;&gt;Youtube&lt;/a&gt; or &lt;a href=&quot;https://www.netflix.com&quot;&gt;Netflix&lt;/a&gt;, large companies are building their streaming platforms, and some examples are &lt;a href=&quot;https://preview.disneyplus.com/uk/&quot;&gt;Disney&lt;/a&gt; and &lt;a href=&quot;https://www.pocket-lint.com/tv/news/apple/133233-apple-tv-subscription-streaming-service-what-s-the-story-so-far&quot;&gt;Apple&lt;/a&gt;.
For someone without experience or technical background, video streaming looks like a trivial task and without many challenges; you record the content and then stream it, right? Well..not really.
In this post, I will try to explain from a high-level perspective how an end to end video streaming platform works and which are some of the most tricky and important problems in this realm, alongside some external resources for further reading.&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;There are two main types of video: &lt;strong&gt;VoD&lt;/strong&gt; (&lt;a href=&quot;https://en.wikipedia.org/wiki/Video_on_demand&quot;&gt;Video on Demand&lt;/a&gt;) which is broadcasting of recorded video, delivered at any moment in time when requested by the client, and &lt;strong&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Live_streaming&quot;&gt;Live video&lt;/a&gt;&lt;/strong&gt; which focuses on streaming live content to the users.
The source of the video can be pristine videos, recorded with professional cameras and tools (e.g. Netflix, Hulu), or UGC - User Generated Content (e.g. Facebook, Instagram, Twitter, Youtube). For the pristine videos, the challenges are different as the videos don’t have artefacts and noise dues to the lack of quality of the recording tools, but usually, in this case, the content is longer and it has multiple subtitles and audio languages.
From a high-level perspective, the video is uploaded, for the UGC case, by a client device or inserted into the pipeline in the case of the pristine videos, transcoded, muxed, delivered to CDNs from where it is retrieved and played by the clients.&lt;/p&gt;

&lt;h2 id=&quot;adaptive-streaming&quot;&gt;Adaptive streaming&lt;/h2&gt;
&lt;p&gt;Is a streaming technique where the video is encoded at multiple bitrates. Thereafter, the video is split into chunks of equal size (e.g. Netflix has 15s chunks) and the client chooses which bitrate it can play, for each chunk. The player has an algorithm which predicts the current bandwidth and from all the available bitrates it selects the largest bitrate (the best quality) it can play, which is usually the largest bitrate smaller than the bandwidth estimation, but that depends on the buffer size, streaming algorithm, etc.&lt;/p&gt;

&lt;h2 id=&quot;server-side&quot;&gt;Server-side&lt;/h2&gt;
&lt;h3 id=&quot;flow&quot;&gt;Flow&lt;/h3&gt;
&lt;p&gt;When the video is received on the server after it is processed clientside (not mandatory but recommended). Modern platforms, including Twitter and Facebook, have a resumable upload API, where the video is split into chunks and each chunk is uploaded independently.
In the case of pristine videos, they are directly uploaded by the creator on the platform, which is easier as the users are internal engineers.&lt;/p&gt;
&lt;h3 id=&quot;transcoding&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Transcoding&quot;&gt;Transcoding&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Transcoding is generally a lossy process and it involves the conversion of a video from one encoding to another. A video codec(encoding) is a piece of software that compresses or decompresses digital video. Some codec examples are &lt;a href=&quot;https://en.wikipedia.org/wiki/Advanced_Video_Coding&quot;&gt;H264&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding&quot;&gt;H265(HEVC)&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/AV1&quot;&gt;AV1&lt;/a&gt;. Depending on the content and of the codec profile level, which defines the compression/decompression tools allowed by the codec, the codec can achieve different compression rates. As the codec level increases, the time to compress the video increases and the decoding is more expensive both in terms of time and of computational complexity.&lt;/p&gt;

&lt;h3 id=&quot;transmuxing&quot;&gt;&lt;a href=&quot;https://blog.stackpath.com/transmuxing/&quot;&gt;Transmuxing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The video stream alongside the audio stream and possibly subtitles are packaged together in a “container”. This container has details about syncing, codec used, etc. Some examples of containers are MP4, MOV, MPEG-TS.&lt;/p&gt;

&lt;h3 id=&quot;encryption&quot;&gt;Encryption&lt;/h3&gt;
&lt;p&gt;Depending on the content type and platform/company, the video stream can be encrypted. No one can view the encrypted videos without firstly decrypting them. One of the most common video encryptions is AES 128 - Advanced Encryption Standard, using a block size of 128 bits. AES is a symmetric key algorithm, i.e. the encryption key is also the decryption key.
DRM - Digital Rights Management encryption involves a Content Decryption Module which is proprietary and it is part of the device or the browser. In this way, the key is not directly exposed to the user.&lt;/p&gt;

&lt;h2 id=&quot;client-side&quot;&gt;Client-side&lt;/h2&gt;
&lt;h3 id=&quot;upload&quot;&gt;Upload&lt;/h3&gt;
&lt;p&gt;On the modern video streaming platforms, if the client has the functionality to upload videos, it usually demux and decompress the video and then it will re-encode and remux the video. Thereafter, with this newly encoded video, the upload API is called. Usually, the API is resumable so the video is split by the client into chunks and each chunk is uploaded separately and they are ordered by the server.&lt;/p&gt;
&lt;h3 id=&quot;player&quot;&gt;Player&lt;/h3&gt;
&lt;p&gt;Depending on the platform, there are different video clients used. For iOS the Apple player framework, &lt;a href=&quot;https://developer.apple.com/av-foundation/&quot;&gt;AVFoundation&lt;/a&gt; is the most used, for Android there are more options but the most popular player is &lt;a href=&quot;https://github.com/google/ExoPlayer&quot;&gt;Exoplayer&lt;/a&gt; which is open-sourced but it is created and maintained by Google, whilst for web, there are multiple options, such as &lt;a href=&quot;https://videojs.com/&quot;&gt;video.js&lt;/a&gt; or &lt;a href=&quot;https://jplayer.org/&quot;&gt;jPlayer&lt;/a&gt;. The player should be able to estimate the bandwidth and request the most suitable segment based on that, manage the buffer, decode (usually using hardware decoders) and play the video but also to record metrics from that session, if needed.&lt;/p&gt;

&lt;h2 id=&quot;open-problems&quot;&gt;Open problems&lt;/h2&gt;
&lt;p&gt;Probably the most difficult problem in video engineering is to assess how good a video looks for the human eye. This is called &lt;u&gt;subjective quality analysis&lt;/u&gt; and there are many tools to do that, but none of them is very accurate. Some of them, which use signal processing approaches, are &lt;a href=&quot;https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio&quot;&gt;PSNR&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Structural_similarity&quot;&gt;SSIM&lt;/a&gt;. Lately, Netflix developed a tool which is considered to be the best tool available, called &lt;a href=&quot;https://medium.com/netflix-techblog/vmaf-the-journey-continues-44b51ee9ed12&quot;&gt;VMAF&lt;/a&gt; which uses Machine Learning alongside traditional analysis techniques.
All the tools mentioned above are &lt;u&gt;reference based measurements&lt;/u&gt;. These work very well especially for pristine videos, as we want to keep our encoded versions as close as possible to the original. Besides that, there are new approaches in assessing the quality without any reference. Some interesting work can be found &lt;a href=&quot;https://arxiv.org/pdf/1810.08169v1.pdf&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://arxiv.org/pdf/1908.11517.pdf&quot;&gt;here&lt;/a&gt;.
Another interesting problem is &lt;u&gt;bandwidth estimation&lt;/u&gt;. This involves measuring the bandwidth from the last seconds and based on that to estimate the bandwidth for the next segment. The quality of estimation is very difficult to be assessed as we don’t know the bandwidth, but estimations can be done with network throttling with given limits.&lt;/p&gt;

&lt;h2 id=&quot;further-readings-and-talks&quot;&gt;Further readings and talks&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://watch.bigapple.video/&quot;&gt;AV1 and UGC transcoding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@periscopecode/introducing-lhls-media-streaming-eb6212948bef&quot;&gt;Low Latency Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=vHVMr4jH8rI&quot;&gt;Subjective quality analysis for mobile devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=k0F8gtEFGDE&quot;&gt;A/B testing when CDN misses influences the results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 26 Dec 2019 00:00:00 +0000</pubDate>
        <link>https://www.troscot.xyz/2019/introduction-to-adaptive-streaming/</link>
        <guid isPermaLink="true">https://www.troscot.xyz/2019/introduction-to-adaptive-streaming/</guid>
        
        
        <category>tech</category>
        
      </item>
    
      <item>
        <title>Why did I start this blog?</title>
        <description>&lt;p&gt;Well..everyone has a blog, so why one more around? Why are you writing down stuff on a blog? It’s 2019, dude…&lt;br /&gt;
The answer for that is very selfish: I want to improve the way I present and explain different things 
happening in my mind and the concepts I want to understand, and to learn how to structure my speech and ideas and to use more suitable words.&lt;br /&gt;
Besides that, I strongly believe in what Feynman said, “If you want to master something, teach it.”, so the main focus of this blog is to explain as good and simple as I can, various concepts and ideas I try to learn. These will be mostly about video engineering, signal processing, AI/ML, computer vision and maths, 
but whenever I will be curious about something else, I will try to explain it here. Maybe you’ll find it useful,
but the main goal is to find gaps in my understanding and to better embed the knowledge in my brain.&lt;/p&gt;

&lt;h3 id=&quot;so-this-blog-is-for-you-why-should-i-read-it&quot;&gt;So this blog is for you, why should I read it?&lt;/h3&gt;

&lt;p&gt;My aim on this blog is to explain in the best way I can some parts of the realms I am interested in
and eventually to see and show the connections between them can be made. Given my theoretical background,
I will try to provide a very theoretical approach but also some intuition on the problem or idea explained,
so if this topic is in your area of interest you can gain a better understanding, and if this isn’t something interesting maybe it will make you think “hmm, that’s really interesting, let’s learn more about this”.&lt;br /&gt;
On my way to teach things, in order to improve my understanding, I decided with my friend Mihai Bujanca to start a course on Machine Learning and Computer Vision (both geometrical and ML approaches). We will release the first lectures and labs soon, and we are waiting for feedback and suggestions.&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Sep 2019 00:00:00 +0000</pubDate>
        <link>https://www.troscot.xyz/2019/why-did-i-start-this-blog/</link>
        <guid isPermaLink="true">https://www.troscot.xyz/2019/why-did-i-start-this-blog/</guid>
        
        
        <category>thoughts</category>
        
      </item>
    
  </channel>
</rss>
