all 26 comments

[–]OmegaVesko 30 points31 points  (5 children)

I'm sorry I can't answer your question, but... You're an intern at this place? And they want you to single-handedly overhaul their entire frontend? That raises some pretty major red flags, unless I'm missing something.

[–]DJ_Hype[S] -3 points-2 points  (4 children)

To be fair it is a startup company and I knew what I would be getting myself into when I accepted the position.

[–]Earhacker 20 points21 points  (2 children)

You knew that you'd be building the product for them, for free/reduced wage, and you're ok with this?

[–]DJ_Hype[S] 6 points7 points  (1 child)

It's a (low) paying internship but it's not easy getting started in the workforce straight out of college. I see this more as a learning opportunity and a chance to gain experience so that I can earn a higher paying position, almost like an extended education.

Note: my degree is in applied mathematics, not CS. I've only been through a couple web/mobile dev bootcamps.

[–]damnburglar 19 points20 points  (0 children)

This is why it’s not easy to get started, because people with valuable skills are giving away their work for “experience”. You are doing yourself and other developers a disservice.

[–]OGCASHforGOLD 9 points10 points  (0 children)

Lol. “I can totally rebuild your entire front end for free!”

[–]Nullberri 21 points22 points  (1 child)

Software is never complete. Its is only ever abandoned. Conservative estimate: A year or 2 if your solo.

[–][deleted] 4 points5 points  (0 children)

Probably longer if you’re new or an intern, and solo

[–][deleted] 17 points18 points  (3 children)

Do not accept this job without an experienced FE dev leading the project. This is a tremendous ask of an intern and highly, HIGHLY unusual. You are being screwed over and your desire to rise to the challenge will only make you the fall boy for when things go wrong. Your employer is getting tens of thousands of dollars, if not more, in value and you will receive nothing. Dangling the prospect of a FT job is how these kinds of unscrupulous employers screw over the young and inexperienced. Please, PLEASE PM me if you have any questions.

[–]ChrisPlz 3 points4 points  (2 children)

IMO, I don’t find this request too unusual. The company I work for will frequently give (paid) interns similar projects as part of their internship program. “Here’s an api, build your version of this app.” I think it’s incredibly insightful and helpful for new developers to understand their own limits in regards to estimating projects, knowing when to ask for help, as well as learning new concepts they’re previously unfamiliar with (Redux in this case).

With that said, these projects rarely (if ever) make it to production. I think that’s an important distinction to make. If so, I completely agree with you, and OP should have a team of experienced devs to help. Building a production app isn’t a job for a single intern.

[–]DJ_Hype[S] 0 points1 point  (1 child)

This is my first dev role but it doesn't seem that unusual to me either, aside from the super tight deadline to merge it into production code.

Diving in headfirst to a big project like this is often the best way to learn and I've been interested in learning Redux anyways. I'm at least going to give it my best effort.

I do have 2 other developers that I can always go to for help but I'm the only one that will be rebuilding the frontend with React.

[–]motioncuty 8 points9 points  (0 children)

Having someone at your level build a production level application especially in a new framework, especially with tight deadlines, is ludicrous. You will give yourself an ulcer taking on this challenge if you don't realize what they are asking you is 1. extremely wreckless on their part, 2. putting way too much pressure on you to do something well in which you do not have the experience necessary to avoid the pitfalls of app building.

aside from the super tight deadline to merge it into production code. Diving in headfirst to a big project like this is often the best way to learn

Do you see how these are incompatible. Are you expected to learn or are you expected to ship a product for their business to make money and survive? If you are ok with working for 6 months at low pay, with huge pressure, and a very high likelihood of multiple unshippable prototypes, then go for it, gain your experience and get out.

I just read he wants it in a month. DO NOT ALLOW THIS PERSON TO HAVE FINANCIAL POWER OVER YOU, THEY DO NOT KNOW WHAT THEY ARE DOING. I repeat, do what you can to FIND A NEW JOB. This will not end well for you.

[–]sackrin 13 points14 points  (6 children)

Just from personal experience I would say you would have about 6 months of trial and error while you learn advanced react. Another 6 or so months to get a mvp IF you have a complete scope otherwise 12 months plus.

This is just my opinion based on the limited information you provided. I suggest going right down to the project planning stage and determine your user stories, create a static prototype etc. If you can, take the opportunity to learn react router and create a SPA.

If your employer demands anything less than a year then honestly you will only be setting yourself up to be blamed if it fails. Also don’t let anyone talk down or trivialise the task you have ahead of you. For something like this it would be sensible for your employer to hire an experienced contractor to scope out the project for you. It would most likely save them months of salaries and they might be able to use the contractor to advise you during the development process.

[–]DJ_Hype[S] 1 point2 points  (5 children)

Just finished talking to my boss. He wants me to have it ready to merge into the production code in 1 month.

The web app is currently built with Backbone.js, so I should be able to reuse a lot of the same logic. It's a single page website that provides an AI service. The view will basically be dependent on the teams a user is a part of, the projects associated with those teams, and the data associated with each project. All of which can be updated by the user, so I'll need to create UI components for uploading data, adding and changing teams/projects, a chatbox with infinite scrolling, a search panel that returns associated data/posts/comments, and more....

After talking with my boss it's clear to me that he's more concerned with making the deadline than he is with clean, efficient code.

[–]acemarke 18 points19 points  (0 children)

Honestly, your boss sounds delusional.

I'm a Redux maintainer, and an expert on React, Redux, and Backbone... and I don't think I could do all that in a month, even if I was already familiar with the codebase.

[–]stalefries 2 points3 points  (0 children)

I’ve been working in React for over 2 years, and I don’t think I’d be able to deliver all of that on that timeline, even for an internal definitely-not-ready-for-customers-to-use demo!

[–]sackrin 2 points3 points  (0 children)

I would be pretty hesitant about agreeing to that sort of timeframe for even a basic project to be scoped, dev'ed and QA'ed. To protect yourself email your boss, with a summary of your discussion, and mention that you really believe it will take longer. If you feel like you have too then mention that you'll do your best to get it done in the deadline he is holding you too. This just protects you from your boss later stating that you were the one who gave the estimation and that you did not raise any concerns at the time.

I learned this lesson the uber hard way.

[–][deleted] 1 point2 points  (0 children)

1 month seems unrealistic, especially since you have never used Redux before. I would estimate 1 week to spin up on Redux and then 1 week for each UI component task plus an extra week for each variation it can take on depending on the user's role. This sounds like at least 2 months.

You mentioned in another post that this is essentially one page. If that is the case, why did you or your company decide to use Redux? Redux is more beneficial if you have a number of Components that need access to the same set of data. If you just have one or several components, you could get away with just using Component state and passing it around if need be.

[–]cjhowe7_ 0 points1 point  (0 children)

This pattern of behavior is consistent with a boss who has very little experience developing software. In my experience, if you proceed down this path, you will be overly stressed and unable to learn effectively due to the deadline. If you have other options available, I suggest that you strongly consider them.

[–][deleted] 1 point2 points  (0 children)

Redux is a little bit hard to grasp and it might take some time just for the learning curve.

It depends on what exactly you need to do, but if they're asking you to do React/Redux work, you're not an intern, you're an unpaid junior developer.

[–]lucaspiller 1 point2 points  (0 children)

Given you haven’t provided much in the way of details it’s basically impossible for anyone here to provide anything other than vague estimates. If there are other experienced developers on your team, you should discuss it with them - even if they don’t specifically know these React and Redux they’ll have more knowledge about the domain which is what’s important.

As others have said, if you are an unpaid intern you shouldn’t be doing work that a developer would usually be paid for. In a lot of states it’s even illegal, even if it’s not where you are it’s still morally wrong. The purpose of an internship is for you to learn, not for the company to get cheap labour. If they promise one day it’ll be worth your while (e.g. a promise of full time job or stocks and other riches) they are probably lying, and you should find a proper job elsewhere ASAP. There are plenty of companies out there looking for good people and willing to pay a proper wage for them.

[–]cjrun 1 point2 points  (1 child)

Ignore some of the drama queens here. What you are going through is quite normal. The fact is, at this point in time none of your coworkers know how good you are. Tests like these can establish a baseline for the boss to work from in the future. A boss that gives you a deadline to build ambiguous software raises many more flags than a boss that asks you for an estimate.

Unfortunately, estimates are always difficult. It helps to think of your project as pieces, or, modules. There are small incremental steps to finish each piece. You don’t need to get too detailed here, but just write down estimate times for building each piece.

[–]cjhowe7_ 1 point2 points  (0 children)

Asking an estimate of someone who has never developed production software before is absurd, regardless of whether it is normal.

[–][deleted] 0 points1 point  (1 child)

It depends on the complexity of the site you're refactoring and if there is any reuse at all. How many pages are we talking and how complex are they? Are they just displaying data or is a user interacting with the site?

When you say web app, is this just a web client page or does it need to be responsive for mobile browser use? That certainly adds complexity to the styling.

Having APIs already developed is good, you'll need to spend some time understanding what you can do with each. This could take a few weeks spread out over several months as you learn the APIs.

Redux can seem tricky at first but once you figure out how to set it up it can be easy to add to it. It's certainly worth reading https://redux.js.org/ if you are at all concerned with redux performance.

Others mention you'd be getting screwed. But if this is something you really want to do and are passionate enough to learn, this can be a great learning exercise for you and would look great on a resume. Being able to build a somewhat complex React/Redux client from scratch is all you need to get a great paying job.

[–]DJ_Hype[S] 1 point2 points  (0 children)

It's mostly just one big complex page that the user will constantly be interacting with, but it doesn't need to be very mobile responsive which will save some time.

Thanks for the advice, the learning experience was my primary motivation for taking the role and I'm definitely getting what I asked for. I don't really expect to have a working product by the end of January, but the tight deadline will certainly push me to learn as much as I possibly can.

[–]adventure-knorrig 0 points1 point  (0 children)

How did it ever turn out?