Taro Logo
Profile picture

Side Projects Q&A and Videos

About Side Projects

The beautiful thing about software is that it can be built anywhere. Build personal software projects to make yourself more lucrative to employers or even improve at your current job.

Learning new Tools for Interviews?

Data Engineer at Financial Company profile pic
Data Engineer at Financial Company

I'm a Data Engineer. Within the data engineering realm, there are a lot of tools, just like in the software engineering realm. The modern data stack is pretty popular these days. It includes things like Spark for ETL at scale, Docker for virtualized environments, Airflow for orchestration, dbt (data build tool) for transformations in SQL, Fivetran for automated data connectors, Snowflake for data warehousing, and more.

I'm far from knowing all of these tools well, primarily because I use very few of them in my day job. The main reason I want to change jobs is because of this.

I'm worried I'm caught in a catch-22 situation where I don't know the tools so I can't get jobs that have them, which I guess is similar to the new-grad cold start problem.

My question is, how should I think about learning new tools for job interviews? My current instinct is to learn via failure. That is, I have almost all of the above tools on my resume. If someone asks me about them and I'm not able to give a good answer, I will learn that part about the tool so if I'm in the same situation I can answer properly.

Another approach I can think of is to do Udemy courses of them so I have a deeper understanding of how they work. I've learned to be wary of course not tied to projects, though, so I'm hesitant.

I guess I could do projects to learn more about them, but those take time and right now I'm focused on applying to jobs.

I imagine some answers might focus on what my current problem is: can I get interviews or am I failing interviews? I don't think my issue is with failing interviews right now, and certainly not because of specific knowledge people have called me out for for not knowing these tools. I think my issue is more with sourcing interviews currently.

If there's general advice regarding how to think about prepping for an interview when you only have some of the requirements on the Job Description, would love to hear that too.

Thanks!

Show more
77 Views
3 Comments

Discussing Projects in Interviews

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I’m a Data Engineer at a slow-moving finance company who’s looking for my next job in Big Tech. I just had a recruiter from Stripe reach out about scheduling an interview, which happened because I had a buddy who works at stripe refer me to the role. The position is for backend engineer.

The recruiter says the call will be 20 minutes and I should come prepared with “the most technically complex project” I’ve worked on, and talk about my role, duration, number of engineers, and stakeholders.

I’m nervous about this because my current role is something of a hybrid between data engineer and data analyst and I do a fair bit of data-analyst type work. It’s not that I don’t have projects I can talk about, it’s just that I’m insecure about them and I feel like they are unimpressive to a ‘real’ software engineer and this becomes apparent under sustained scrutiny. So maybe I can get by the 20 minute intro call, but there will surely be an hour-long session later where they want to go into excruciating detail. I do have some experience with backend as well, but it’s already almost 3 years ago now.

My question is this: how can I go about improving my situation? I’m applying for entry-level roles (IC1) and was under the naïve assumption that I just had to get very good at DSA/Leetcode. Obviously, this is not the case.

In order to better handle these project walkthroughs going forward, I see a number of potential approaches, which are not necessarily mutually exclusive:

  1. Get better at discussing projects in my current toolkit. Ditch the imposter syndrome and spend more time thinking about what I already have.
  2. Invest more in my current job to create better projects with ‘scope’ that are more impressive in interview rounds. Right now, I’m not very committed to my work and coast, doing whatever is assigned to me but in a minimalist way. My current manager has told me how he wants me to be more active in getting things done and taking on a larger role, but as a Tier-3 company, there is no expectation or requirement for me to do so (i.e. very low chance of me being let go), and furthermore, I tell myself I will be leaving soon, so why take on more responsibility? This might ironically contribute to it being harder for me to move since I don’t do the kinds of things that make it easier to interview.
  3. Do side-projects outside of work that I can discuss. But here I run into the issue that I’m not working with anyone (unless it’s open source) and this is probably not the best approach unless my side-project is really good with users. I’ve heard Alex and Rahul say this a number of times.

Happy to hear anyone’s thoughts about how I can improve my situation. I probably have the wrong attitude towards my current role, as I’ve been wanting to leave it for over a year. I’ve thought about quitting a lot so I can have more time for interviewing, side-projects, networking, learning, and prep, but everyone says that’s a bad idea (especially in the current climate), so it’s easier to just muddle on in my current role.

Thoughts are welcome!

Show more
173 Views
1 Comment

Side project feedback - Uber/Lyft simulation

Senior Software Engineer at Series B fintech startup profile pic
Senior Software Engineer at Series B fintech startup

I'd like to ask for your feedback on my side project - a full-stack simulation of a ride-hailing app such as Uber or Lyft.

App: 
Blog: 

A bit of background first. I've been wanting to publish a personal full-stack project for a while. These were my main reasons:

  • I wanted a platform to explore concepts and tools I don't get to work with in my day job, helping me accelerate my learning.
  • I've wanted to break into big tech and thought this project could help me stand out among many applicants.
  • I enjoy writing and wanted to get better at it.

Why did I choose a simulation of the Uber/Lyft app? I always found something very attractive about these apps - they're visually appealing and dynamic, with colossal architectures behind them. I thought it would be very cool to re-implement some aspects of such an app. I have also been reading the Uber engineering blog and got a glimpse of the complexity these companies are dealing with.

My final goal with this app was to have an animated map with cars picking up customers, driving them across the map and dropping them off at their destinations. Customers would post ride requests and the system would match them with the nearest drivers. The simulation would run on the backend, and the frontend map would show the action in real-time.

I started working on the project last autumn. I've spent around 300 hours working on it and you can see the result in the links above.

My ask

I'd love to get your feedback to improve or extend this app and my blog, keeping in mind my objectives:

  • I plan to apply to big tech companies this summer, and I'd like this project to help me with my applications.
  • The project targets both recruiters and hiring managers. With recruiters, the goal is to pass the initial screening and get me to the interview stage (of course, I'll also be trying to secure referrals, but I might not always succeed). With hiring managers, this project might help me score extra points in my final evaluation.
  • I might be applying to companies such as Uber or Bolt, but this project is not supposed to impress just the ride-hailing companies.
  • I prefer not to put much more time into the project at the moment, as my focus right now has to be on the coding interview prep.

Possible additions or improvements include:

  • Splitting the system across multiple machines (perhaps 3), making it truly distributed.
  • Adding various components used in large-scale systems such as load-balancer, rate limiter, or message queues. Indeed, these components are not actually needed for the app to function. But by doing so, I could demonstrate my ability to work with them (albeit not necessarily demonstrating deep expertise).
  • Adding comprehensive documentation with system diagrams and explaining the choices I made.
  • More rigorous testing by adding integration tests (right now, I only have unit tests).

As for my previous background - I've been an engineer for ~4.5 years, most of my experience is from a small startup (series B). I consider myself a full-stack engineer but going forward, I aim to specialize more in the backend. Therefore, the project should strongly communicate my backend skills. For my next role, I also prefer backend positions to full-stack ones.

Recently I watched the great masterclass from Rahul and Alex on side projects. It made me realize that while my project might be interesting from a technical perspective, it has no users. In fact, this app doesn't allow any user interaction by nature. However, what I'm lacking in terms of users, I'm hoping to make up with the degree of technical complexity. Please also share your views on this aspect.

Many thanks if you've read this long post to the end. I'll be very grateful for any tips on how to make this project more appealing 🙏🏼

Show more
395 Views
4 Comments

What is a hiring manager's opinion on a candidate who takes some time after being laid off to work on side projects/freelance?

Entry-Level Software Engineer [SDE 1] at Amazon profile pic
Entry-Level Software Engineer [SDE 1] at Amazon

I am an SDE1 that was recently laid off from AWS (~2 YOE total). Lately, I have been reflecting on what I wanted to do/what really excites me. I really enjoy software development and while I do want to get another job one day, I wanted to use this opportunity to scratch my entrepreneurial itch and create apps/websites/side-projects for fun or for many small business owners I know that need someone to create software for their business. I'm not sure how long this "break" will be but I would say ~2 to 3 months time. Part of this is inspired by Alex Chiou's love for side projects.

I understand that finding a job will take some time as well, so the total gap on my resume that will be filled by this freelance work/applying might be ~6 months total. I understand that there are other posts on Taro that talk about the impact of a career break but this won't necessarily be a break per se. On my resume I will put this down as freelance work I completed for clients and will be prepared to show potential employers a portfolio of what I did.

I was wondering if this would negatively reflect on my application when applying for SDE jobs again/will make it harder for me to land a job. Alternatively, I could begin applying and interview prep now and only work on these projects on the side. Thanks.

Show more
474 Views
2 Comments

Help deciding on a "main" programming language to build awesome projects and for my general career (AWS & Terraform is my main work)

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Hello. I did kind of ask about this before, but now it's more prevalent dilemma for me as I'm actively interviewing and many of my best opportunities are asking for someone who ALSO has a software engineering background:

Scenario: This past year at working an AWS Cloud Consulting Partner I only grew my cloud and Terraform skills and it was my first professional role. I didn't have any software engineering mentoring and I had very little programming work outside Terraform, but I got to mess with a few different languages in my spare time and still haven't decided on one to main. So I figure it needs to be a language & framework good for an ambitious one-man project (possibly a PWA) that I can be passionate about which would drive my learning, provide a great and productive developer experience so I can build some epic stuff myself and learn from it.

Basically, I need a versatile, productive, "startupy" programming language that can be my "main" and kill two birds with one stone here as I have entrepreneurial ambitions:

What do I like doing? What am I passionate about? Well, game dev with Godot. But it uses GDscript and job prospects with it are nill. So I'm considering making a game website PWA like the old as a one man show. So definitely a scalable full-stack CRUD project. I want my development experience to be as productive as possible, and for that reason I'm now considering mainly the firs two options here:

1. Ruby on Rails (despite it being the butt of many jokes and claims that its dead) . It being "batteries included" and everything else I hear about it is that its super productive and fun. I have not tried it yet though. It might be an ace because I see a number of "remote work from anywhere" opportunities for ruby devs to work on legacy code, i.e Gitlab, but I'm really wary of it being a bad choice to specialize in for my career.

2. Blazor with NetCore C# - Blazor is new tech with inherent risk, but it would allow me to focus on one language and framework while doing the full stack (I think similar to Ruby with the "batteries included" approach.). There's a risk of Blazor being new, but the Net Core skills I obtain will always be relevant. On the contrary, with javascript I felt like what I knew was never enough, there was always another framework or some abstraction on top of React, or new way to do JS I had to learn, which I found extremely frustrating. I'm really not a Javascript fan because of that, but if I had to, I'd probably try Svelte. But the point is, I'm trying to avoid bouncing around the way I have been. I really need to be an expert with one language and framework, and I'd like to be able to "do it all" with that language and framework for it to have an opinionated way with best practices so I can get up and running quickly and learn the skills I building an awesome project.

3. Golang - I started looking at Golang because of it being said that it has an opinionated way of doing things rather than a 20x ways to do one thing which was very appealing to me. Also it's cloud reputation, compiling down to a binary. BUT - it seems its for microservices rather than an impressive full stack startup project. I'm not sure how motivated I'd be making an API instead of a complete project like the PWA game site I mentioned. I really don't want to have to switch to JS for a React front end to get up and running. For this reason, I'm also not sure if Python is a good choice compared with the first two options. I know it has a templating feature, but can I do it all with that?

Can I get some opinions and advice? I'm looking for a new job and need to build up my core software skills fast as possible:

Speed, productivity, specializing in a worthwhile language and learning core software engineering through making an awesome PWA project are my main targets for this.

Show more
139 Views
1 Comment

Advice for someone looking to switch jobs to a Senior Engineer at tier II or tier I tech company?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Continuing from the post here:

Would the suggestions in that post be different for my scenario? I have added my details below.

I have a total 12 years of work experience. Currently, I am a SDE II at a fintech company. I have worked at this company for 3 years now and had 3 managers in past 3 years. At my current company, I am being asked to constantly move from one project to another every 6 months. For the last 6 - 7 years I have been working on mostly frontend engineering, including hands-on experience in Angular, React, and Backbone JavaScript libraries. I am looking to make a job switch as a Senior Frontend engineer.

I know that to get to the Senior level, I have to show influence at high levels. After reading the answer to some of the questions in the community, I am not able to decide whether I should focus on building web projects or should I start building an Android app. The advantage of choosing a web project is that I already have expertise in modern frontend frameworks. My initial years of experience is in legacy backend systems(mainframes) which I think is not of much use now in Silicon valley companies.

As far as my interest level goes, I am very much inclined toward the web. But I know that app development is definitely something that helps to attract users to your product. I am a bit lost on what I should invest my time on. Considering that I have 12+ years of experience, should I do both? Will doing both Android and web both open a lot more opportunities for me?

Should I focus on building something where I can show the impact with the number of users rather than thinking about the platform (android or web) for which I start building my side projects. Should I even care about doing side projects considering I have 10+ years of work experience?

Should I target full-stack roles instead of front-end roles?

Looking for suggestions. Apologies if this question comes out as too broad and not very clear. I am open for discussion if that can help to narrow down the response.

Current TC: 220 - 240K

Show more
796 Views
4 Comments