Side Projects

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
54 Views
1 Like
3 Comments
a month ago

How do I host and promote my side project?

Unemployed at No Company profile pic
Unemployed at No Company

I am working on a cool side project (full stack web app) which can genuinely be used and is quite helpful based on feedback I've gotten from friends who have used a prototype version. I want to actually get it out to a user base, and had a few questions:

1. How and where do I host it to keep the costs down?
I've built the backend REST API in Golang and Gin, and it uses a postgres DB to store the data. The frontend I have not started but, it will be built with React with Vite. I'm not sure what the best cost effective way of hosting it is, especially since I am planning on making this app free to use (or perhaps it is time to find a way to monetise it to cover costs). It was originally on AWS but the monthly fees were too much and I had to take it down.

(also note that I am only an intern / grad level engineer, with most of my experience in frontend, so my infrastructure knowledge is very limited)

2. How do I promote it and let people know about it?
How do I market it for free, and let people know about it and try to use it? I have some knowledge in SEO, but that is about it. Social media, Reddit and things like that come to mind, but I don't have a following on anything.

The goal is to build something genuinely helpful for people while having something cool to show off to potential employers, while not costing much money as I have no income right now.

Thank you!!

Show more
235 Views
9 Likes
Editor's Choice
4 Comments
a month ago

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
135 Views
0 Likes
1 Comment
4 months ago

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
319 Views
1 Like
Editor's Choice
4 Comments
5 months ago

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
420 Views
3 Likes
2 Comments
4 months ago

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
110 Views
1 Like
1 Comment
5 months ago

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
765 Views
16 Likes
Editor's Choice
4 Comments
5 months ago

Side-project - Data Eng, Full-stack, or mobile?

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

I'm a Data Engineer looking to break into FAANG. As such, my time outside of work right now is spent applying to jobs, asking people for referrals, and networking. When I have interviews, my focus shifts to Leetcode.

I really want to build a side-project though both because it's fun and because it will help me perform better at future jobs.

My (common) issue is this: where do I start? Not in terms of the problem I am solving. I have a super-smart friend who's a lawyer and an MBA who's into fantasy sports and he has neither the time nor the ability to create an app. I feel like I could just generate a bunch of different ideas with him and pick the one most interesting to me.

I mean in terms of tech area. Alex and Rahul are both mobile developers and that naturally lends itself to great apps. I know Alex has mentioned that in a vacuum, it's better to focus on front-end for side-projects. I have no experience with front-end or mobile, some back-end dev experience and a fair bit of data.

I could build a data eng project. Start Data Engineering has some great projects on his blog () and there's definitely plenty of examples online (e.g. ).

My question is whether I should build a DE project. I'm not particularly wedded to DE because I feel like I want to do more SWE work and less business analyst work. Above all, I want to get into FAANG for the boost to my learning, career, and comp. DE is prob the easiest way of getting there but again, not wedded to it.

So I see my options as a) doing a DE project (maybe using the projects above to get my feet wet); b) doing a full-stack project (hard to do a back-end only project I think); c) mobile? (Alex and Rahul are tempting me).

Is there any advantage to mobile over a web-dev project?

If I do b or c, I'm concerned about falling into tutorial-hell or at least taking too long to learn before building. I'm tempted by a full-stack course like Zero To Mastery's full stack course, but it's 40 hrs, and I know it's prob not necessary.

Just want to add that I'm a newb for side-projects and I'm aware that I can and will experiment with multiple project types once I get started.

Sorry for the unstructured thoughts here. My brain works on NoSQL, not SQL ;)

Show more
427 Views
2 Likes
3 Comments
7 months ago

How to become a top developer in outsourcing company?

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

Even though starting to work for a big company like Meta, Amazon, Google, etc. I believe is a hard to achieve (I haven't work for) somehow it looks pretty straightforward. Learn for interview, get the job, level up. Yes, I am sure it's hard and not many will do it but still you know what should be done (yes, may don't know how). But let me tell you a different story:

I work in a not that famous country in the EU and non of the top tech companies is there. Actually 90+% of the companies are outsourcing companies. As a SE with 10 years of experience in the outsourcing world I can tell you how it works: you work on a legacy code which is so old and so bad (hundreds of people have tried write code there) you can't see good practice at all, no code reviews (sometimes there is bad it is very rare), no unit tests, performance review is only about client's feedback and so on, you got the point. It's about the money only and nobody cares if you are good or not if the client is happy. In very rare cases I have started something from scratch but all of my colleagues were so bad progmmers like myself that we messed up all. It's a deadlock. After 10 years I realized I am a bad programmer and I've seen so many bad practices that I have no passion to do anything anymore. Now to the questions:

  1. Is it possible to apply best standards in an outsourcing company like those in FAANG and if yes, how?
  2. How can I fill all the gaps I have at the moment? Can I fill all the gaps with side projects only? How can I fill them when nobody will teach me anything new. Nowone will review my code and like @Alex said, they are the main source to learn :) How would I know is the code good or not? Could it be better?

The ultimate goal of my career (and maybe in life) is to fill the gap not only in my skills but to create a company (product based or outsourcing) where everyone who join to have a chance to become a great programmer. But before helping others, I need to help myslelf. This is how I found Taro.

Show more
252 Views
3 Likes
7 Comments
8 months ago

What are the things I should look out for when designing a file storage system?

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

I am working on a side project. I may use GCP or AWS for it.

tldr of the system : Create a web ui to process input files and generate a tabular output giving the link to the dashboard .

I have a bunch of files generated , about 2GB in size in total , Account ID is the high level directory and inside each account there 50 log files each having specific content .

I want to create a UI using Angular framework . Using the UI I will upload the files to GCS /AWS S3 . Then the backend should trigger complex backend scripts, written will be written in Python or Java and then output file is generated. Using the output file a dashboard with few images embedded is generated.

In the end the UI should have a table which should indicate status of processing to COMPLETE and in another column show point to url of the dashboard.

I want to deal with least amount of security work as I want to avoid studying Oauth 2.0 authentication .

Few additional questions , non-system design questions =>

  1. What are the things I should learn in Angular to cover most bases in this project, I am a backend engineer and going over youtube videos . I want to stick with Angular as I have few work projects going to come in coming months so it will help me to learn it .
  2. I am unfamiliar with typescript . How much effort will it need to learn in order to code for this project. I am most familiar with Python only.
Show more
91 Views
0 Likes
2 Comments
10 months ago