So you want to be a Software Engineer?

Debmalya Sinha
6 min readNov 19, 2022

This article exists because someone who wants to be a Software Engineer someday asked me the following questions. I thought they were great questions and can be useful for a broader audience by some capacity. Everything I’ll mention here will be free. I’d encourage not spending a penny until you have to as there’s so much info just for free! Don’t fall for people selling online courses for money to teach you interview tips unless you’r eabsolutely sure you need it. Good luck!

How does an aspiring software engineer showcase their work?

I’m going to assume you know how to write basic programs. If you don’t, there are variety of free coding resources and bootcamps (just google). Now that you can code, There are three rough steps to do this:

  1. Write a piece of software with which people can interact! The simplest one is some sort of a game. Start by something simple like tic-tac-toe. You can also do simple chess! Don’t worry, you don’t have to be an AI expert to code it. You can make a chess game where only people make the moves and the program only allows legal moves! This can be as simple as just entering chess board numbers on the console or you can learn how to program it in an app! This brings the nest step! Build a mobile app. There are a number of cool app ideas for beginners. Make the one you think is cool. Please use google search! Or better yet, use google’s own free coding resources. Most big tech companies have these support programs.
  2. Make whatever cool stuff you wrote in your github account! They already have a nice landing page for people to just download your code and start playing! Bunch them up according to their functionalities — like games, utility, apps, misc etc. Bonus point — do you know you can make a free static webpage with github?
  3. The next step will be starting to contribute to open source projects. There are many ways to do this (article 1 , 2, 3). Basically the gist is that you’ll have to look for active open source projects (they’re mostly hosted in github) with a number of contributors so you can contribute and learn from great developers at the same time. A great place to do both is your local Linux Users Group (LUGs). These groups regularly contribute to many FLOSS (Free/Libre Open Source Software) projects and they have free bootcamps for different levels of people.
    Getting a FLOSS project contribution under your belt is going to help you immensely while finding a job. When you are starting out, the programs you write tend t obe smallish ones without a lot of modules with typically under 2000 lines of code. In a job you’ll have to manage lrge codebase with hundreds of thousands of lines of code if not millions with many modules. There are many coding practices that you need ot be aware of. Contributing to FLOSS gets you right into the hang of meaningfully managing large codebases and gives your interviewer good signal that you’ll be a great fit to the team as a dev.
  4. Bonus point — Get into competitive large coding challenges like the Google Summer of Code, MIT xPro coding camp. Earn money and contacts while you accomplish 2–3 months of projects!
  5. Bonus point 2 — Social media. Start an Instagram, Youtube, and TikTok account and post your daily/weekly journey in to coding! Follow some of the tech-content creators. Tiffany from Tiffin Tech comes to mind as an example. Masha from Coding Blonde talks a lot about girls in tech.
    Talk about the challenges. Talk about the crazy things in the industry you’ve heard. Ask questions to the community. Just be careful, social media can be a toxic at times and people can be discouraging there. Use this only if you think you can deal with the inevitable negativity by trolls. You’ve been warned!
  6. If you want to get an interview at a firm, and want to showcase your work to them, COLD CALL THEM and ask for feedback of your work. Just email. ping them up at whatever social media they have. if they dont answer first, continue to do follow up. link all your relevant info in the emails. If they’re not hiring, ask them what do they want in particular. Don’t stop until you get a yes.

How can someone start their SWE journey?

By just starting. You dont need the latest laptop or even painful, expensive installations of complex IDE software. You can start with a web browser based IDE like Replit. This is not sponsored by them in any way but I’ve used it for fun and they’re great. Microsoft VS code has a free community version you can always use too.

The most common barrier where most people get stuck and quit learning is after a couple weeks from starting when they know how to program basic stuff and then they get bored as they can’t find the next interesting problem to work on.

A good way to beat that is to enroll in a free courses/bootcamps where you’ll get increasingly harder exposures to complex topics in Data Structures, Algorithms, Code Management etc. Coursera has a TON of free courses! Start there!

An important point is to make friends while walking along this journey. LUGs are great to have contacts, so can be coursera. Talk to people and your fellow learners. Set up whatsapp/fb chat groups to talk about cool stuff. Show each other things you’re doing. Share industry news. Get inspired, and inspire others! It is a beautiful world if you make it.

How did you get into Meta?

My personal journey will be different than most. So rather than my journey, let me tell you someone I saw closely years ago. Let’s call them Ada.

Lady Ada Lovelace. The first ever computer programmer who wrote the first code before a computer was even built by Charles Babage, only theorised.

Ada didn’t know anything about programming when they were in middle school but came to my university for a week long bootcamp taught by a few professors and a graduate student (me). On the second day, Ada’s teacher (and an Uni professor) told them — “perhaps coding is not for you” as they had some difficulties understanding concepts. There is nothing I hate more than this phrase — you need certain ‘skills’ for xyz. I heard the professor telling Ada this and took it on myself to help them a little. Turns out, all Ada needed is a little encouragement and the initial push.

By the end of the week Ada wrote a game in python that other kids were playing on the PC. A year later Ada got into the National Infromatics Olympiad and a few months later, the International Olympiad. Next was an internship from Redhat (a big linux software solutions company) and by the time Ada were in college, they already were writing software for various contractors and earning a comparable adult salary. Ada later did a masters and went to work for an internet company but that’s not the point.

The point is, it doesn’t matter how someone started their journey. The important thing is not to let random people tell you what you can or can’t do. If there’s difficulty in something, and you feel stuck, double down and say: “You think this is the end of the road? Watch me.”

Any junior SWE coding interview tips?

Entry level SWE interviews are mostly coding oriented as interviewers already know you don’t have a lot of experience. Nail the coding round.

After you learn programming basics, it’s time to start learning two more things — Data Structures (DS) and Algorithms. I’ve already mentioned coursera and other resources. Start there.

Once you finish a couple DS/Algo courses, make a free account on any of the coding practice platforms like leetcode, codechef etc. Start by the easy questions, then attempt the mediums. You DON’T need to go to the hard questions fro most interviews. Just take 20 minutes in a day and solve one of those programming problems.

Start a linkedin profile and start cold calling people/recruiters and talk to them. Dont worry if they say they don’t have any vacancies but ask them, what kind of skillset they are looking for? Start to get an idea of the hottest frameworks/languages in demand and start learning those. If you find out React or Vue or JS, or Python or any XYZ skill is something a lot of companies are looking for, search coursera (and internet) for a certification cource for that, preferably free. Try to spend as less as you can before you know for sure this certification is necessary fro your career.

I whole heartedly thank you for taking this leap to be a Software Engineer. We need many more talented, driven people to be engineers and build cool stuff. All the best for your journey.

If you need, I wrote a guide for interviewing in FAANG companies years ago that might be a little bit relevant. You can read it here: Preparing for the Facebook interview — A brutally honest guide.

--

--

Debmalya Sinha

Engineer at Facebook. RnD with AR, Rendering, LightFields, ML