Job Search Sites

Hi! I thought today I could cover one of the most relevant topics to those who have or are going through what I just went through with searching for my first job in CS. Like I mentioned in the earlier posts, job applications in this industry are hugely a number game, so getting out as many suitable applications as possible is a huge part of getting us to where we want in our early careers. Here are three sites that were super helpful to me:

LinkedIn

Before I started my job search, I just thought of LI as a sort of “professional Facebook”. However, it came to be my best tool for job search. One reason is because many recruiters use LinkedIn to reach out to candidates about suitable opportunities. Their job search functionality also is very user-friendly and even allows filtering for jobs that are “Easy Apply” which is definitely a plus when you’re applying for hundreds of jobs as I did!

RippleMatch

I thought this was kind of a cool and unique one that I’ve never stumbled upon previously to my CS job search. The main purpose of this tech, which is a pretty cool startup in it’s own right, is connecting early career people in tech with suitable jobs. There are several well-known companies that recruit solely through this site – Pinterest and eBay come to mind as some examples. They have a standard form that you fill out for every application which includes a summary on what interests you about the company/role – a little extra effort required but actually a great way to motivate that initial research.

Handshake

This is definitely the third place I most commonly went to search for jobs to apply for. The best part about Handshake is since it’s through OSU (or whatever institution the new grad is enrolled in), there’s a lot of integration for job applications with campus events, corresponding with alumni working at the organization, etc. There were definitely some jobs on this platform that I wouldn’t have found elsewhere.

There it is – my recommendations about the best job search sites! For those who are still looking for a 2022 new grad position, best of luck and hope this helps 🙂

Popcorn

Completing my B.S. in computer science at OSU while juggling a full-time job, I, like many other of my classmates, do not find myself with a lot of free time. However, something that I’ve been doing in the lower-productivity moments that I’ve managed to enjoy in the past couple of years is occasionally de-stressing by watching some tech-related media content with my friends or family – in other words, movies/TV shows about programmers! I think it’s been recently on trend for them a little to delve more into the technology given how important it is for our daily lives, and I wanted to give a couple recommendations for titles that have given me the perfect mix of escapism with the inspiration to keep coding 🙂

Most Funny: Silicon Valley

This show covers the lives of a couple SWEs in the titled city who come across some miracle algorithm that sends them down the rollercoaster of excitement, money, and humiliation that come with owning an exciting new start-up. This show is now several years old but so much of the humor is still amazing and relevant for our day-and-age. It’s also just really fun to see the parodies of FAANG in the show and have developers be the stars of the show. Lovable characters and good lessons all around.

Based on Real Life: WeCrashed

This one recently came out on AppleTV and each of the episodes were pretty intriguing for me! Per the name, it covers the famous (infamous?) rise and fall of WeWork and its founder. This was pretty cool for me from a cultural standpoint because I remember WeWork getting really big and then suddenly not really being talked about anymore, but I was a little too young to understand or really look into the reason behind the shift. This follows a lot of the formulaic Hollywood rags-to-riches-to-rags story behind a lot of “true” stories and famous individuals, but it was cool to see the glamour and eventual downfall framed in a tech context (or at least “tech” context – unicorn, investor, series jargon, though in the end, he was largely selling real estate or “space as a service”).

It’s a blessing to be able to catch our breaths and just relax and watch some TV with our families and I hope we all find the time soon to do that, whether you can check these titles out, or whatever else you enjoy~

Resume Screen

I’m taking a quick detour from the more technical nature of the last post to visit a topic that’s undoubtedly in the mind of many individuals during this job hunting system – how a person is supposed to submit a paper form of themselves to organizations to seek employment, i.e. the resume.

For reference, here is what my resume looked like in 2020 — before I started my OSU CS journey. Some fields have been blocked out for privacy.

For my actual job search process in the past year, the resume that has gotten me through a good number (although definitely not all!) screens looks more like this:

Looks a bit like a downgrade huh? However, this was an intentional decision based on what is needed a SWE resume vs. when I wanted to display more of a design and aesthetic focus on my previous resume.

Here are a few other tips to keep in mind for creating an organized and powerful resume:

  • Try to list quantifiable achievements under each job title
  • Power verbs speaking to technical accomplishments
  • Skills section that speaks to level of aptitude in different subjects

Hope these tips are helpful for others as they work on their resumes! All the best, Jane 🙂

Intro to ML – Part 1 – Data Exploration

I was really drawn to the senior capstone project I chose on fire risk prediction largely due to my interest in ML. I’m excited to be joining a team after I finish my degree which works heavily in leveraging big data and ML algorithms for customer insights and it’s been really interesting getting to learn through my project a little more about what ML, well, actually is.

I thought it’d be fun in the next few entries if I walk through basic ML modeling in Python with Jupyter notebook. I’ve had a little exposure to this before but I’m basically re-learning as I go, and it’s been a fun and educational process.

The dataset that I am working with is from Kaggle. This is a great resource for learning ML and finding ML datasets. In my capstone project, we are working on proprietary data so as a substitute for this exercise, I am using the Kaggle dataset on US Wages. These are the dependent variables in my dataset, the first few rows, and the commands to display them in Jupyter.

We can begin to do same basic data visualization by running scatterplots. For example, there is a clear relationship between educational level and earnings based on what we see here.

You can see that the variables are the type that we may be able to use to estimate wages – height, gender, educational level, age, etc. Before we are able to run this as a model, notice that some of our variables need to be transformed — you can’t plug “white” or “female” into an equation! We do this by breaking down the variables into dummy variables using the following command.

Thanks for joining me as I explored and learned about basic data loading and visualization in Jupyter Notebook. Please continue to follow me in the upcoming weeks as I start implementing some basic ML tools!

My Favorite Things

In this post, I will be talking about my favorite technologies and where they may be more usefully applicable. In my time during OSU, I’ve been fortunate to be exposed to a variety of programming languages and frameworks. Although I am by no means an expert on any of these, I’ve learned where different ones have been the most helpful for me, personally and would love to share that.

Getting Started

Starting out in programming is a challenge in and of itself, so it’s definitely great if the technology being used doesn’t get in the way.

For those who are just starting out creating a web application, I would recommend the following:

Front-end: ReactJS

Backend : nodeJS

Prior to starting my program at OSU, I picked up these languages in order to help me create a basic web application. One of the most helpful things about them is the large amount of documentation available online introducing these to beginners and showing beginners how to link them up in a working web application. One good example is: https://www.freecodecamp.org/news/how-to-create-a-react-app-with-a-node-backend-the-complete-guide/

One of the best things about JavaScript-based frameworks is that they are very intuitive and the language is handling a lot of the different components that are more challenging to do manually (i.e. memory allocation, trash collection).

Data Structures and Algorithms

I have a strong preference when I have interviewed for DS&A problems to work in Python. Python is the introductory language that we learned in my introduction and intermediate CS classes here at OSU, as well as the one that I preferred to use during the intro to data structures and advanced algorithm classes.

The best thing about Python for me has been it’s easy to code in it — fast! The syntax is quite simple and almost similar to pseudocode. It is easy also very easy to learn. Similar to JS, a lot of the more complicated handling is done behind the scenes. However, it can also be used for object-oriented development so it is quite versatile.

Python is also very good because of it’s usefulness in data science. In my current project which I will cover in future posts, we are building a machine learning model and working with a data pipeline. We are doing this using Python.

I have to admit, Python is probably my favorite language 🙂 When I was interviewing for jobs, I was very attracted to teams that did a lot of build in Python even though I think it may not be the fastest for scalability.

Low-Level

One of the most challenging but interesting classes that I took at OSU was Assembly Language. I had no idea that when I was writing a simple if statement or declaring a variable, so much was going on behind the scenes in terms of stacks and re-direction — and I found out while implementing simple programs in MASM! This class made me realize that it’s actually pretty interesting to know what’s going on under the hood. This is what brought my interest in C. In my OS class, C was the main language that I had used. It shared some similarities to C++ which I used in prior classes but was even more low-level than what I was used to – I couldn’t declare a string!

The great thing about C is the many libraries with built-in functions and how efficiently the code can run for a multiple of applications. It also did offer dynamic memory allocation. Working close to the hardware for doing multi-threading and infra was a very useful skill to pick up for me even though it was challenging.

Out of all the languages I learned, I think C’s closeness to the hardware and great portability potentially make it the most useful that I’ve learned. I hope I can take what was taught in the OSU classes to my future career writing programs in lower-level languages.

Thanks for exploring some of my favorite technologies with me! See you next week 🙂

The End of the Tunnel

In this post, I will be concluding my career search and how it turned out, including the factors that went into my decision for choosing my future career.

The Waiting Game

For me, one of the biggest challenges of the whole job application process was waiting. I tend to be overly pessimistic regarding my interview performance and I become very anxious waiting for the company response, sometimes wishing they would just put me out of my misery and reject me! It was a tough time. Some things that very helpful was remembering to be mindful and still find enjoyment with other aspects of my life – spending time with family and friends and doing active activities to expend the nervous energy like tennis and bouldering.

Something that I made sure to do was to keep recruiters informed very early of other deadlines and interviews that I was doing so that they would be able to expedite decisions if needed and understand if I needed to reach out later. In general, the recruiters I worked with were all very respectful about trying to get me a timely decision.

The Results!

For the sake of confidentiality, instead of writing down the exact organizations I received offers from, I will just give the general category that they fall under. Overall, I received offers from 2 FAANG/tech giants, 1 unicorn start-up pre-IPO, 1 unicorn startup post-IPO, 1 Big 4 consulting firm, 1 large healthcare organization/non-profit, and 1 established fintech giant. Every time I got an offer, I was so grateful and ecstatic! When I started the program 2 years ago, I had no idea that my world would be opened up to so many opportunities. Throughout the program, I was very guarded regarding my optimism of what my job search was like and I felt I’d be extremely lucky to get even one software developer role — and understood it might take several months of searching even post-graduation in order to find a role. I never would have dreamed of being able to choose between multiple options that I was really excited about. I also believe the job market at this time for software developers is currently very hot, and feel blessed that I’m able to kick off my SWE career in these market conditions.

It took a lot for me preparing and undergoing the interviews and waiting to hear back — but I was about to find out the hardest part is deciding what offer to take! Being naturally very indecisive and my passion for all the roles I was lucky to receive left me (and my poor husband!) in a very difficult deliberation process.

Decision Factors

These are the main factors that I used to help me decide where I wanted to start off my career. I hope this can help others in the same place make a decision they can feel comfortable with. Ultimately, I do worry about FOMO and regret with committing to anything but I know that all we can do is our best and to look forward and not back.

  1. Growth opportunities – I think ultimately the main thing I was looking to get out of my first job is a place where I can explore, take ownership, and contribute largely to products in the organization. There is a balance between scope of impact in larger organizations where I may be working on a product that millions use but only doing bug fixes. On the opposing side, in smaller companies, opportunities for growth and ownership of new features is a lot more prevalent, while the scale may be smaller.
  2. Interesting work – I wanted to work on products that I find cool. This is part of what drove me to want to be a software developer – the possibility of contributing to my favorite apps!
  3. Culture – Company culture is a big deal for me as I feel like pressure can be a large detractor even from interesting work if there is a toxic or pressure-cooker setting. Some organizations offer amazing benefits in aspects such as remote work, 401k matching and PTO and these really spoke to me about how employee-focused they were.

Other factors that I weighed less heavily included:

  • Total compensation – most jobs had a standard new grad package that were all fairly competitive (particularly compared to my current salary!) Given the investment that my family made into this program, I just wanted to make sure there were sufficient returns to payoff for them.
  • Location – like I mentioned in my initial post, it has been important for me to stay close to my family and the flexibility to work remotely or be placed in a physical office in my current location weighed into my decision.
  • Prestige – I definitely didn’t want this to be a deciding factor for me, but I did love being able to tell my parents about my offers in organizations they knew and respected 🙂

The Decision

After much struggle and backtracking, I decided to go with the large fintech post-IPO unicorn over my other options. Ultimately, I loved the team that I was placed in and I also felt compared to the tech giants, it would allow me a better place to grow and take ownership of the work I’d be doing. I really connected with my interviewers and the problems that they were solving and the benefits and TC were better than I had ever expected. They were established enough that they did have name recognition with family and friends and job security regarding the future of the organization.

I admit it was a struggle to turn down other organizations that were better known among the non-tech population or seemed like they would offer better work-life balance. However, I couldn’t imagine a better place for me to be starting off my career.

Thank you for following me through this journey of my job application process! It’s been wonderful to share the experiences that I went through. In the next posts, I plan to dive deeper into the course that initiated this blog — my senior capstone project and what I’m learning along the way!

Starting my future career!

Hi! In today’s post, I am going to talk a little about my job search. When I started the program, my hope was that I could transition into the industry of Software Engineering so this has pretty much been the culmination of these past years at OSU.

Humble beginnings

My job search started during my first year of the program. I had learned from other devs that it is good to get an internship — at this point, I was very inexperienced with the whole interview process! I applied to only a couple places in my area (Seattle) that were looking for interns. The only interview I got was Flexport, and I was so grateful for the opportunity and also really interested in the work they do! I made it through the tech screen and OA with basically no background in leetcode (more on this later) — but didn’t get through the final onsite because they were looking for someone with a little more experience. They were very encouraging to me and overall I was glad to have a chance to go through the interview process.

The start of the new grad job search

It gave me a good intro as I was about to begin my second year, and as others know, the interview process for June 2022 jobs starts almost in June 2021! This time I was armed with information from my first experience, and I applied to every interesting-sounding new grad job in my desired areas that I could find. Probably did over 200 job applications.

The Process

Most of the jobs that I applied to followed a standardized process that was some form of the following. In my past roles, it was just one or two behavioral interviews before getting the offer. Software development roles were the first that I’ve experienced with so many loops to jump through!

  1. Resume screen. Applying through new grad portals I think means the application goes into a big pool that recruiters sort through to determine who they want to move forward with. Some of the companies that I was super passionate about, like Microsoft and Boeing, didn’t seem to move me past this stage and I was really sad I didn’t have a chance to prove myself. BUT — near the end of my application process, when I had given up all hopes and months after I applied, both reached out to me for interviews. So there is always hope!
  2. OA (Online Assessment). Some companies go straight to this step, which I actually think is a great choice for giving all candidates a chance to prove themselves. I recall that eBay, Adobe, and Pinterest were among these companies that sent applicants directly to this step, so these might be good companies to look at for anyone just wanting to get their foot in the door! The best prep for OAs (and tech screens!) for me has been leetcode. The other is reviewing what we learn in the Advanced Algorithms and DS&A class.
  3. Tech screen. Leetcode is the key to this one! I have a little bit of public speaking anxiety so I didn’t want my nerves to get in the way of demonstrating my problem-solving. Having practice solving similar problems was so helpful. Other than that, I tried to just concentrate on having fun pair-programming with the devs from the org and learning more about what they do! They were potential future coworkers 🙂
  4. On-site. I had to prepare to be tired from these! These would range from 3-5 hours of interviews with various members of the team – typically company engineers and at least one engineering manager. Two or three would be coding interviews which followed similar processes to the tech screen and at least one would have a behavioral component. I made sure before going into these to write out some scenarios I thought they’d ask about (projects, challenging situations, long-term goals) so that I’d be prepared.

Every time I proceeded through one of the steps for these interviews, I was exhilarated and exhausted! A huge source of support and encouragement for me was my husband, who is a SWE himself with several years of experience. He was awesome to talk to about my options, how best to prepare, calm me down when I was panicking about nothing, and most of all, do many, many hours of leetcode with me!

The light at the end of the tunnel

This post is getting quite long so I will continue through my journey in future posts. Overall, I was overwhelmingly grateful for the opportunities that I received throughout my job process. People have described it to me as a numbers game and that really sums up my experience. Out of the ~200 applications I sent out, I received OAs on roughly 30 of them, tech screens on about 15 and on-sites for around 10. Out of these, I received 7 offers which I was really thankful for!

Please continue following to see what these offers were, the excruciating process of deciding, and where I will be beginning my career!

hello world

This blog starts at the beginning of the end of a long chapter… my BS in CS at OSU. In these posts, I’ll be discussing the work on my capstone project, general coding practice, and everything else that comes to my mind during this time! Welcome 🙂

ABOUT ME

I started coding in high school but competing priorities in college led me to majoring in math working on data analysis and implementing healthcare technologies. Through this time, I’ve really enjoyed the time that I spent working on programmers to prioritize fixes and investigate bugs which is how I realized that I wanted to return to my original passion of programming! I was lucky to discover this awesome program at OSU to help me develop some quality coding fundamentals. 

FUTURE CAREER

I’m so blessed to have made it through the difficult time of job searching and grinding tons of leetcode, emerging from the process with multiple offers from FAANG and unicorn companies. As I continue figuring out the best place I want to launch my career, I’m so grateful for all the help and support that I’ve received from friends and family along the way!

CAPSTONE PROJECT

As you may have realized, one of the primary purposes of this blog is to capture the journey along the way of developing my capstone project, a large-scale application that I will collaborate with my OSU classmates on. The first part of this was determining which out of the exciting projects I wanted to contributed to. Currently, the ones which capture my attention the most are the ones that I feel like have powerful real-world implications – whether that’s contributing to ML prediction of fire hazards or an AR game that helps students develop their math skills. I’m so excited to see what project I get matched to and get started working with my teammates!

FAVORITES

Working full-time and completing this program in two years hasn’t left me too much time to spare, but when I have it, I play tennis, go rock-climbing and indulge my addiction to League of Legends. I’m very lucky to live in Seattle as it’s where my family is located! My mom and dad have been pivotal in encouraging me and helping me make wise decisions throughout the program and I love being in the near vicinity of my lovely older sister, her husband, and my two adorable nephews (1 and 3).

Continue along my journey with me as I share my passion for writing pretty code and everything I continue to learn in the upcoming months! <3