/welcome-entry-level

Welcome! This repo hosts a basic set of guidelines for Indonesian students and fresh graduates to land their first tech job at Zero One Group!

Welcome, Entry Level!

Welcome! This repo hosts a basic set of guidelines for Indonesian students and fresh graduates to land their first tech job at Zero One Group!

This document is a constant work in progress. If you spot any mistakes, have any feedback or even disagree with some of the points made in this document, please feel free to open an issue and tag @rubiagatra and/or @anthony-khong!

Contents

⬆ back to top

Background

What is Zero One Group?

We provide an ecosystem of cutting-edge technological solutions to challenging business problems. We work with Indonesia's household enterprises such as HokBen and well-established international institutions such as Bloomberg Philantropies. Apart from being deeply involved in the JS ecosystem with Node and React, we also routinely use Flutter and Terraform as part of our tech stack.

A Remote-First Engineering Team

We are a 'remote-first' engineering team. It means that our default means of communications is asynchronous, which does not require the engineering team to be in the same place at the same time. An important implication of this is that engineers that are not based in Jakarta, where our main office is located, still get a first-class experience with Zero One Group. They never feel left out from important team discussions, and they don't miss out on unintentionally decisive water cooler conversations.

Currently, our remote engineering team consists of developers based in Greater Jakarta, Purbalingga, Kulon Progo, Surabaya, Malang and Makassar.

If you want to learn more about how to work on a remote-first engineering team.

Investing In Our Engineers

One of our co-founders, Didit, used to always say that he would like "to build a company for engineers by engineers". Indeed, we often claim that we are an engineering-first company, but what does it mean? At a high level, we want to optimise for engineers' comfort, productivity and growth. We would like to create a working environment where engineers can do their best work, make a real difference through software and be proud of their accomplishments. And all the while, they must also have the opportunity to explore new technologies and develop technically. We constantly invest in learning curriculums, career ladders, handbooks, mentoring schemes and other support systems so that we can be better at providing that working environment.

An unusual fact about Zero One Technology is that every founding member is or has been an engineer! We fully understand what it feels like to walk in the shoes of an engineer. We view the profession as a form craftsmanship - something that takes a lifetime to master. Thus, we respect the engineer as both a professional and an artist.

Our Support for Open Source and Local Tech Ecosystems

Every engineer in Zero One Group is expected to contribute to open-source software at some point in their tenure. Here are some of the projects that we have initiated or actively contributed to:

We also encourage our engineers to share what they've learned publicly and give back to the community:

At times, we also write about the challenges and thinking that go into particular tech problems that we encounter:

A significant portion of our engineers actively participate in local and international tech communities. If you have the chance to join one of the events by the communities below, you may bump into someone from Zero One Group. Please come and say hello - we would love to hear from you!

⬆ back to top

Zero One Group Career Ladder

graph TD
    A[Product Engineer 1] --> B[Product Engineer 2]
    B[Product Engineer 2] --> C[Product Engineer 3]
    C[Product Engineer 3] --> D[Senior Product Engineer]
    D[Senior Product Engineer] --> E[Lead Product Engineer]
    E[Lead Product Engineer] --> F[Engineering Manager]
    F[Engineering Manager] --> G[Head of Engineering]
Loading

Based on Zero One Group Career Ladder, what you aiming for as an entry level are PE 1 or PE 2. PE 1 and PE 2 experiences ranging from 0 - 2 years experiences of work.

⬆ back to top

How to Get Quality Courses for Free or at Little Cost

As a student, you will get benefit from multiple learning platforms as long as you have your university email name@university.ac.id. We provide a list of free or inexpensive learning materials below.

Github Student Pack

GitHub Student Pack is a really good bet for a free learning platform and software tools! At the time of writing, these are the learning materials you can get if you apply GitHub Student Pack:

Free Courses

Affordable Courses

⬆ back to top

Prerequisites

An understanding of the concept of programming in the web is a prerequisite for an engineering role at Zero One Technology. If you are starting from zero, you can follow this bootcamp:

or

⬆ back to top

Getting Started

If you finish the following learning materials, you will be in a great position to apply for a Product Engineer 1 position:

Fundamentals

  1. FrontendMasters - JS Fundamentals Functionals
  2. FrontendMasters - CSS Grids and Flexbox
  3. FrontendMasters - Full Stack for Front End
  4. FrontendMasters - Intro all Databases

Developer Tools

  1. FrontendMasters - Complete Intro for Linux and Command Line
  2. FrontendMasters - Complete Intro to Containers
  3. FrontendMasters - Learn Git in Depth
  4. FrontendMasters - Introduction to DevTools

Node.js and TypeScript Foundation

  1. FrontendMasters - Introduction to Node JS
  2. FrontendMasters - Api Design in Node JS
  3. Udemy - Complete NodeJS Developer
  4. FrontendMasters - TypeScript Fundamentals

Web using React Foundation

  1. FrontendMasters - Complete Intro React
  2. FrontendMasters - Intermediate React

Data Structures, Algorithm and Preparing for Interview

  1. FrontendMasters - Complete Intro Computer Science
  2. FrontendMasters - Tree and Graph Data Structures
  3. FrontendMasters - Introduction to Data Structures for Interviews

⬆ back to top

Paths and Specialisations

Backend

More information about backend path - https://roadmap.sh/backend

  1. FrontendMasters - Functional JavaScript First Steps
  2. FrontendMasters - Intermediate TypeScript
  3. Udemy - SQL and PostgreSQL
  4. Udemy - Docker for Node.js Projects From a Docker Captain
  5. Udemy - GitLab CI: Pipelines, CI/CD and DevOps for Beginners
  6. Udemy - Introduction to Database Engineering
  7. Udemy - gRPC Node.js MasterClass: Build Modern API & Microservices
  8. FrontendMasters - Complete Intro to Real-Time
  9. Udemy - Pragmatic System Design
  10. UML and Object-Oriented Design Foundations
  11. Master Fullstack - React, Fastify Node.js, Postgresql & TDD

⬆ back to top

Frontend Path

More information about frontend path - https://roadmap.sh/frontend

  1. FrontendMasters - Functional JavaScript First Steps
  2. FrontendMasters - Intermediate TypeScript
  3. FrontendMasters - React and TypeScript
  4. FrontendMasters - Build a Fullstack App from Scratch (feat Next.js)
  5. FrontendMasters - Web Performance
  6. Udemy - GitLab CI: Pipelines, CI/CD and DevOps for Beginners
  7. Udemy - Testing React with Jest and Testing Library
  8. FrontendMasters - Testing Web Apps with Cypress
  9. FrontendMasters - AWS For Front-End Engineers, v2
  10. Udemy - Master Fullstack - React, Fastify Node.js, Postgresql & TDD

⬆ back to top

Mobile Path

  1. Udemy - Flutter & Dart - The Complete Guide 2022 Edition
  2. Youtube - Testing Fundamentals of Flutter Course
  3. Udemy - The Complete Dart Language Guide for Beginners and Beyond
  4. Udemy - Flutter & Firebase: Build a Complete App for iOS & Android
  5. Udemy - Flutter REST API Crash Course: Build a Coronavirus App
  6. Youtube - Flutter Way Speed Code - UI Practices

⬆ back to top

DevOps Path

More information about backend path - https://roadmap.sh/devops

  1. Udemy - Master Linux Administration
  2. FrontendMasters - VIM Fundamentals
  3. Udemy - GitLab CI: Pipelines, CI/CD and DevOps for Beginners
  4. Udemy - Ultimate AWS Certified Cloud Practitioner - 2022
  5. Udemy - GCP for Beginners - Become a Google Cloud Digital Leader
  6. Udemy - Introduction to NGINX
  7. Udemy - Amazon ECS & Fargate Master Class - Docker on AWS
  8. Udemy - Learn DevOps: Infrastructure Automation With Terraform
  9. Udemy - Terraform Beginner to Advanced - Using Google Cloud Platform
  10. Udemy - Ansible for the Absolute Beginner - Hands-On - DevOps

⬆ back to top

How to Apply

Please send your CV and/or portofolio to info@zero-one-group.com and cc doni@zero-one-group.com. Typically, the interview process consists of a technical interview, a general interview and a skill test.

⬆ back to top

Interviewing at Zero One

Interview Format

In a typical case, we require a skill test and two interview rounds - general and technical. The two interviews do not have a fixed order, but the skill test is typically sandwiched between the two interviews.

You should not need to prepare for the general interview round, as it should resemble a friendly chat about your life, hobbies, motivation, career goals, technical interests and past experiences. It is a way for us to get to know you better, and assess whether you would fit in well to the team we are hiring for. You should, however, prepare for the technical interview, as you will be tested not only on the depth, but also on the breadth of your knowledge. For that reason, be prepared to answer questions outside the area of your expertise!

Our skill test consists of a simple task in an area of expertise that you can choose, namely backend, web frontend, mobile or devops. Typically, the deadline of the skill test is set 72 hours after the test is sent to you. You may choose the day and time to start the test to fit your schedule!

Tips and Advice

  • Accept the calendar invitation, and turn up on time. We take punctuality and commitment very seriously.
  • We also take deadlines very seriously. If you think you're not going to meet the skill test deadline, reach out to us early, and explain your situation. There is not much we can do if you tell us a few hours before the deadline!
  • Speak freely and openly about your opinions and experience. We love genuine (though perhaps unusual) candidates!
  • Be relaxed! Treat the interview as a casual conversation. There is no need to use formal languages such as 'Pak', 'Bu' or 'sebelumnya terima kasih, perkenalkan nama saya ...'. We are not that kind of company 😂
  • If you don't know the answer to a question, it's better to say so, instead of guessing the answer. And do look it up after the interview - we may ask you the same question again!
  • Read and learn widely. You are not expected to know everything about software development, but you should know a little bit about backend, web frontend, mobile and devops.
  • We love personal projects, open-source contributions and online courses. If you are not asked about it in your interview, do proactively tell us about it!

⬆ back to top

What Can I Do to Improve My Chances of Getting Accepted

  • Complete related online courses.
  • Contribute to open-source software.
  • Work on your side projects or software portofolio.
  • Participate in your local tech communities.
  • Dive deep into TypeScript or static typing in general.
  • Practice and get comfortable with automated testing.
  • Design and experiment with your own CI/CD pipelines.
  • Impressing us with your (Neo)Vim setup! haha we're just joking 😆 (or are we? 🤔)

⬆ back to top