# Welcome to Outtalent Docs

Outtalent is an online accelerator that helps software engineers from countries like Russia get jobs abroad at companies like Google. You pay only if you get a job at a top company of your choice.

## About Outtalent

[Outtalent](https://outtalent.com/) ([YC S19](https://www.ycombinator.com/companies/outtalent)) helps outstanding engineers around the world realize their potential on a global scale, independent of what’s said on their passport. We offer an online program designed and led by [engineers and engineering managers from companies like Google, Facebook, and Stripe](https://outtalent.com/community) that covers distributed system design, algorithms & data structures, and personal branding.

100% of our last batch participants got an offer from either Amazon, Facebook, Google, or Microsoft. On average people got more than 3 offers from either Amazon, Facebook, Flexport, Google, Microsoft, Reddit, Spotify, Stripe, TikTok, Uber, or Yelp.

You can check if Outtalent is right for you by filling in this form that should take \~2 mins: [outtalent.com/check](https://outtalent.com/check)

## About Outtalent Docs

Our [mission](https://outtalent.com/about) is to help people from all countries set and achieve ambitious career goals together.

We hope information from this website will help you achieve ambitious goals and realize your full potential despite immigration challenges.


# Top Companies

We either directly partner with those companies or help apply to those companies.

Top companies receive an excessive amount of job applications and often have to rely on quick decisions while reviewing people's resumes. This means candidates who went to famous schools or worked for famous employers get an extra advantage while many strong candidates from less known places are often passed on.

In order to address this problem for our Outtalent fellows, we vouch for those who successfully graduate our program to engineering managers, recruiters, and other employees we know at top companies. We think such recommendations help great candidates get noticed and help employers notice great candidates.

These lists show what companies Outtalent helps. We hope all software engineers will find them useful for discovering great companies, whether the engineers want to apply by themselves or with our assistance.

{% content-ref url="/pages/-Mijg25FQzBIIpngjS\_O" %}
[Recommended multinational tech companies](/outtalent-target-companies/top-multinational-companies)
{% endcontent-ref %}

{% content-ref url="/pages/-MijgDVAMuq0BlIkPFIe" %}
[Recommended US-only startups](/outtalent-target-companies/top-us-only-focused-companies)
{% endcontent-ref %}

{% content-ref url="/pages/-MijgOiinVTX7iHRtAWy" %}
[Companies that hire remotely from almost any country](/outtalent-target-companies/top-remote-friendly-companies)
{% endcontent-ref %}

{% content-ref url="/pages/-MijjV\_Z3VD\_TZccN1CW" %}
[Climate change companies](/outtalent-target-companies/climate-change-companies)
{% endcontent-ref %}

{% content-ref url="/pages/-MijgUVwZoO3J7ueQjlh" %}
[Other companies](/outtalent-target-companies/other-companies)
{% endcontent-ref %}


# Recommended multinational tech companies

This list includes larger companies we are focused on. They are hiring in multiple countries.

In brackets, you can see how far our graduates got with those companies as of 2021-09-03.

* 10K-100K engineers
  * [Amazon](https://www.amazon.jobs/) (offers in Cambridge, Dublin, Vancouver)&#x20;
  * [Apple](https://www.apple.com/careers) (invited to interview)
  * [Facebook](https://www.facebook.com/careers) (offers in London, Menlo Park)
  * [Google](https://careers.google.com/) (offers in London, Warsaw, Zurich)
  * [Microsoft](https://careers.microsoft.com/) (offers in Dublin, Prague)<br>
* 1K - 9K engineers
  * [Airbnb](https://careers.airbnb.com/) (invited to interview)
  * [Atlassian](https://www.atlassian.com/company/careers)&#x20;
  * [Bloomberg](https://careers.bloomberg.com/) (offers in Frankfurt, London)
  * [Booking.com](https://careers.booking.com/) (offer in Amsterdam)
  * [Coinbase](https://www.coinbase.com/careers)
  * [Databricks](https://databricks.com/company/careers) (offer in Amsterdam)
  * [LinkedIn](https://careers.linkedin.com/)
  * [Lyft](https://www.lyft.com/careers) (offer in Kyiv)
  * [MongoDB](https://www.mongodb.com/careers)
  * [Netflix](https://jobs.netflix.com/)
  * [Pinterest](https://www.pinterestcareers.com/)
  * [Reddit](https://www.redditinc.com/careers) (offer in San Francisco) 🌎🌍🌏
  * [Snap](https://snap.com/en-US/jobs) (offer in London)
  * [Shopify](https://www.shopify.com/careers) (invited to interview) 🌎🌍
  * [Spotify](https://www.lifeatspotify.com/) (offers in London, Stockholm) 🌎🌍
  * [Square](https://careers.squareup.com/) (invited to interview)
  * [Stripe](https://stripe.com/jobs) (offers in Dublin, London)
  * [Tesla](https://www.tesla.com/careers) (invited to interview)
  * [TikTok](https://careers.tiktok.com/) (offers in London, Singapore)
  * [Twitch](https://www.twitch.tv/jobs/)
  * [Twitter](https://careers.twitter.com/) (invited to interview)&#x20;
  * [Uber](https://www.uber.com/us/en/careers/) (offers in Aarhus, Amsterdam, Vilnius)
  * [Unity](https://careers.unity.com/)
  * [Waymo](https://waymo.com/careers/#software-engineering)<br>
* 100-900 engineers

  * [Affirm](https://www.affirm.com/careers)
  * [Asana](https://asana.com/jobs)
  * [DeepMind](https://deepmind.com/careers) (offer in London)
  * [Figma](https://www.figma.com/careers/#job-openings)
  * [Planet](https://www.planet.com/company/careers/)
  * [Slack](https://slack.com/careers)
  * [Verily](https://verily.com/roles/?departments=Software)
  * [X, the moonshot factory](https://x.company/careers-at-x/)

🌎🌍🌏 - this company hires employees in some countries even without an office.

🌎🌍 - this company allows some employees within the same team to work in different countries within the same timezone region (from an office or from home).


# Recommended US-only startups

These target companies are hiring only in the US. You need to already have US work permission in order to be considered.

In brackets, you can see how far our graduates got with those companies as of 2021-09-03.

* Artificial General Intelligence
  * [Anthropic](https://www.anthropic.com/#careers)
  * [MIRI](https://intelligence.org/get-involved/#careers) (non-profit)
  * [Open AI](https://openai.com/)
* Brain interface
  * [Kernel](https://jobs.lever.co/kernel-2)
  * [Neuralink](https://neuralink.com/careers/)
* Education
  * [Primer](https://www.notion.so/withprimer/Join-us-at-Primer-0a5c69cd11fe4ac89618ab91d5277d45)
* Flying cars & drones
  * [Joby](https://www.jobyaviation.com/careers/)
  * [KittyHawk](https://kittyhawk.aero/careers/)
  * [Opener](https://www.opener.aero/careers/)
  * [Wing](https://wing.com/careers/)
  * [Wisk](https://wisk.aero/careers/)
* Longevity
  * [Calico](https://calicolabs.com/careers)
* Mental Health
  * [Marvin](https://www.meetmarvin.com/careers)
* Nuclear fusion
  * [Commonwealth Fusion Systems](https://cfs.energy/careers)
  * [Helion](https://www.helionenergy.com/careers/)
* Robotics
  * [Boston Dynamics](https://www.bostondynamics.com/careers)
  * [Intrinsic](https://intrinsic.ai/)
  * [Verdant Robotics](https://www.verdantrobotics.com/)
* Space
  * [Momentus](https://boards.greenhouse.io/momentus)
  * [SpaceX](https://www.spacex.com/careers/) (invited to interview)
  * [Swarm Technologies](https://swarm.space/careers/)
* Other hardware
  * [Humane](https://hu.ma.ne/jobs)
* Other software
  * [Airtable](https://airtable.com/careers)
  * [Discord](https://discord.com/jobs) (invited to interview)
  * [Notion](https://www.notion.so/Careers-at-Notion-ed4565006f194a2fbe7d3a4965d7b15a#f974e36de44d434d92e8cffc55fbb381)
  * [Retool](https://retool.com/careers/)
  * [Segment](https://segment.com/careers/)

You can either apply directly or you can talk to us and we will refer you to these companies if we will see a high potential for a great match. You don't have to go through Outtalent fellowship in this case.


# Companies that hire remotely from almost any country

If you are interested in remote work, we recommend the following remote-friendly companies.

You should be able to find the latest version of the list [here](https://airtable.com/shr5kpFcD03OMT8of/tblcydLZABcIZxaWE).<br>

You can either apply directly or you can talk to us and we will refer you to these companies if we will see a high potential for a great match. You don't have to go through our fellowship in this case.


# Climate change companies

Companies focused on environmental and climate sustainability.

We recommend checking out these two lists of companies:

* [Diamond List](https://diamondlist.co/). It includes companies in the USA, the Bahamas, the UK, the Netherlands, Switzerland, Sweden, Hungary, Kenya, Rwanda, South Africa, Israel, India, Indonesia, and Singapore.
* [Climate Base](https://climatebase.org/) list. It includes companies around the world as well.


# Top local employers

People who apply to Outtalent often ask us which local companies they could join to gain useful experience before getting into Outtalent and later [top multinational tech companies](https://docs.outtalent.com/outtalent-target-companies/top-multinational-companies).

To answer this question we decided to create this v0 list based on companies where Outtalent fellows worked before the program as well as based on what we know about the job market in general.

* Kazakhstan
  * [1Fit](https://1fit.app/)
  * [Adaptive Plus](https://adapt.ws/)
  * [BTSDigital](https://btsdigital.kz/)
  * [Chocofamily Holding](https://chocofamily.kz/)
  * [DAR](https://dar.io/)
  * [KazDream Technologies](https://kazdream.kz/en)
  * [Kolesa Group](https://job.kolesa.kz/)
  * [Nommi](https://nommi.net/)
  * [Pinemelon.com](https://www.pinemelon.com/)
  * [Sprint Squads](https://sprintsquads.com/)
* Kyrgyzstan
  * [Akforta](https://akforta.com/)
  * [Appboxo](https://appboxo.com/)
  * [Attractor Software](https://www.attractor-software.com/)
  * [B12](https://www.b12.io/)
  * [Codify](https://lms.codifylab.com/en)
  * [EFIS Products (FitJab)](https://www.fitjab.io/)
  * [Growave](https://growave.io/)
  * [Independent Reserve](https://www.independentreserve.com/)
  * [MadDevs](https://maddevs.io/)
  * [Namba One](https://www.nambaone.app/)
  * [NB Fit](https://nbfitness.online/)
  * [Neobis](http://neobis.kg/)
  * [Sibers](https://www.sibers.com/)
  * [Spalmalo](https://spalmalo.com/en/)
  * [Subutai](https://subutai.io/)
  * [Timely Soft](http://www.timelysoft.net/)
* Russia:
  * [Acronis](https://www.acronis.com/)
  * [Alibaba](https://www.alibaba.com/)
  * [DataArt](https://www.dataart.com/)
  * [Deutsche Bank](https://www.db.com/)
  * [IBM](https://www.ibm.com/)
  * [Ingram Micro Cloud](http://www.ingrammicrocloud.com/)
  * [Intel](https://intel.com)
  * [JetBrains](https://jetbrains.com)
  * [Kaspersky](https://kaspersky.com)
  * [Luxoft](https://luxoft.com)
  * [Nexign](https://nexign.com/en)
  * [Prisma Labs](https://prisma-ai.com/)
  * [Revolut](https://www.revolut.com/en-US)
  * [Rock Flow Dynamics](https://rfdyn.com/)
  * [Sberbank](https://www.sberbank.com/ab)
  * [Softline](https://softline.com/)
  * [T-Systems Russia (Deutsche Telecom Solutions)](https://deutschetelekomitsolutions.ru/career/)
  * [Tinkoff Bank](https://www.tinkoff.ru/eng/)
  * [VK](https://vk.com/)
  * [Yandex](https://yandex.com/)
* Ukraine
  * [Creatio](https://www.creatio.com/)
  * [DataArt](https://www.dataart.com/)
  * [EPAM Systems](https://www.epam.com/)
  * [GlobalLogic](https://www.globallogic.com/)
  * [Grammarly](https://grammarly.com/)
  * [HYS Enterprise](https://www.hys-enterprise.com/)
  * [Lyft](https://www.lyft.com/careers)
  * [Reface](https://hey.reface.ai/)
  * [SingleStore (MemSQL)](https://www.singlestore.com/)
  * [SoftServe](https://www.softserveinc.com/en-us)
  * [Upland](https://www.upland.me/)
  * [Wix](https://www.wix.com/)

Please note this list, for now, is focused on Russian-speaking countries because that's where Outtalent started. Now that we launched globally and have applicants from 76 countries, we are surely planning to expand this list.

If you are a software engineer in one of these countries, we hope this helps you develop your career!


# Other companies

In addition to that, we know people at these companies. While we can recommend engineers to those companies, for now, we know too little to recommend those companies to engineers.

In brackets, you can see how far our graduates got with those companies as of 2021-09-03.

* [Adobe](https://www.adobe.com/careers.html)
* [Behavox](https://www.behavox.com/careers/)
* [Cisco](https://www.cisco.com/c/en/us/about/careers.html) (offer in Oslo)
* [Cloudflare](https://www.cloudflare.com/careers/jobs/)
* [Cognite](https://www.cognite.com/en/careers)
* [DoorDash](https://careers.doordash.com/)
* [Flexport](https://www.flexport.com/careers/)
* [HBO](https://warnermediacareers.com/hbo-jobs)
* [IBM](https://www.ibm.com/us-en/employment/)
* [Klarna](https://www.klarna.com/careers/) (offer in Stockholm)
* [Miro](https://miro.com/careers/)
* [NVIDIA](https://www.nvidia.com/en-us/about-nvidia/careers/)
* [Intuit](https://www.intuit.com/careers/)
* [Oracle](https://www.oracle.com/corporate/careers/)
* [PayPal](https://www.paypal.com/us/webapps/mpp/jobs)
* [PureStorage](https://www.purestorage.com/company/careers/opportunities.html)
* [Salesforce ](https://www.salesforce.com/company/careers/)
* [Snowflake](https://careers.snowflake.com/us/en)
* [TaskRabbit](https://www.taskrabbit.com/careers)
* [TikTok](https://careers.tiktok.com/) (offers in London, Singapore)
* [Upwork](https://www.upwork.com/careers)
* [Yelp](https://www.yelp.careers/us/en) (offers in London)

Companies in trading:

* [Citadel](https://www.citadel.com/careers/open-positions/)
* [Hudson River Trading](https://www.hudsonrivertrading.com/careers/) (offer in London)
* [Jane Street](https://www.janestreet.com/join-jane-street/) (offer in Hong Kong)
* [Millennium Management](https://www.mlp.com/careers/) (offer in London)

If you live in Trinidad and Tobago or are willing to relocate there for many years we can also recommend [Virtana](https://www.virtanatech.com/).


# Job openings at startups & big tech companies

\
For big tech and startup jobs around the world: [TrueUp](https://trueup.io/jobs)

Leading global service for startup jobs: [Wellfound](https://wellfound.com/) (formerly AngelList Jobs)

Curated list of high-growth startups and big tech teams: [Breakout List](https://www.breakoutlist.com/)

Curated list of startups with clearly-defined cultural values: [KeyValues](https://www.keyvalues.com/)

Startups funded by investors we admire:

* [YCombinator-funded startups](https://www.ycombinator.com/companies) (YC is often considered to be the #1 startup accelerator globally)
* [AndreessenHorowitz portfolio startup jobs](https://jobs.a16z.com/jobs\\)
* [FoundersFund portfolio](https://foundersfund.com/portfolio/)
* [Sequoia Capital portfolio](https://jobs.sequoiacap.com/jobs)

Global startup jobs services aimed at Russian-speakers:

* Connectable Jobs publishes jobs at startups with Russian-speaking founders or teams.&#x20;
  * They have a [channel for developer jobs](< https://t.me/dev_connectablejobs>) & a channel for [all tech jobs](https://t.me/zarubezhom_jobs)
* [Habr Careers](https://career.habr.com/)


# Computer Science basics

We recommend learning the following topics if you would like to apply for junior roles at big tech companies. Less important topics are marked with an asterisk (\*).

* Essentials & programming concepts
  * How computers work (a high-level overview)
  * Computational thinking
  * General code flow
  * Binary system
  * Primitive data types
    * Numerical data types (e.g. integer, floating-point)
    * String
  * Functions
  * Recursion
  * Object-Oriented Programming
    * Objects
    * Classes
    * Encapsulation
    * Interfaces
    * Inheritance
    * Polymorphism
* Software construction
  * Software quality
    * Logging
    * Documentation
    * Self-documenting code
    * Bugs and debugging
    * Unit testing
  * Libraries and frameworks (what they are, examples of common libraries and frameworks)
* Development and Collaboration Tools
  * Command-line interface (parameters, options, help files, bash syntax)
  * Build tools
  * Basics of using IDE
  * Code review
  * Version control, Git
  * GitHub\*
* Programming languages basics
  * Imperative vs functional (what are key differences)
  * Strong vs weak typing
  * Compiled vs interpreted languages (what does it mean, what are key differences)
  * Comparison of the most popular programming languages\*
    * C/C++, Java, Go
    * Python, Ruby
    * Kotlin, Objective-C, Swift
    * JavaScript, TypeScript
* Data Structures & Algorithms (some people count them as CS fundamental, while others don't, please see [this document](/guides/common-data-structures-and-algorithms) for more details)
* Standards and formats\*
  * Basics of JSON, XML, YAML, CSV
  * Basics of Unicode

Most recommended resources:

* [Harvard’s Introduction to Computer Science course (CS 50)](https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0) - free video course from Harvard

Other recommended resources:

* [Jet Brains Academy’s CS course](https://hyperskill.org/knowledge-map/1162) - structured text-based Computer Science content&#x20;
* [Codecademy](https://www.codecademy.com/) - learning to code using interactive UI

Please make sure to cover what you learned from recommended sources using one-off articles or videos you find on the Internet.

If you have any feedback, we would be more than welcome to hear it. Please email <team@outtalent.com>.


# Data structures and algorithms

We list what we believe are most important DS\&A topics for working at a big tech companies.

* List-based data structures
  * List
  * Array
  * Python List
  * Linked List
  * Queue, Stack&#x20;
* Set, Map, and hashing
* Bit manipulation
* Tree - one of the most popular topics at big tech interviews
  * Tree algorithms
    * Tree traversal (BFS, DFS)
    * Search and delete
    * Insert
  * Specialized trees
    * Binary Search and Binary Search Tree
    * Heaps - one of the most popular topics at big tech interviews
    * Heapify and HeapSort
* Graph
  * BFS & DFS for graphs, Adjacency matrix
* Computation complexity and asymptotic notation
* Basic sorting algorithms
  * Insertion Sort
  * Selection Sort
  * Bubble Sort
  * Merge Sort
* Intermediary algorithms
  * Recursion, dynamic programming, backtracking - popular at Google
  * Advanced sorting algorithms: Radix Sort, QuickSort

In addition to that in coding interviews, you will get problems that require mathematical calculations (including basics of statistics and geometry).

Topics we recommend deprioritizing while preparing for interviews:

1. Sweep line algorithm
2. Dijkstra's algorithm

Most recommended resources:

* [Google’s Intro to Data Structures and Algorithms course on Udacity](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513). It is focused on helping you pass a Google interview.
* [Data Structures and Algorithms Specialization](https://www.coursera.org/specializations/data-structures-algorithms). This was most recommended by Outtalent graduates.


# Gaining seniority

We see much more job applicant competition for junior roles (0-1 years of experience) as compared to more senior roles (2+ years of experience).\
\
Here we list some basic things we recommend to focus on in order to better qualify for more senior roles in a large successful tech company:

* Focus on a small number of modern technologies to master
  * Deprioritize technologies like C# and PHP
* Keep learning the basics of other new technologies to understand your architectural options
* Switch to teams with stronger developers, better work culture, and processes
* Take more responsibilities in more impactful projects
* Gain experience designing systems
* Measure your impact on users (e.g. latency, usage) and the company (e.g. cost savings)
* Challenge yourself by trying to improve your impact by 10x

If you want to get a job in a large tech company and are flexible to choose among backend, frontend, full-stack, mobile, then we recommend focusing on backend software engineering.

If you are planning to apply for backend software engineering roles then we highly recommend gaining experience with distributed computing. These skills are rare in emerging markets and are in high demand at top tech companies.


# Big tech interviews

This guide is created to help you pass different types of interviews at top tech companies.

## Interview types

The most popular interview types at big tech companies are:

* Recruiter call
* Coding interview ([view our guide](https://docs.outtalent.com/guides/passing-interviews/coding-interviews))
* System design interview ([view our guide](https://docs.outtalent.com/guides/passing-interviews/system-design-interviews))
* Behavioral interview

Less popular types of interviews include:

* Debugging (for example, at Stripe)
* Technical deep dive (for example, at Shopify)
* Pair programming

## Interview practice

We recommend doing tens of mock interviews on a peer-to-peer interview website called [Pramp](https://www.pramp.com/#/). If you are in the US then we highly recommend using [interviewing.io](https://interviewing.io/).


# Coding interviews

Coding interviews focus on testing your ability to write good code.&#x20;

Some companies like Google, Facebook, Uber, Lyft, Twitter, and DeepMind focus a lot on algorithms and data structures in this interview.

Our general recommendations:

* We recommend learning about or brushing up your knowledge on data structures and algorithms in the following order: [Common data structures and algorithms](/guides/common-data-structures-and-algorithms).
* Consider getting the latest edition of the [Cracking the Coding Interview by Gayle Laakmann Mcdowell](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850). The book may look big in its printed version, but we think it is written in a friendly way and most of the book is just code with solutions to problems. Here is a secret - you can skip them and just read the theory part. For problem-solving see recommendations in other sections.
* Consider buying a small whiteboard. This can help you with mock interviews before onsite interviews and will set you apart from others in case you will have a video interview rather than a phone interview.


# Programming language for interviews

The most popular languages in top large tech companies:

* Software Engineer / Backend Software Engineer / Full-Stack Software Engineer: **Python, C++, Java, or JavaScript**.
* Frontend Software Engineer: **JavaScript**
* iOS software engineer: **Swift, Objective-C**. Google will ask to choose a language like **Python, C++, Java, or JavaScript**.

Please note if you are applying to top tech startups **Ruby** works well too.

While some companies and interviewers will be ok interviewing you in a language outside of that list we highly recommend learning one of these languages because:

* You will be able to apply to a wide range of companies and roles.
* Knowledge of more than one programming language is a good sign while knowing only one language or only older languages is a bad sign.

\
In addition to the most common language functions we recommend learning about:

* An "idiomatic" way - leveraging useful language idioms that other languages don't have (e.g. list comprehensions in Python).
* Object-oriented syntax (e.g. inheritance).
* Lower-level implementation of data structures and algorithms to make sure your code is efficient.
  * In **C++** you need to know how to use pointers efficiently.

Last updated: 2020-06-01.


# LeetCode guide

Overall sequence

* We recommend selecting data structure & algorithms topics in Leetcode in approximately this order: [Common data structures and algorithms.](/guides/common-data-structures-and-algorithms)
* Aim to solve about 150 easy problems in total covering all topics recommended above before moving on to medium ones. We know too many people who rushed to solve medium and hard problems and gave up early.
* Start with 5-10 problems a week and build ideally a daily or nearly daily habit before moving to a higher number of problems.
* Please note some problems marked as “easy” are actually quite hard and some of them may take you hours if you are a beginner and that’s ok. Lots of successful engineers had the same challenge.
* Google and Facebook will most often ask “medium” questions and rarely “hard” questions. Many other companies are usually a bit easier.
* Practice drawing out graphs and trees on a piece of paper, whiteboard, and most important code editor. You will need this to explain your solutions during the interviews.
* Aim to solve 300 before applying to Google. (If you solve 50 you can already contact complete an eligibility check on outtalent.com and we will recommend the next steps to you if you are eligible.)

Solving each problem

* Try estimating the time complexity of every solution.
* After you submit a successful solution check some examples of the solutions of other people on the Discussions page.
* If you didn’t get to the optimal solution and find a better one in the LeetCode Solution section, don’t just memorize, but try to think why you couldn’t come up with it yourself and how you can come up with it yourself.
* We recommend solving the same problem in multiple ways rather than immediately moving on to the next problem.


# Systems design interview guide

This document provides recommendations on how to prepare for systems design interviews and what to do and not to do during such an interview.

## About the authors

[Usman Masood](https://www.linkedin.com/in/umasood/) is a VP of Engineering at [Pipe](https://www.pipe.com/) and a systems design mentor at [Outtalent](https://outtalent.com/). Previously, he worked as an engineering manager at [Stripe](https://stripe.com/), as well as a software engineer at [PipelineDB](http://docs.pipelinedb.com/introduction.html), Locu, Facebook, and Microsoft.

[Tilek Mamutov](https://www.linkedin.com/in/tilek/) is a co-founder of [Outtalent](https://outtalent.com/). Previously, he worked as a Project Lead at [Google\[x\]](https://x.company/), as well as in multiple software engineering, business, and other roles at Google.

## Introduction

The goal of this guide is to help software engineers show their best in systems design interviews at big tech companies. We provide tips on how to prepare for the interview, a framework for how to approach the interview, and what you should avoid during it.

These recommendations helped each Outtalent fellow we worked with get 2 to 5 offers at companies like Amazon, Facebook, Flexport, Google, Microsoft, Spotify, Stripe, and Uber.

## Preparation: **T**heory

Here are key topics we recommend reading up on.

* If you are targeting more junior roles that usually require 2-5 years of experience:
  * Back-of-the-envelope calculations
  * Databases
  * Caching
  * Asynchronous processing
  * Availability vs consistency
    * Consistency patterns
    * Availability patterns
* If you are targeting Senior Software Engineer or Staff Software Engineer roles:
  * Application scaling
  * Distributed systems (consensus + distributed transactions)
  * Advanced data structures
    * Probabilistic data structures
    * Trees, e.g. B-trees, Quadtrees
  * SLA, SLO, HADR, BCP, Observability, Monitoring

We recognize that there are a lot of resources on this topic and you can go fairly deep into any of these topics. To address that, we recommend starting off with the following two resources:

* [Designing Data-Intensive Applications book](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321) by Martin Kleppman
* [System Design Primer](https://github.com/donnemartin/system-design-primer) by Donne Martin (free)

Once you’ve gone over this material, find additional resources for topics where you feel you need to build more understanding and intuition.

You can also review an [online course called Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview). We think there is a lot of useful information there, but please note that it focuses a lot on showing what the final infrastructure for services like Twitter may look like. In our guide, we recommend by default starting with a simple solution first. Plus, we think you need to be able to clearly justify every added component.

## Preparation: Mock interviews

Interviews require extra skills that an actual engineering job often doesn’t. For example, interview time management or collaborating with an unfamiliar person.

In order to prepare, we recommend doing around ten mock interviews. Ideally, you should practice with more senior engineers or engineering managers with experience working at and interviewing for your target companies. If you don’t have access to such resources, try out Pramp to practice with random people around the world, as well as practicing with your friends.

We think during this stage it’s very important to also get good at illustrating your ideas using diagrams in a way that is fast and visible to the interviewer. For that, we recommend either setting up a physical whiteboard or becoming proficient with a diagramming tool, like [Whimsical](https://whimsical.com/).&#x20;

If you are using a physical whiteboard, we recommend a large whiteboard as you may want to fit a complex diagram, core requirements, some estimations, and notes. Please make sure the whiteboard doesn’t take up the entire screen and you’re also visible during the interview.

## Key components

Now that you learned the basic theory, we suggest using the following mental model to think of key components of a system:

* Fundamental components
  * Data storage
    * Partitioning
    * Databases
    * Indexing
    * Caching
  * Data transport
    * Stateless services (e.g. API servers)
    * Synchronous vs asynchronous data processing
* Supplementary components
  * Throughput (e.g. rate limiter, load balancing)
  * High availability (e.g. replication)

We hope this simple logical distinction will help you design the core system and address various design problems. You can also use different box types in your diagram to clarify this distinction.

## Interview process

We believe it helps to have a basic interview structure in order to move through the interview and cover the most important topics quickly.

Here is the structure that we recommend.

1. Understand the problem and the requirements&#x20;
2. Estimate the scale of the system
3. Define the system interface
4. Define the data model
5. High-level design with only fundamental components (data storage and data transport)
6. Detailed design & design iterations

We will explain each step further in the guide.

Please don’t think of this process as religious and adapt based on interviewers’ expectations. Subjectivity in systems design interviews is much higher than with algorithms interviews.

#### Step 0. Before the interview

On the week of the interview:

* Make sure your Internet, computer, headphones, and microphone are working well.

On the day of the interview:

* Try to get to a confident relaxed state. It probably won’t come as a surprise, but we have seen very strong engineers who were highly prepared still fail interviews because they got nervous. They couldn’t recall what they learned and performed worse than usual. Some successful Outtalent used meditation to get to a confident relaxed state. Some people use music or exercise. Don’t overthink it.

#### Step 1. Understand the problem and the requirements.

One of the most common problems we see is candidates rushing to design the solution without clearly understanding the problem. We believe it often pays off to invest time upfront and make sure you understand the problem and core requirements well.

* We recommend writing down key requirements in a way that’s visible to the interviewer - on a whiteboard (if it’s big enough) or in your diagramming tool.
* Start by gathering requirements that will influence the fundamentals of your design. Don't spend too much on features that can easily be retrofitted later. Making forward progress is the most important thing in the beginning. There will always be unknowns and new requirements that will become clear over the course of the interview.
* If you have already seen or worked on a similar problem before, don’t rush to conclusions. Just because it feels similar doesn’t mean it is the same problem. Minor changes in the problem can lead to drastically different requirements.
* Take time to make sure you clearly understand the interviewer. You may feel rushed to get started with problem-solving or feel like you're asking too many questions. Try not to worry about that too much. You will end up wasting a lot more time if you don't understand the problem and start solving for the wrong thing.
* If the problem is complex, for example, it’s a service like Twitter, then functional requirements are important. If the problem is simple, then don’t spend too much time on them.
* Don't ask later stage questions (for example, SLA) before you understand the crux of the problem you’re trying to solve.
* Double-check with the interviewer that you have a good understanding of the problem before moving on to the next step.

#### Step 2. Estimate the scale of the system.

This step is important to inform our high-level design because designing for 1K user vs 1M users is a fundamental difference. 1M vs 100M users is likely a scale problem that can be addressed using scalability tricks like load balancing, caching, etc.

This estimation is supposed to be rough and quick. That’s why this step is often called a “back-of-the-envelope” estimation. Testing the precision of your estimation skills is not a primary goal of the interview.

* Key parameters depend on the problem, but it can include metrics like the number of users or the number of requests per second.
* For QPS, consider if machines or people are making requests. Another important thing here is a company-internal vs customer-facing system -- the former will likely have less stringent throughput and availability requirements.
* Overall, we recommend demonstrating the intuition you have built with your experience. Provide your suggestion for numbers and confirm if your assumptions are correct.

#### Steps 3-5. Core design stage.

We recommend asking the interviewer if they want to see a simple solution first or design for the largest scale straight away. We see interviewers having strong opinions on each side of the question.

For example, you can say: “I would like to start by designing the system interface. Next, I’ll define any data models needed. Then I’ll design a basic solution and iterate on it to take care of high load and failure modes later. Does that sound good or would you prefer I design for scale straight away?”.

* Make sure you are sketching out system interfaces, data models, and architecture diagrams on a whiteboard or in a diagramming tool. As the design evolves, make changes to the diagram accordingly.
  * It’s important to label all nodes in the diagram.
* Be careful about overcommunicating.
  * For example, by describing all the ways a webhook can fail. Go as fast as you can, don't feel the need to spend a certain number of minutes on a section. Pay attention to the interviewer’s reaction once in a while, if they look interested in hearing more or nudge you to move forward. Don’t ask if the interviewer agrees on every step, try to use your own judgment.
* Avoid academic concepts like CAP theorem unless they are critical for the task at hand and you understand them well. If the interviewer is interested, they’ll likely probe you on it anyways.
* Consider planning for 2-3 years of growth of the project/company
* First, just explain in words how you are thinking about the problem to make sure both parties are on the same page. Once you have clarity of the basic design in your head, translating it into a block diagram is easy.
* Any design choice has implicit trade-offs. Articulate all key trade-offs well.
  * If you have more than 1 idea to solve the problem, tell the interviewer about them, explain the tradeoffs and why you’re going with one of them.
  * There is usually no clear right or wrong answer. It's usually more important to demonstrate a good thinking process.
* While designing your system, make sure to keep coming back to the design parameter estimates to justify your choices based on them.
  * Be clear why you make certain design decisions, even if you disagree with the interviewer on the optimal design decision.
* Identify the fundamental components solving a simpler version of the problem
  * Focus on data storage and data transport, and don’t worry about supplementary components such as load balancers and rate limiters.
  * Identify which part is offline and which is online.
  * Don't overfocus on a diagram here, focus on showing your thoughts.
* Detect potential hints like "Why do you think a middle proxy layer is helpful?", or "Why do we need a separate table for such requests?".&#x20;
  * If an interviewer made a suggestion for an alternative solution, not only is it bad to reject it without explanation, it’s also bad to accept it without explanation. Please explain whether you accept or reject.
  * Note: at level 6 (Staff Software Engineer level) there might be a lot of devil's advocate questions, don't get frustrated, they are looking more for ideas rather than actual solutions.
* If you have a database, draft the schema in a way visible to the interviewer.
* Describe actual technologies you would use (e.g. Kafka for the messaging queue or your own solution). Explain why you are choosing them.
  * If you don't know the technology deeply, it may be better to just mention key features of abstract technology you need (e.g. "We need a messaging queue with persistence" instead of “I will use Kafka”).
  * Some interviewers will care less about detailed knowledge of technologies and care more about your understanding of the types of components that are needed and what’s required from them. You should adapt accordingly.
  * If you know a piece of technology well and want to use it, it’s good to show off a bit of knowledge of it as well.&#x20;
  * When choosing technology, please note that the "battle-testedness" of a technology is a valuable feature. And in real life, context matters, for example, what stack that company is using.

#### Step 6. Detailed design & design iterations.

At this stage, we recommend starting to think about key failure modes and specific problems that may arise. Start adding supplementary components to optimize your core design (e.g. load balancers, rate limiters, caches)

Key failure modes to consider:

* Availability: can your system stay operational 24/7?
* Scalability: can your system scale with the workload?
  * Do I have bottlenecks?
  * Can I handle the throughput that I calculated earlier? How do I handle it?
* Reliability: is your system resilient to sub-system failures?
  * What are some single points of failure?
  * Can I recover from a machine going down? How do I recover? A good trick is to look at all the “boxes” in your diagram and think through what would happen if one of them went offline.

Recommendations:

* You can review each box and each arrow for the problems above.
* Try using simple solutions first.
* Be careful about quickly and intuitively coming up with patches.&#x20;
* Make sure your patch doesn't change user requirements.
* One patch is ok, ten patches likely means you may have to change something more fundamental about the solution. Take time to step back (maybe 10-15 seconds) and understand the fundamental problem deeply.
  * Patches often overcomplicate the design and highlight the lack of deep understanding.
  * After 2-3 patches start rethinking the design.
* Try starting to simplify before your interviewer tells you to start simplifying. If you are not erasing or redrawing, it's usually a symptom of a bad design.&#x20;

## Conclusion

We hope this guide will help you better prepare and perform during systems design interviews.

Please reach out to us on LinkedIn if you have any questions, and if you would like to get personalized support from us, check out [Outtalent's main page](http://outtalent.com/) and fill in the [eligibility check](https://outtalent.com/check) which should only take a couple of minutes.

All the best!

[Usman](https://www.linkedin.com/in/umasood/) and [Tilek](https://www.linkedin.com/in/tilek/)


# Irine's coding interview guide

Irine's guide for preparing for coding interviews at large tech companies like Google, Facebook, Amazon, and Microsoft.

## About the author

[*Irine Karatsapova*](http://linkedin.com/in/rikachka/) *is known to many Russian-speakers as one of the leaders of the* [*SNS Internships Telegram group*](http://t.me/sns_internships)*. It is maybe the most popular online group in the region on the topic of software engineering jobs abroad.*

*As a university student in Russia Irine applied to many tens of companies and managed to get multiple internship and full-time offers abroad. She ended up interning at Google twice, at Amazon, and at Jane Street. In addition to that, she got some full-time offers including the ones from Amazon, Google, Microsoft which she declined to try more internships.*

## Introduction

First of all, let’s decide how motivated you are. There are two ways:\
\
1\. You don’t want to spend time on preparation.\
2\. You are ready to work hard.

## 1. You don’t want to spend time on preparation

Probably you are comfortable where you are. Probably you think that it would be nice to move abroad to work at one of those greatest tech companies like Google or Facebook. But, of course, not now\.. probably in 1-3 years.

Congratulations, you are not motivated :) But what is more important, you do not care if you will be rejected this year \[and that is awesome!].

If you want to make the life of future “you” easier, take the [list of 50 top tech companies](https://outtalent.com/us50) and apply to all of them. Now. Without any additional preparation \[remember... we agreed that you do not care about failures; I try my best to optimize your value while minimizing your efforts].

You will be pretty lucky to pass screening in 2-5 companies. \[The screening part is pretty random due to an enormous number of applications, thus the percentage of companies inviting a candidate to an interview rarely exceeds 10%. It is the same for all of us, nothing personal. And that is the reason to apply to 50 companies].

Ok, an interview. First of all, it is just fun \[try to enjoy this wonderful mental exercise!]. Secondly, you will have an opportunity to feel what it is like to have interviews at the top tech companies \[there are many guides describing it, but it is always better to feel yourself]. Future “you” will give you many thanks for those insights when you return to the process more seriously in a year or in several years.

As a side bonus, it may happen that you do pass interviews. Well done!

First of all:

— you did not spend any extra time for preparation and probably don’t need that much of preparation in the future

— you became much more confident in yourself, so you won’t worry next time \[and you did not worry this time, because you did not really care about the result; remember, you are comfortable at your current job]

Secondly, now you can:

— change your mind and decide to actually join the company where you received an offer

— ask the company to postpone the offer for several months or a year as you need to finish your current project \[it works]

— negotiate the salary at your current company and stay there

There were no negative effects by now :) Moreover there are none even if you did not pass interviews. It is always possible to apply again in a year. Sometimes companies will even remind you themselves that probably it is time to try one more time. And remember, you understood how it works and how far away you are from passing the interviews successfully \[you will be much less frustrated and more satisfied in the future].

## 2. You are ready to work hard

Ok, finally we move to the situation where you are motivated and ready to spend time on preparation in order to receive an offer at the company of your dream instead of a random company.

Have you ever heard about algorithms and data structures? If not, most likely you want to start with the course giving you the theoretic basis. For instance, [Intro to Algorithms and Data Structures](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513) from Google.

Additionally consider reading [Cracking the Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850). Probably you would like to skip coding problems and solutions \[you will cover it later], but the theoretical part is pretty useful there.

Finally, let’s move on to practice. [LeetCode](https://leetcode.com/) is a wonderful site containing more than a thousand coding problems.

\[Of course, there are many other options like HackerRank, Interviewbit, etc. If you have strong preferences for any of them, go for it, though the next paragraphs are based on LeetCode. Additionally, I would like to mention that Codeforces or Topcoder is an overkill, you don’t have to be good in competitive programming to pass interviews successfully].

Tl;dr on using LeetCode:

— Just solve many-many problems (random ones, easy and medium level)\
— Dive deep into problematic topics (theory + practice)\
— Run through the solved problems one more time before the interviews

Let’s have a look at the LeetCode a bit closer.

* First steps:
  * Initially, you may be slightly overwhelmed by the number of coding problems. I would suggest starting with the easiest tasks and gradually increase the difficulty.
  * Here is the wonderful [list of sorted](https://docs.google.com/spreadsheets/d/1je6J87BX5C5fo5Gbok1TJncVK3-UFkiDznHUzhtHbVU/edit#gid=0) [problems](https://docs.google.com/spreadsheets/d/1je6J87BX5C5fo5Gbok1TJncVK3-UFkiDznHUzhtHbVU/edit#gid=0) and here is the [explanation](https://leetcode.com/discuss/general-discussion/522705/1000-leetcode-problems-within-a-year), how the order was formed \[I enjoy the “Score” section, though please be more relaxed about the approach in general].
  * You can ignore tasks marked as “Premium” \[if you don’t have one] and “Sql” \[you won’t see those tasks in interviews].
  * Additionally I would recommend starting with the problems that have the section “Solution” for it, not all of them have.
* How-to approach the problem:
  * Read the task, come up with a solution \[it may take time] and write down the implementation \[it may be obvious, but I have to mention this step].
  * Think about corner cases and add custom tests to check them before submission. \[Later your interviewer will look for it. Plus in general, no one will come up with tests for you in real life.. and it’s a bad idea to test your code against reality, that is why spaceships fall].
  * Submit. Fix bugs until you pass all tests \[but of course try to avoid bugs during the previous step].
  * Think about time and memory complexity.
    * First of all, you should be able to estimate time and memory complexity.
    * Also try to figure out whether your solution is the most optimal \[Are there any repetitive or unnecessary steps? Are there any reasons why current time complexity can’t be improved? For instance, if we have to look at every element of the array, it can’t be better than O(n)].
    * Rewrite your code if needed. Try to avoid similarly unnecessary and sub-optimal steps in future tasks. There is nothing bad in writing code iteratively, but it is still useful to learn from the previous mistakes and save your time.
  * Read the section “Solution”. Compare your approach with the proposed one. If you found out that there is a better solution, implement it \[without peeping at the “Solution” section].
  * If there is no “Solution”, go to the “Discuss” page, sort it by “Most votes” and find several solutions there \[probably you prefer the same programming language as the one you used].
* If you had a hard time solving the problem:
  * First of all, make sure that you spent enough time thinking about the possible approaches \[it is bad if you take hints and immediately understand “oh, that was obvious!”; just think harder next time, you are not in a rush]. However, if you were not able to solve the problem, open the hints one by one, then read the solution. Implement the solution.
  * Probably you will understand that it won't be that easy to solve a similar problem. Look at the Related Topics section. Repeat the related theory and practice several more tasks on that topic.
  * Then come back to the random tasks \[without the topics known in advance].
* As solving tasks becomes easy:
  * Increase the difficulty of your tasks. If you go through the list given above, you can skip some of the tasks to increase the difficulty more rapidly.
  * Later you can use the button [“Pick one”](https://leetcode.com/problems/random-one-question/all) to receive a random problem. Ignore “Hard” tasks, most likely you won’t meet them at the interview.
  * Eventually you understand that it is pretty easy for you to implement your approach, you just need to think up a solution. Now you can start solving the tasks in your mind, without writing down the solution. It is pretty convenient if you don’t have your computer with you \[i.e., while in transport or hanging out with friends]. And it is really fun, learn to enjoy the process! However, do not get carried away and still practice implementation while at home.
* When to stop:
  * I don’t know how many tasks you have to solve: 100, 200, 500, … . At some moment of time you will feel that it became super easy, that you always come up with the most optimal solution in the first seconds and accurately implement it several minutes. Ok, probably you are ready :)
* Before the interview:
  * Probably you would like to repeat what you solved during many weeks of preparation. Read the task, quickly come up with the optimal solution, and look through your submission.
  * You will be able to cover a lot of tasks in a short period of time. You will remember the different approaches which you implemented. You will become more confident.

Another important step of preparation is mock interviews.

Here you will be able to practice not only hard skills but also soft skills which are important during the interview:

* The standard order of solving the task:
  * The interviewer describes the task to you.
  * Ask questions to clarify the conditions if necessary.
  * Describe your approach(es) stating the time complexity \[and memory, if the interviewer cares].
  * Write down the implementation.
  * Test the code.
  * State the time and memory complexity again.
  * Probably make several iterations improving the current approach or adopting your solution to the new conditions given by the interviewer.
* Remember to express all your thoughts out loud:
  * Your interviewer becomes frustrated if they do not understand what and why you are doing. They are not very good at reading your mind. Make their life easier, expressing all your thoughts, plans, and steps of implementation out loud.
  * As soon as you think you fully understood the task, start describing how you can approach it \[you don’t have time to think about it, sorry]. Probably you did not come up with the most optimal solution at once. Ok, describe what you have by now. You still have some time to think up a better solution while describing the more obvious one.
  * If you feel that there is a better solution, but you don’t know it yet, say it: “Currently the time complexity is O(n^2). I think we can do O(n\*logn), but I would like to implement O(n^2) at first and improve it later. Is it ok for you?”.
    * If your interviewer wants O(n\*logn), they will say “no” and give you hints, but most likely they will allow you to implement O(n^2), giving you more time to come up with the better solution \[do not forget to think about it while writing down the implementation].
    * For advanced users. Sometimes \[though pretty rarely] I articulate several approaches to the problem and then start implementing the medium one instead of the best one. I just know that in this exact case I will spend too much time on the best solution. It is better to finish and test the code for the medium approach than to be confused with the best one. At the same time I did show to the interviewer that I know the idea of the optimal algorithm.
  * While writing down the implementation, do not be silent. Every line of code has some meaning, articulate that meaning.
  * If you want to skip corner cases at first, say it, showing that you did not forget about them.
  * Concerning the time and memory complexity, do not forget to mention them.
* Tests:
  * It is extremely important to test your code. And it should not be five minutes of silence + “I finished testing! It works”. Write down your test cases and go through your code, line by line.
  * And… one last reminder, please, do not forget about corner cases \[it is really important, both during the interview and in real life].
* Other hints:
  * Pretend that you have helper functions which may be hard or boring to implement \[i.e., binary search if that is not the main idea of your task]. Most likely the interviewer won’t be interested in that part or they will remind you to implement it later.
  * As a follow-up to the previous point, if you do not remember the name of the function, method or module, name it somehow \[more or less self-expressive] and use it. \[For instance, I know that in python there is a module with functions “combinations”, “permutations”, and so on, but I never remember that it is named “itertools”. Similarly I suffer when I have to remember how I add an element to a queue: q.add? q.put? q.append? It is annoying thus I just randomly choose one of the options and pretend that it is true].
  * Illustrate all your words where possible. Give examples and write them down while describing your approach. Test your code highlighting the line you are currently at and writing down the current state in the comments. Additionally, learn how to draw graphs in a Google Doc \[otherwise it may be hard to talk about them].
  * Your interviewer is your friend, listen to their hints, they want to help you.

Good job! You are ready. Now it is time to apply for several dozens of companies :)

Why so many? You will feel more confident at the company of your dream if you already successfully passed the interviews in the other companies, which you do not really want to join. And anyways it is always better to have a choice between several offers \[additionally it will help you to negotiate your salary].

Good luck! I am sure that everything works out. You will be successful during the interviews and satisfied with your new job :)

Irine


# Resume and LinkedIn guide

Your resume is often your first interaction with a company.\
\
It's an opportunity to stand out from thousands of other applicants and in addition to your hard skills and accomplishments show:

* Your communication skills
  * Ability to write in English correctly
  * [Ability to write well](/guides/writing)
  * Ability to summarize information for a specific goal
  * Ability to organize and display information well<br>
* Your work culture
  * Being result-oriented
  * Paying attention to details<br>
* Your knowledge
  * What makes a good professional

In order to build a great resume it also helps to understand recruiting processes at various companies and countries. We believe companies like Outtalent should take such responsibility upon themselves and candidates should spend more time on their craft of passion.


# "Ridiculous Resume Rule"

How to stress-test your resume and avoid common mistakes as a software engineer.

As a part of our job, we analyzed thousands of resumes of engineers. We noticed that candidates often don’t properly mention very important details in their resumes. This means unless you went to a famous college, or worked at a famous company, your resume is less likely to get you an interview.

For example, candidates forget to include accomplishments, or they choose wording that is too general. To debug these problems we came up with a mental tool we called the Ridiculous Resume Rule:

> "Look at each statement in your resume and imagine its worst possible interpretation. Make sure the interpretation is not just bad, but ridiculously bad".

Once you see the delta between the original statement and the ridiculous interpretation, it should be easier to recall and add important details.

And we think this exercise is not just useful, but also fun! :)

Let’s take a look at some examples!

**Example 1**

Original statement: “Developed a high-load service for internal purposes”

Ridiculous interpretation: “Wrote a two-line script, tested how it will perform with high-load on one machine, reached no practical result”

Improved statement: “Designed and developed a service that served up to 5,000 concurrent internal users, speeding up daily employee workflow by approximately 5x”<br>

**Example 2**

Original statement: “Sputnik Systems, Software Engineer 2020–01 to 2020–07”

Ridiculous interpretation: “Sputnik Systems has only 1 other employee who just came up with a company name without registering it anywhere. They don’t have a proper business idea, did not make anything, and don’t have any customers.”

Improved statement: “Sputnik Systems, Software Engineer 2020–01 to 2020–07. Sputnik Systems is a telecom operator that serves 55+ mln active subscribers in Europe, Asia, and Africa”

**Example 3**

Original statement: ”2018 International Collegiate Programming Contest Semifinal” (as a phrase mentioned in the Awards section).

Ridiculous interpretation: “The candidate participated in the Semifinal, but was ranked last.”

Improved statement: “27th out of 250 in the 2018 International Collegiate Programming Contest Semifinal.”

**Example 4**

Original statement: “National Cotton University of Uzbekistan”.

Ridiculous interpretation: “In Uzbekistan, you go to this university if nothing else worked.”

Improved statement: “National Cotton University of Uzbekistan. Forbes ranked NCUU #90 in science and engineering in Eastern Europe and Central Asia”

**Example 5**

Original statement: “Developed an app”.

Ridiculous interpretation: “The app wasn’t launched. It has no users, and doesn’t work.”

Improved statement: “Developed an app that reached 50,000 downloads in the first 7 days.”

We hope these examples illustrate the Ridiculous Resume Rule well.

We found this exercise very useful in helping us improve the resumes of tens of engineers and make sure most of them get invited to interviews by companies like Google, Facebook, Amazon, Microsoft, Uber, Spotify, Stripe, and Flexport.

Now, we hope it will help you too!


# Resume: sections

We recommend including the following sections in the following order:

* [Top](/guides/resume-and-linkedin-guide/resume-top)
* [Summary](/guides/resume-and-linkedin-guide/resume-summary)
* [Work experience](/guides/resume-and-linkedin-guide/resume-jobs-section)
* [Education](/guides/resume-and-linkedin-guide/resume-education)
* [Leadership and awards](/guides/resume-and-linkedin-guide/resume-other-sections)
* [Interests](/guides/resume-and-linkedin-guide/resume-interests)

If you are a student or a newly graduate we recommend displaying the Education section before the Work Experience section.

Feel free to exclude:

* References

See also:

{% content-ref url="/pages/-M5ANNzJMsPOraItpm7X" %}
[Resume: excluded info](/guides/resume-and-linkedin-guide/resume-excluded-information)
{% endcontent-ref %}


# Resume: format

Our basic recommendations:

* "Resume" is a synonym of "summary" or "brief account", so keep it short. One page - if you graduated recently and a maximum of two pages if you have several years of work experience.
  * Some people treat resumes as complete work history. We encourage you to store your work history but suggest doing it somewhere else.
  * Focus on what's relevant for the specific role.
  * Use relatively short bullet points rather than long paragraphs.
* Use the PDF format, not Google Docs, Microsoft Word, or a website.
  * Companies use the type of software called ATS (Applicant Tracking Systems) to process resumes and review candidates and all good ATS are optimized to work well PDF resumes, but few might work well with Google Docs or Microsoft Word.
* Use simple and consistent design, font, sizing, and spacing.
* Use black color.
* Make main links clickable.\
  Examples:
  * your online profiles: GitHub, LinkedIn.
  * your employers
  * your projects
* On LinkedIn make sure everything appears only in English.

In order to stand out, we recommend using [Overleaf](https://www.overleaf.com/) to build your resume.


# Resume: top

We recommend including the following information:

* Name
  * In English given name should go first, surname should go second.
* Your phone number
  * It should start with + and your country code (e.g. +7 or +996). While in a lot of countries sign "+" converts to "00" in many other countries in converts to other digit combinations. For example, in the US it's "011".
* LinkedIn link
* Github link
* Programming languages
  * Here only include the languages you would be comfortable interviewing in. In other sections, you can mention other languages you used.

If you are from a different country but have work authorization (for example, a green card in the US or a spousal work authorization) we recommend mentioning that.


# Resume: summary

This section is optional.

* We recommend a clear short one-sentence summary.
* Avoid using autogenerated summary by LinkedIn or other tools.
* Highlighting your strengths compared to other candidates for the positions you are applying to.
* Avoid using general phrases and mentioning generic skills such as "great communication skills".
* Try to make it customized for the role you are applying for.


# Resume: work experience

Context

* Explain what the company does (in several words).
* Try to add why the company is impressive. Example: "the largest logistics company in Eastern Europe with clients in 78 countries."
* If it's a resume file, not a professional networking profile, consider adding a link to the company website.
* If it's a large company consider mentioning which team you worked on.
* If it's an outsourcing company consider mentioning which project you worked on.

Language choice

* For completed projects, it is probably best to use the past tense with the focus on accomplishments (e.g. “developed") instead of a focus on responsibilities (e.g. “developing” or “develop”).
* For projects in progress, you should usually use present tense (e.g. "developing"). Mention what you have accomplished so far.
* Consider having a verb instead of just a noun, e.g. “developed a frontend for a patient management system” versus just “frontend for a patient management system”, this helps clarify what your role on the project was.
* When you choose a programming language, database type, or made other big architectural decisions mentioned the word “designed”.
  * If you both designed and developed a system, mention “designed and developed”.

Add metrics

* Try to make sure as many of your accomplishments are measurable.
* **If what you built has a lot of users** mention the number of users, otherwise the reader will likely assume it has very few users.
  * Note that common metrics in tech companies include the number of active users. These usually are [30-day active users (monthly active users), 7-day active users (weekly active users), or 1-day active users (daily active users)](https://en.wikipedia.org/wiki/Active_users).
  * If you can provide the number of active users instead of registered users because lots of people register, but don’t use the product.
  * If most users are inactive then you can mention just users, but a good recruiter will assume most of them are probably inactive.

Extra

* **If you used distributed computing and other cloud technologies (e.g. AWS)** mention the technologies. I also recommend using the word “distributed”.
* **If you worked full-time while studying** mention the word Full-Time in your role name (e.g. Software Engineer, Full-Time) otherwise the reader will likely assume you spent most of the time studying and worked part-time.


# Resume: education

* Provide facts around what your university is best or really good at (e.g. rated #1 engineering university in Central Asia). More info: [Ridiculous Resume Rule](/guides/resume-and-linkedin-guide/ridiculous-resume-rule).
* If your final overall grade was high it would help to mention what it was.
  * GPA (Grade Point Average) is an American version of grading.
    * The maximum GPA is almost always 4.0.
    * If your GPA is 3.8 you can write it as: 3.8 / 4.0.


# Resume: leadership & awards

Leadership, awards, clubs, charities, volunteering

We suggest to have these as separate sections or merge them into one.

Awards

* Make sure it's clear how important your awards are.
  * Make sure the competition scope is clear: city-level, country-level, regional, or global.
  * Clarify how many people or teams participated in the competition.
  * If your award is not internationally well-known then readers will likely assume the award is not international and very small. Make sure to clarify the importance. See [Ridiculous Resume Rule](/guides/resume-and-linkedin-guide/ridiculous-resume-rule).
  * Make sure your international competitions are clearly visible. You can separate local and international awards into 2 different sections.
  * Many competitions give 1st and 2nd place to many people and “2nd place” can be understood as a prize given to tens of people. If you are the only person who got 2nd place say “absolute 2nd place”.&#x20;
* Rewrite “First”, "Second", etc as “1st”, "2nd" etc so that it’s easier to see what awards were more impressive.


# Resume: interests

We highly recommend including your interests in the resume. Listed interests help readers better understand your culture, your values, the uniqueness you can bring to the company, and what you are like as a person in general.

If your interest is something common like running, hiking, or soccer and you have some notable achievements there we recommend mentioning them. Otherwise, we recommend removing interests that are too common.

If you have more unique interests mentioning them can help the reader find something in common with you, like you, or just get curious about your personality.


# Resume: excluded info

What to exclude from the resume?

The pieces of information list below may be common and even sometimes required in some countries. Including such information should not hurt you, but we recommend avoiding it regardless if you are applying for companies in such regions as North America and Western Europe.

Why? \
\
Such pieces of information increase the probability of biased or simply unfair decision making and we believe good universities, employers, and countries discourage from including it.&#x20;

In the ideal world, it should not matter, but if you include this information we believe it may send a small unconscious signal that you are not aware of such potential biases and unfair treatment at a workplace.

We recommend excluding:

* Date of birth
* Gender
* Ethnicity
* Marital status
* Number of children


# LinkedIn photo

Our recommendations for photos written based on common real problems we saw:

* Smile
* Avoid
  * Wearing a suit
  * Photos that look like you are on vacation or in a nightclub
  * Photos where you are receiving an award
  * Photos where you are giving a speech
  * Photos where you are with another person and it may not be clear which person is you
    * Note that people from other countries may not know your gender based on your name
  * Graduation photos
  * Passport photos

We highly recommend using [Photofeeler ](https://www.photofeeler.com/)to get unbiased feedback on your photos. It's free, it just requires you to rate other people's photos too.

Examples of profile photos that we think are great:

* [Chinara Satkeeva](https://www.linkedin.com/in/chinarasatkeeva/)
* [Olga Bogatova](https://www.linkedin.com/in/olgabogatova/)
* [Aijan Junusheva](https://www.linkedin.com/in/junusheva/)
* [Meder Mamutov](https://www.linkedin.com/in/mamutov/)
* [Ainura Madylova](https://www.linkedin.com/in/ainura-madylova-44a45926/)
* [Tess (Mayall) Saville](https://www.linkedin.com/in/tessmayallsaville/)
* [Kainar Kamalov](https://www.linkedin.com/in/kainar-kamalov-598a7616/)
* [Timur Daurov](https://www.linkedin.com/in/tmdautov/)

Our recommendation for LinkedIn cover photo (only based on real problems I saw):

* Make sure it’s a high-resolution photo
* Avoid
  * Sending a potential message you are interested in a different profession (entrepreneurship instead of engineering)


# LinkedIn profile examples

Examples of notable LinkedIn profiles:

* Entrepreneurs and Product Managers:
  * [Max Ventilla, Founder and CEO of AltSchool](https://www.linkedin.com/in/ventilla/)
  * [Carlos Emilio Gomez, Founder, 7r Ventures](https://www.linkedin.com/in/carlosemiliogomez/)
  * [David Weekly, Head of Product in Datacenter Software division of Google](https://www.linkedin.com/in/dweekly/)
  * [Iliana Montauk, Product Manager at UpWork](https://www.linkedin.com/in/ilianamontauk/)
* Software Engineers
  * [Yurii Rebryk](https://www.linkedin.com/in/yurii-rebryk/) (managed to get 4 internships in the US applying from Russia)


# LinkedIn: company name

We recommend making sure every organization on your resume has a high-quality logo.

* Sometimes you just need to update the name of the organization so that it links properly to the organization's profile on LinkedIn.
* If an organization exists consider contacting them to ask to improve their logo.
  * For example, Tilek is an alumnus of the American University of Central Asia (AUCA). AUCA had an ad saying something like “Check out our new campus” as a part of their logo. Tilek messaged them asking to change it to a proper logo. He explained that it is a tiny, but important detail for AUCA alumni careers. They understood and improved the logo which now helps thousands of other alumni.
  * If the organization doesn't exist or is hard to reach we recommend showing your leadership skills by creating a profile for that organization on LinkedIn. This will help not only you but also everyone else related to this organization. Later you can transfer administration rights to the rightful owner.


# Writing guide

We recommend engineers to follow these guidelines.

1\. Correctness

* Avoid common English language mistakes.
  * More details: [Writing: English language](/guides/learning-english/common-english-language-mistakes)

2\. Consistency, organization, and visual appearance

* Use consistent font face, color, and size.
* Use consistent casing.
* Use consistent punctuation.
  * For example, have a clear logic for using dots at the end of each bullet point phrase.
* Try use only one to three colors.

3\. Minimalism

* Keep only phrases and words that add significant meaning.

4\. Positivity

* Use positive words instead of negative where possible.

5\. Clarity

* Make sure the words you mention are known by the typical reader or make sure to explain them.
* Consider keeping abbreviations only for very commonly used terms in your field or for [searchability](https://en.wiktionary.org/wiki/searchable) (making sure your resume shows up for keyword searches). It looks like [Elon Musk](https://en.wikipedia.org/wiki/Elon_Musk) didn't like acronyms too. Here is what his email about acronyms to the [SpaceX](https://en.wikipedia.org/wiki/SpaceX) team allegedly looked like: [ASS (Acronyms Seriously Suck)](https://gist.github.com/klaaspieter/12cd68f54bb71a3940eae5cdd4ea1764).
  * OK: SQL or CSS.
  * Not OK: BDD (Behavior-Driven Development)

6\. Simplicity

* Use the language and structure that is as simple as possible, [but not simpler](https://en.wikiquote.org/wiki/Albert_Einstein).


# Writing: Goals

In general, we recommend familiarizing yourself with the concept of [SMART goals](https://www.khanacademy.org/college-careers-more/learnstorm-growth-mindset-activities-us/elementary-and-middle-school-activities/setting-goals/v/learnstorm-growth-mindset-how-to-write-a-smart-goal). In addition to that, here we list our own specific recommendations based on common problems we have seen with goals.

* **Use a valid phrase**

  Examples:

  * "2 Pramp interviews" -> "Conduct 2 Pramp interviews" or "Pass 2 Pramp interviews"
  * "interviewing.io" -> "Conduct 2 interviewing.io interviews"
* **People can see what exactly you are planning to do**

  Examples:

  * "Use 1 Kaggle ML model" -> "Copy 1 Kaggle model, feed into input and view output"
  * "Refreshing memories on 20 LeetCode problems" -> "Read through 20 previously solved LeetCode problems and all optimal solutions"
  * "Remember examples of situations where I took the initiative." -> "Remember and write down 3 or more examples of situations where I took the initiative."
  * "Read CtCI - 1 chapter" -> "Read CtCI - Chapter 3 - Dynamic Programming."
  * "Update LinkedIn" -> "Update LinkedIn according to the guide" or "Make sure all the information on LinkedIn is up-to-date"
* **Your goals are focused on clearly measurable results, not the process**

  Examples.

  * "Read the CtCI book" -> "Complete the first 5 chapters of the CtCI book"
  * "Try to use ML for my diploma data" -> "Get results from an ML model for my diploma data"


# Learning English

Our general recommendations:

* Quick
  * Install Grammarly to see your mistakes in writing and learn to prevent them.
  * Take an online English test to identify problem areas.
* Long-term
  * Consider switching your role or a company to make sure you regularly have to speak English at work. For example, an outsourcing company with English-speaking customers.
  * Whenever you are tired try watching entertaining/relaxing videos in English with subtitles.
    * Some people like learning lyrics of their favorite songs in English.
  * Practice your English where possible.

Consider taking additional English-language classes:

{% content-ref url="/pages/-M60xE9VqwptxR-5YKrn" %}
[English learning services](/guides/learning-english/english-learning-services)
{% endcontent-ref %}


# English learning services

Here are popular services used by software engineers that got jobs abroad at companies like Google:

* [Italki](https://www.italki.com/)
* [Lingoda](https://www.lingoda.com/)
* [SkyEng](https://skyeng.ru/)
  * They have talking clubs in addition to normal classes.

Other services

* [Polygled](https://polygled.com/). You can use the referral code 'outtalent' to get a 20% discount.
* [Preply](https://preply.com/)


# Common English mistakes

For now, we mainly work with engineers for whom English the second or third language. Here are common mistakes we see among them, including real-world examples.

**I. Easy**

These mistakes are usually made due to a lack of attention to detail rather than a lack of knowledge. These mistakes are usually easy to catch and learn to prevent.

1. Attention > Typos
   * "Leetcode" -> "LeetCode"
   * "Systems Design Primer" -> "System Design Primer"
2. Attention > Singular vs plural
   * "3 LeetCode problem" -> "3 LeetCode problems"
3. Attention > Spelling
   * "recomendations" -> "recommendations"
4. Attention > Extra spacing
   * "Solve the Wild Card Matching  problem" -> "Solve the Wild Card Matching problem"

**II. Medium.**

These mistakes usually point to a lack of knowledge of "medium complexity" rules in English.

1. Grammar > Missing words
   * "Record a video and share on Telegram" -> "Record a video and share it on Telegram"
2. Grammar > Tenses
   * "I founded one mistake" -> "I found one mistake"
3. Grammar > Word order
   * "Read the Grokking the System Design 1 lecture" -> "Read 1 lecture of the Grokking the System Design" or "Read the Grokking the System Design (1 lecture)"
4. Punctuation > Ending of a bullet point
   * Long phrases in bullet points don’t need a dot at the end, but if it’s a sentence without a bullet point use a dot.
5. Punctuation > General separation
   * Some people write a list of phrases in their resume without using dashes or bullet points.
6. Punctuation > Casing instead of quotes in titles
   * "Read 'Queue and BFS' chapter on LeetCode" -> "Read the Queue and BFS chapter on LeetCode"

\
**II. Larger problems**

These mistakes usually point to a lack of knowledge of complex rules in English.

1. Grammar > Articles
   * "Solve problem Reverse Nodes in k-Group" ->  "Solve the Reverse Nodes in the k-Group problem"
   * "Conduct interviewing.io coding interview" -> "Conduct an interviewing.io coding interview" or "Conduct one interviewing.io coding interview"
2. Grammar > Prepositions
   * "Read through 3 chapters via the CCI book" -> "Read through 3 chapters of the CCI book"
3. Casing > Capitalizing the first letter of bullet points
4. Casing > Job titles
   * \[Usage context: a job title in a resume] "software engineer" -> "Software Engineer"
   * \[Usage context: a job title in a resume] "Senior Software engineer" -> "Senior Software Engineer"

In general, we strongly encourage using the most modern spell-checker. As of 2022-06-20, we believe the best is [Grammarly](https://www.grammarly.com/).


# Information diet

We see the following common problems with information diets.

1\) **Compulsion loops**

A [compulsion loop](https://en.wikipedia.org/wiki/Compulsion_loop) is a chain of activities enjoyed by the user that causes them to continue the activity.

Nowadays there are effective technologies to create a virtually infinite stream of rewards for your brain.

Common sources:

* Social media & video platforms that cause this behavior: Facebook, Instagram, TikTok, Twitter, YouTube, Netflix.
* Video games
* Email (it's more limited, but still can take several unplanned hours)

Our recommendation:

* Remove related apps from your phone
  * Installing them only for special cases and deleting them soon after
* Start noticing when you have a compulsion to check social media, communication, & entertainment apps when you get bored for a moment
* Add friction to signing up to social media from your browser
  * Sign out after use and add 2-factor authentication so that you have to enter a code received from SMS every time you sign in
  * Use Chrome and install Chrome extensions that make it more difficult to sign in to the websites you select\
    Examples:
    * [Crackbook Revival](https://chrome.google.com/webstore/detail/crackbook-revival/fakedinbmdjifniaepnfbplcheaecebc?hl=en)
    * [Delayed Gratification](https://chrome.google.com/webstore/detail/delayed-gratification/ifhndomfnbmggdgodaicfebeggdphlcn/related?hl=en)
* Check your usage statistics regularly
  * iOS and Android have that as a default feature
  * On your desktop, you can install tools Rescue Time
* Plan out time or circumstances under which you thoughtfully allow yourself to use entertainment apps (e.g. while brushing teeth, or while riding a car)

**2) Interruptions from notifications**

We recommend disabling all entertainment, social media, and messaging notifications on your phone except for SMS. Then, we recommend telling only select people that SMS is the only way you get notified.

**3) Focus on negative news**

As of 2020, most news websites seem to be monetized by advertisements and are often incentivized to shock you and make you go to their web pages. This means they often focus on negative news even though there are many boring positive developments happening around the world.

We recommend limiting the consumption of regular news as much as possible.


# Mental health

This guide is meant to reduce stress and anxiety that may come with pursuing ambitious goals.

We recommend checking out the following free apps:

* [Jour.](https://jour.com/) It allows multiple types of journaling. For example, at the end of each day, we recommend writing down good things that happened.
* [Woebot.](https://woebot.io/) Woebot chatbot might be able to help if you have anxiety or depression. It is built by psychologists that worked at Stanford for over 10 years.

We also recommend this guide by the cofounder of Twitch: [Feeling Good: Justin’s Program](https://justinkan.com/feeling-good-justins-program-b77c70437ee2).


# Related career opportunities

Here we collect are opportunities that are related to Outtalent mission.

{% content-ref url="/pages/-M5ZaonRagnIconnbGeS" %}
[Growing your project](/guides/related-career-opportunities/growing-your-project)
{% endcontent-ref %}

{% content-ref url="/pages/-M5ZbaGc8ogHf8O0U6fB" %}
[Programs for women](/guides/related-career-opportunities/opportunities-for-women)
{% endcontent-ref %}


# Internships

This section is focused on software engineering internships.

General advice:

* The main two types of interviews for interns are usually: a coding interview and a behavioral interview.
* We recommend trying to participate in and getting as far as possible in competitive programming. The most popular such tournament is [ICPC](https://en.wikipedia.org/wiki/International_Collegiate_Programming_Contest). We think if you get into ICPC World Finals your chance of getting an internship at a company like Google is \~90%. If you get into ICPC Semifinals, and your English is very good, and you do great at behavioral interviews then we think your chance is about 20% which we think is still very high.&#x20;
* If you want to avoid the competitive programming part we recommend working on your own project or getting another internship earlier and building something impressive.
* If your university allows, keep applying for internships from your junior year, both for the Summer and Fall seasons.

Interesting opportunities:

* [Google Summer of Code](https://summerofcode.withgoogle.com/). It's a global program focused on bringing more student developers into open source software development. Students work with an open-source organization on a 3-month programming project during their break from school.
  * Application deadline in 2020: March 31
* [The MLH (Major League Hacking) Fellowship](https://fellowship.mlh.io/students) is a 12-week internship alternative for software engineers. Instead of working for a single company, you'll work on the Open Source projects that every company depends on.
  * You must have a bank account in one of the following countries or regions: Australia, Canada, the EU, Hong Kong, India, Japan, Mexico, New Zealand, Singapore, Switzerland, the UK, or the US.
  * Application deadline in 2020:  May 22

Communities to join:

* In Russian language:
  * [SNS Internships Telegram group](https://t.me/sns_internships). SNS stands for Startups Never Sleep. It was a Russian-language group about startups that grew large and gave rise to subgroups including the one about engineering internships.


# Growing your project

Here we collected resources for engineers in Eastern Europe, Asia, Africa, and Latin America who are working on a technology-related project.

* [YCombinator](https://docs.outtalent.com/guides/related-career-opportunities/www.ycombinator.com). We think it's the most prominent startup accelerator.&#x20;
  * We highly recommend their [YouTube channel](https://www.youtube.com/channel/UCcefcZRL2oaA_uBNeo5UOWg) and the [blog](http://www.paulgraham.com/) of their co-founder [Paul Graham](https://www.youtube.com/watch?v=4WO5kJChg3w).
* [Pioneer](https://pioneer.app/join/tilek). It's a fully remote accelerator founded in 2018.
* [WeFunder's Fight the Virus Challenge](https://wefunder.com/fight-the-virus). This one-off accelerator program funds startups addressing problems and opportunities caused by the COVID-19 outbreak.
* [Emergent Ventures](https://www.mercatus.org/emergent-ventures). This fellowship and a grant program from the Mercatus Center directed by Tyler Cowen seeks to support entrepreneurs and brilliant minds with highly scalable, “zero to one” ideas for meaningfully improving society.


# Programs for women

Here we collected a list of select career opportunities for women in technology that live in Eastern Europe, Asia, Africa, and Latin America.

Historically women's rights and opportunities were often unfairly and irrationally limited. They were limited from the right to vote to the right to fly an airplane, as well as in numerous other ways.\
\
Centuries of inequality created deep-rooted challenges with fairness, diversity, and balance of power among genders in most industries and countries around the world.

Now there are many programs that aim to improve the situation. Here are the most relevant opportunities we know in the technology industry.

1\) [TechWomen](https://www.techwomen.org/). This U.S. government's program is designed for young as well as experienced local female leaders in science and technology from Africa, Central Asia, South Asia, and the Middle East. Each year they organize a group of women and find them 5-week internship-like projects in some of the best tech companies like Google and Tesla. The program helps with immigration and pays for transportation and accommodation.

{% embed url="<https://www.youtube.com/watch?v=KAZnVdz282Q>" %}

2\) [SVIP](https://siliconvalleyinternship.com/). The Silicon Valley Internship Program gives newly graduating Software Engineering Students the unique experience of working with tech companies in Silicon Valley through a one-year internship. It has a track called SVIP International Women that is focused on female software engineers.

{% embed url="<https://www.youtube.com/watch?v=IpqyMug67Kc>" %}

3\)[ Google's Women Techmakers](https://www.womentechmakers.com/) program provides visibility, community, and resources for women in technology. You can find or start a local chapter and join their online and offline events.

{% embed url="<https://www.youtube.com/watch?v=fknJH4qyOIc>" %}

4\) [AnitaB.org](https://anitab.org/) recognizes the accomplishments of women in computing, and the organizations that recognize their value, through a variety of awards.

Thanks for ideas and contributions to:

* [Alina Filimokhina](https://www.linkedin.com/in/alina-filimokhina/)&#x20;
* [Sanira Madzhikova](https://www.linkedin.com/in/sanira-madzhikova/)


