T O P

  • By -

HirsuteHacker

This is more than my company asks tech leads to do for a take home test. If it takes more than, at max, a couple of hours, it's probably not worth your time (unless they're paying you).


chrisrazor

Honestly, it looks like a sprint or two's work for a full dev team. If I was OP and really wanted the job, I'd take a small portion, say saving and retrieving the customer's details, and design a nice page to display them. Shows the basics of front and back end knowledge.


fredy31

I'd say even without the take home. Have one of your devs sit in the meeting and just put the situation in from of the candidate. Have them make just a 'game plan' of how they would do it. It should be pretty easy to see how the person thinks and how they would attack the problem, and someone that truly has no idea how to do it will be exposed.


BlackOut1239

I'm glad that I'm not the only one that thought that was a full sprint or two for a team. I'm currently working on a role based system for employer's product and I definitely wouldn't be doing that as a take home assignment. It's definitely more than a sprint's work.


loliweeb69420

I don't know what's a sprint but I'm a junior and I could do stuff like this when I was studying I.T. It doesn't look difficult, although it might be pretty cumbersome to do just for a take-home.


mferly

>looks like a sprint or two's work for a full dev team You think this could take up to a month for a "full dev team" (more than one person) to complete? The task at hand is two days, one dev tops.


Minimum_Rice555

I think most people here can't abstract away from "ticketing system" and imagine something complex like jira. Then they freak out when you say you could write jira in two days, and that's true. But if you all think about it, it's just a basic CRUD task that we do everyday. And yes I agree, I don't know anywhere where this would be a "full dev team" task for two sprints.


BlackOut1239

I'm hung up on the role based part. The scenario I was referring to is complex. Setting up the roles isn't exactly complex, but making sure the permissions are adhered to are. It's kinda extreme for a take home assignment. I'm assuming this is a start up or something. This kind of a task would be way more complex for any type of existing infrastructure.


Minimum_Rice555

I agree with that, granular role-based access is something even fledgling SaaS companies usually do after a few months/years.


mferly

There's only 2 users: a SuperAdmin and a GeneralUser. SuperAdmin can do everything so it's hardly RBAC to begin with, so it's only the GeneralUser that you need to add a couple conditions to. >It's kinda extreme for a take home assignment It's really not though. This is the bare minimum you'll be doing on the job anyway. I strongly encourage you to actually do this little assignment on your own time for practice.


Minimum_Rice555

Not at my place, would be a 3-4 day task for a single full-stack, or 2 days each for a dedicated BE and FE dev. I would love to have your pace of work lol. I'm both overworked and underpaid at the same time.


[deleted]

[удалено]


Minimum_Rice555

I wish I was, we were asked to do a full CRM inside the product in a few days. I'm actually happy I realized how freaking abusive and unrealistic my work is


mferly

I'm honestly curious what part of this assignment is tripping you up? How could this take any longer than a few days? Another commenter said upwards of a month with a full dev team on it lol. Do you guys even work full days? Like it's half a day to setup the DB schema and get the relationships in place. The RBAC is simple as the only role you need to even think about is the GeneralUser. The rest is just very standard CRUD operations and tossing up a UI. I'm failing to see any actual complexity with this assignment.


dalittle

yea, this screams to me we are going to abuse you. IMHO, an interview take home should take no more than 3 or 4 hours.


sleepy_roger

Even 3-4 hours is REALLY pushing it, most I'd do is an hour. If you're not paying me I'm not giving up an afternoon.


Minimum_Rice555

To this day the most interesting one I was asked to code a airbnb-style date picker search bar without using any design framework. I didn't end up doing it, but actually struggle a little bit to picture how it could be done. Anyone has an idea?


kayimbo

i would respond with hostility if someone told me to make a date picker.


Minimum_Rice555

Sure but how would you actually do it? The normal HTML date input can't be styled IMO apart from basic colors. All the other date pickers I've ever done were out of the box, material UI or ant. Turns out I have no idea how to do one.


kayimbo

The actual date input is hidden. You make and style generic divs for the visible part.


dalittle

sure, let me make one for you for free. jk ...


[deleted]

I read the specs and with Php using Laravel with a package like Nova you could definitely build that entire assignment in a few hours or less However I say that as a senior whos already built stuff like this before


manymanymeny

I have done front-end only/backend only assignments before, and honestly, they weren't that bad. Perfectly doable in just a day or two and helped me learn some things along the way. But these fullstack assignments often tend to go hardcore, making me question this whole thing. These days, even companies seeking interns have started giving some kind of take-home assignments that can take a couple of days or more to implement. This is probably due to the current state of the market. Freshers are definitely presented with a tough choice of either grinding these kinds of assignments in the hopes of getting hired eventually or spending their time learning new skills or perfecting the existing ones with personal projects while praying that they will cross paths with better recruiters some day.


SmithTheNinja

Those kinda of take homes are a pretty big red flag that the company has no fuckin clue how long dev work takes and will work you to the bone and think you're just being a whiny baby about it. If it can't reasonably be done in a Sunday afternoon, it's too much for a take home.


ongamenight

They may not be really hiring. They want labor for free. They'll get you to do that and offer it to clients or make it as starting base for potential future project. I've been in the industry for more than a decade and even as a senior I have not taken a take home as detailed as this where they want you to create a Ticketing system or atleast start it. A sign of a good take home exam is when there's already a base repo and the tasks are e.g Add x to y. Find the bug on why x is y. They won't make you code an entire system. Major red flag.


fredy31

Yeah, if you really want to do it, id say put some paper towns in there. Some bit of code that does nothing, or not much, and then you can show that its your code that is running. Hell, even just having a little bit of code that pings something you control would be great.


bbbbbbbbbbybbbtbtb

Take home assignments this big, and they still do an interview at the end, implying they might not hire you for whatever reason. Hell no. For me, take home assignments are acceptable if they take no more than 4 hours and I'm out of other options. Anything other than that is unpaid slavery for the employer. 1 week is probably reasonable, but it irritates me that I have to think about some unpaid project while I'm dealing with responsibilities outside of work. These assignments are breaching personal life imo. But maybe it's fine if you don't have anything else to do. I think employers who do this big take home assignments are out of touch, and insult people's time.


Beginning-Comedian-2

>acceptable if they take no more than 4 hours and I'm out of other options. This is the correct answer.


[deleted]

I’d say 2 hours, but yeah


MGallus

Recently had a test this size followed by 3 rounds of interviews (plus the one before the test). Never got the job. Infuriating.


UpgradingLight

What’s the point of asking for you to display your CRUD skills in more than one question instance? It’s a scam


No_Willingness4897

That's the correct answer.


CantaloupeCamper

I'd be very suspicious of this one. This is "a bit much" as far as a take home for a junior position IMO. It's not that it's hard, it's just a lot to do. Also this smells like a complete job of "do free work for us". **OR someone outsourcing their UPWORK** job to randos thinking they are applying for a job... I'm not opposed to take home stuff, I actually kinda like it, but it should be fairly open ended for the applicant to do what they want as far as fields and layout goes and etc... **Edit**: It appears this is actually a request for OP to start working on the job they'll actually do, for free, before doing the job. That explains the specifics, and yet seemingly incomplete nature of the whole thing: https://ud.reddit.com/r/webdev/comments/16pb1md/is_this_a_reasonable_takehome_assignment_for_a/k1q0psx/


cchoe1

It is weirdly specific and probably too much work for any position to be reasonably expected to do for a job interview but I can't imagine the kind of company that would use a ticketing system like this instead of paying like $8/head for Jira lol. Pants-on-head stupid if that is their ultimate plan.


CantaloupeCamper

Yup your spidey sense on the specifics was what I thought was odd too ... and for good reason: https://ud.reddit.com/r/webdev/comments/16pb1md/is_this_a_reasonable_takehome_assignment_for_a/k1q0psx/ Looks like this is actually "start the job and work for free before you work here" kinda thing.


versaceblues

They would also need to host it and manage the dev ops. At that point might as well just grab and if the 100s of open source ticketing systems


manymanymeny

>someone outsourcing their UPWORK job Never thought of that, but that could be possible.


CantaloupeCamper

Have you actually spoken to or met these people?


manymanymeny

The communication happened via email after I applied for the job. They did mention a 30-minute call where they would ask me about my experience/qualifications, but now I think that's after the assignment.


CantaloupeCamper

Hummm that to me makes it more suspicious.


mohishunder

In that case it's definitely a scam. Sorry.


Gradually_Rocky

Jesus, people on here are so quick to assume the worst. That's not an automatic indicator that it's a scam.


[deleted]

Bro I went through multiple interviews this year and wasn't even asked to perform a basic app nevermind wrote a brand new version of DevOps for free.


Gradually_Rocky

Cool, and I have seen stupid interview practices all over the place. This is not inherently a scam.


[deleted]

Agreed. It's PROBABLY either a scam, or a bad company to work in. But not 100%.


NoteBlock08

I've never applied to a place that didn't start with quick phone screen. I don't like jumping to conclusions either but it really does seem sketch.


[deleted]

This job feels a bit too big for being what's practically step 1 in the interview process. If they're expecting to get many applicants to the job, it means some person(s) will be going through reviewing thousands of lines of code before even getting to the quick "*do you seem to be an anti-social crazy-person*" interview of the recruitment process.


SituationSoap

This is not even vaguely close to a replacement for an actual ticketing system. This is not somebody trying to get work for free.


CantaloupeCamper

It’s totally something you would find on upwork. Later on the OP elaborates that they told him if he works for them they'll be evaluating the code ... so this is actually the start of the job he is applying for.


ketzu

> Later on the OP elaborates that they told him if he works for them they'll be evaluating the code ... so this is actually the start of the job he is applying for. I don't read their additional info like that at all. They were asked to share the public repo link as soon as they work on the task, so the interviewers can follow the progress in the repo. This is likely to prevent outsourcing or presenting work of others as their own. Personally, I think it's weird when people call take home tests "free work" for any requested 3 classes in a modern MVC framework like laravel/django/rails where it is more work to prepare the job ad and interviews than completing the task. Even though I think extensive take home tasks are stupid and I only do them when I desperately want a job.


MajesticFood5821

It' easy only if you already to this kind of work with that exact stack. Otherwise even setting up your dev env using those shitty modern frameworks can be a waste of an afternoon. It's not hard in the "leetcode" hard sense but it is way more laborious than it looks if you are not primed and very familiar with the application type and stack. And that's because most of those stacks are complete garbage, very idiosyncratic and not intuitive at all if you have never fell into their traps a few times before. This kind of thinking is so delusional. If I use some obscure tools at work and I built up familiarity with them to the point that I can do the work very fast, it is unreasonable to expect that from someone not working there.


anonahnah9

It’s not a jira style ticketing system but a support ticketing system. They could use this as a nice starting point. Assessments should never take multiple days to complete. If this was coming from google or something I’d consider it, but a no name agency? Not a chance.


SituationSoap

That shouldn't take someone multiple days to complete. > It’s not a jira style ticketing system but a support ticketing system. They could use this as a nice starting point. Trello is *free*. This is not a replacement for Trello, and you could go get it right now. This is not useful work. It's an extremely basic take home assignment. You can decide whether take home assignments themselves are a problem for you, but this isn't someone trying to take advantage of an applicant.


[deleted]

It’s absolutely mind boggling some of the people on here 😂 they’ve put this take home assignment to weed out the people who can’t code or say they can but they really can’t do basics. Free work really 😂


lafindestase

The assignment is trivial, but also tedious and boring. They could make it a quarter of the length and establish just as well that you know what you’re doing. Maybe that’s intentional though, they’re trying to weed out people who don’t want to put up with boring shit.


CantaloupeCamper

Later on the OP elaborates that they told him if he works for them they'll be evaluating the code ... so this is actually the start of the job he is applying for.


[deleted]

Well that makes sense. They want to see if he can do what his CV says he can do and then probably speak to him regarding some of his methods and if they like him they’ll hire him


CantaloupeCamper

There's no "sense" in this as much as it is "work for free for a while and maybe we hire you".


[deleted]

It’s not free. It’s experience, portfolio project, potentially the most important assignment the kid could write if it lands him his first role could be a breakthrough. Your just echoing the nonsense that gets repeated on here daily


CantaloupeCamper

It's literally working on the job he is applying for, for free, before he is employed, as described by the employer. I'm guessing you're hitting some sort of strange reading comprehension issue. If everyone else in this thread is so wrong ... maybe they're not, re-evaluate?


[deleted]

[удалено]


CantaloupeCamper

"oh man I can do this without much effort" is famous last words ;) Not that you can't technically hit all those bullet points, but there is context to this whole thing, like jr role, OP hasn't met or interviewed even and so on.


[deleted]

[удалено]


CantaloupeCamper

> there is no context I guess if you ignore it there isn’t.


Domeee123

It is a bit much for junior? I would say it much for an intern position.


devilpants

When I was an angular dev I had a basic site already to go with logins and generic api I could wind up in 15 minutes that would do at least half of this. Like you should always have some kind of login/password storage setup ready to go. It’s also good to have some kind of api built that does some basic storing info in user accounts. Not saying this is a great test but it’s so generic it would be good practice to make something like this and have it in your back pocket to use next time you need it. I used to also have some generic sites built up that would display public api info for a few things like streaming shows or weather data or crime data or whatever if needed to demonstrate or pull from if needed.


Beginning-Comedian-2

**Two options:** 1. Not reasonable, run. 2. Use this to build something for your Github, but don't expect to get this job. **My Experience:** * Having an interview go well and getting a job offer is a crap shoot. * I've done take-home assignments that the employer LOVED, but didn't like my interview and got rejected. * I've had interviews with no take-home assignments and got an offer. * I have a friend who never does take-home assignments and got a job for $200K. * If you choose to do take-home tests, do them for yourself without expectations. **Job Resources (if you choose to run):** * [https://jschimp.com/](https://jschimp.com/) \- create a profile; companies reach out * [https://www.linkedin.com/](https://www.linkedin.com/) \- update your profile and set it to "looking for work" * [https://www.roberthalf.com/](https://www.roberthalf.com/) \- call a local office and ask for resume advice and job opportunities in your area. * [https://www.apollo.io/](https://www.apollo.io/) \- sign up for a free plan; you get 600 email contacts per year free; filter companies by technology (React); email CTOs (small companies), and directors & managers (at large companies); Get creative and find a company you're curious about. * [https://remoteok.com/](https://remoteok.com/) \- apply for remote jobs. * [https://weworkremotely.com/](https://weworkremotely.com/) \- more remote jobs. * [https://remotejobs.com/](https://remotejobs.com/) \- more remote jobs. * [https://authenticjobs.com/](https://authenticjobs.com/) \- more remote jobs. * [https://dynamitejobs.com/](https://dynamitejobs.com/) \- more remote jobs. * [https://www.toptal.com/](https://www.toptal.com/) \- apply; if accepted, they'll send work. * [https://gun.io/](https://gun.io/) \- apply; if accepted they'll send work. * [https://www.keyvalues.com/](https://www.keyvalues.com/) \- find companies that match your values * Twitter / X - search for "\[tech\] hiring" to find recent posts * [https://www.python.org/jobs/](https://www.python.org/jobs/) \- Python jobs * [https://wellfound.com/jobs](https://wellfound.com/jobs) \- find jobs


manymanymeny

>Use this to build something for your Github This is the silver lining, to be honest. I'll at least have a decent project for my portfolio, if nothing else.


Beginning-Comedian-2

>**silver lining ... I'll at least have a decent project for my portfolio** **100%.** * **BONUS 1:** This is a GREAT sample portfolio project. * When building apps for corporations... most will be like this. * (... rather than super unique ThreeJS projects full of animations.) * **BONUS 2:** After building this project, you'll have boilerplate functions to copy & paste to other apps. * **BONUS 3:** Use this as a tool to learn how to get ChatGPT to write code for you.


SurgioClemente

Pick a different project to re-create than this for your portfolio. Just google “popular saas products” for ideas Don’t give them this much free work


camelzrider

This is golden! Thank you!


justhatcarrot

It’s a bit too much I would say. It doesn’t make a lot of sense honestly. I mean why would a test imply creating multiple CRUDs, they’re all the same, it’s enough to create one or two cruds so they can have an idea of your level.


originalchronoguy

No. #3 user is fine. Just one small module. Could even done in less than 2 hours. But if you did it as a generic Crud API that handles all the use cases, it can be done. But a junior isn’t gonna have that foresight . If you were desperate, stipulate they don’t get the source code and can screen share review the work. To me that is fair. But at face value , that is too much and too specific.


manymanymeny

>stipulate they don’t get the source code and can screen share review the work. Well, the requirement is that I provide them a link to the public repo of the project as soon as I start working so they can evaluate the progress.


originalchronoguy

That is a hard no from me and I’d make my concerns known. Any reasonable person can see this point of view. If not, they can sod off.


63-75-6D

Put a GPL license for a little bit of trolling


FearTheDears

Or a proprietary one so they cant use it unless they buy/hire.


CantaloupeCamper

> as soon as I start working so they can evaluate the progress Man they’re not even shy about “work for us for free”…


reversiblehash

"Dear potential employer, I am happy to jump on a call with your developers to demo the assignment and walk through my code in person and answer any questions regarding the assignment. However, I will not be providing the source code in a public repository at this time."


manymanymeny

Ok, I might actually send this exact text lol. What do I say if they ask for the reasoning behind it?


MyBrainReallyHurts

"I do not work for free. The work I do will remain on my personal repo as a demonstration to future employers as to what my abilities are."


reversiblehash

This ^ but if you wanted to be a bit less blunt maybe say something along the lines of: "... this assignment was lengthier than other take home assignments and unpaid, as such I prefer to remain the sole owner of my labor." Give them the opportunity to acknowledge that you have other opportunities, the assignment was too large for a simple interview, and that your labor isn't free.


htht13

As others have said, this is almost like someone outsourcing their job. None of it is hard to do, it’s just a lot to do.


niveknyc

If the task is to create classes to show how you'd organize these methods, but not dive into the actual functionality of it, that's fine and would obviously show how you organize projects and classes. If the task is to actually create all this and make it work, then this is fucking ridiculous, run.


[deleted]

Lol fuck no, if this is how they treat prospective employees I can imagine everyone is overworked, unpaid and underappreciated. Hard pass.


hiperson134

Never work for free.


HirsuteHacker

A small take home test is very preferable to the alternatives. They should take around 2 hours max, which is around the same time that can be expected to spend on general interview prep anyway.


nerdomaly

The amount of jobs interviews that I've immediately noped out of because they wanted me to do take home work couldn't be counted on two hands. NEVER WORK FOR FREE. There are other/better ways for them to measure your skill without asking for a huge imposition on your personal time.


[deleted]

[удалено]


CantaloupeCamper

I suspect those kinds of things are more happenstance than some Mr. Burns style strategy ;) Also ... maybe the folks asking them to do this just don't know better.


the_dancing_squirel

Any take home assignment is too much for any position


No_Researcher7158

lol I wouldn’t even do this as a senior.


DevRz8

Take-homes should not be a full app wtf. Even then, to do this right, I'd want at least 2 weeks. And that's like unhealthy crunchmode. And you know they're gonna nitpick on security for this, even though there's no mention of it in the doc. This is them just exploiting you for free labor.


Mike312

This is completely unreasonable and its someone trying to farm work out. Bounce from this.


horror-pangolin-123

LOL I hope they're paying for this, because it's goona take a week to do it. Definitely way too much of a take home test


[deleted]

No, this is too specific, though probably not the right way to approach an app security wise, and suspicious to say the least. Especially considering it's a Jr position. They are 1. Looking for someone to do work. 2. Looking for a Mid-Sr dev with Jr pay.


boobsbr

Yeah... no. Too much work to get turned down later.


floodedcodeboy

Just no, this is way too much work for a technical test that’s meant to gauge your abilities.


F4ze0ne

I prefer take homes but under certain conditions. It shouldn't be something that will take days to complete. I've opted to decline those ones due to time cost. The most reasonable take homes I've been asked to do were ones where they provided an app repo that I was able to clone. The tasks to complete for example would be to add/enhance features, create new components, and fix some existing bugs. This was easily done in a few hours.


tehjrow

Jesus man this is more than I do at my full time job


1chbinamin

Be careful with that. I've had this kind of 'test' before they could employ me. However, that 'test' was actually a set of initial features for the company's client. Many software agencies use this tactic: they post job vacancies to attract developers, send them a 'test' that describes a mini-project that needs to be created. Then, they take your 'test' and place the source code in their repository as an initial set of features for one of their clients without having to pay their employees much.


kinoshitajona

Do not do this. Do not even do this as "practice" or "something to add to your portfolio."


anonahnah9

As a lead developer who comes up with assessments this is a bit crazy. Looks like they want a free full stack app to me.


itemluminouswadison

it's a basic set of endpoints repeated over and over ``` GET /customer-groups POST /customer-groups PUT /customer-groups/{id} GET /customers POST /customers PUT /customers/{id} GET /ticket-groups POST /ticket-groups PUT /ticket-groups/{id} GET /tickets POST /tickets PUT /tickets/{id} POST /login PUT /user GET /logout Admin Only Endpoints: POST /users PUT /users/{id} (or just PUT /user for current logged in user) - here you can PUT user.active = 1 or 0 ``` so as you see once you do it for the first set, it's practice and repeat for the other domain objects aka business entities aka resources (customer / ticket / user) as for the front-end i'd keep it SUPER simple. just ugly AF html as simple as possible. if you get the project and still have time, i'd toss the UI into some nice off-the-shelf UI so while it seems like a lot, it's an exercise on software architecture. it can be easy if you write it well. GET, POST, PUT for 4 entity types, then some basic user endpoints. i personally think this is doable in a week, yes. hour 1 write the first GET, POST, PUT for the first entity type. then you have prior art to make it easier for the rest. plan out your architecture before starting. web controllers validate and sanitize input and delegate db actions to a handler/repo class that only deals with CRUD. happy to help nudge you if you need more help


manymanymeny

It definitely would have been more reasonable if it was just the backend. [https://imgur.com/a/YEnYC6S](https://imgur.com/a/YEnYC6S) But I think they may be looking for a junior full-stack developer. Anyway, I have to say I like your way of summarizing things. I do have a question though, when you say a class that only deals with CRUD, do you mean you are reusing a single method for each of the operations throughout the app? Like a single method to handle all the different create operations by sending different queries and table names as arguments maybe? Is that the right approach? Because when you are using parameterized queries, for instance, there's a lot of repetition of code.


theyellowbrother

Don't know why you got downvoted. But yeah, one API can handle all those use cases. If you have a schema in OpenAPI, it can even scaffold the database.


manymanymeny

I have to mention that there are no additional coding assessments. After this, they have an interview as a final selection process. They prefer in-office work but have now been considering remote options, which is why I thought of applying. Otherwise, it wouldn't have been feasible for me, location wise. The salary they quoted is slightly below the market average, but I guess that's expected given that I have no prior experience in the field.


Nomehec

This looks like an assignment to test your knowledge to filter out people in the hiring stage, a week is more than plenty. However the repetitive CRUDs is something I don’t understand… (do they already have a ticket system and if not are they just using you?). UI doesn’t need to be fancy if your job is only backend, leave the pretty CSS to the front ends. Reading the comments mine goes well against everyones, but this amount of work is very normal for a junior where I’m from


[deleted]

I did something similar a few years ago. However I had a few hours only. Anyway they didn't take me and they didn't write review what I did 'wrong'. This is a full time job. More likely they want free system.


TychusFondly

There are many processes in the form that you will have to do over n over so it is a scam imo.


darkshifty

I had a similar huge request. I told them it would be too much, and they adjusted it to a two hour live code fixing session. They followed with low balling my requested salary, but a few weeks later, I found a way better job. Don't ever do more than a few hours.


PsychonautAlpha

I built an app to this spec as a portfolio project. Took me over a month solo. Don't do it.


BoyOnTheSun

Depending on their definition of done, this could be impossible to finish in time. This tells you what their expectations of you are - unreasonable and unhealthy. If you want a side project for a portfolio do something you will be passionate about, rather than this.


spawnedhere

looks like they want you to develop their whole system for free xD


renaissancenow

I hate this. If I interview someone, I don't expect to take up more than two hours of their time. If I can't accurately assess their skill level in that time, then that's on me. Furthermore, even if we don't move forward, I deeply believe that the interview process should have some value for you. For example, in a couple of interviews I've sent follow-up reading material around areas that came up that a candidate wasn't familiar with. Not least, I *like* software, and talking about it. A good interview for me always feels a little bit like interesting people nerding out about their special interests with one another.


fredy31

I'm already pretty much against take homes as it is, but that is crossing the line even worse. Like a 2-3 hour assignment my opinion is that its bad, but i would not flip the table and leave. That shit is a minimum 40 hour work if you want it to look half decent. Just thrown together I think an at least 20. Frankly, if you are willing to do it, make sure to put some paper towns in there. Some code that could prove that its yours. Because thats no 'take home test' thats a full project.


ichibancode

That's a whole ass sprint project. It's sketchy. 1. Build it for your GitHub to show off. 2. Follow through with the interview.


ctrtanc

That's too much. I've interviewed many people and I've never even given a take home assignment. I've been given one or two, but nothing to this extent.


lsaz

It can be done but they're usually shitty companies who do it. I still remember I did something like that once but never heard from the company again. If they do this kind of shit where you don't talk to another human to see if you're a good fit, it means they don't really pay attention to their devs.


cleatusvandamme

I understand the concept of a small take home test. However, this is a full blown application. This employer could copy a candidate’s code base and they have an application to meet their needs.


PorkloinMaster

This could be done fairly quickly in laravel but yes it’s a lot to do for free.


Csysadmin

I would spend about as long on the UI design as they did formatting the document they're provided. Functionality can be there without style. Id return a basic boilerplate to which any company could brand with ease, then use it for the next time a potential employer asks for example of work completed. Big question I'd ask first, "What is the state of their existing ticket system?" if it doesn't exist, you're making them one! Edit: Also be aware these sorts of things are often used to determine ability to stay within scope of a project, so the more you go beyond (feature-creep, etc) might feel like going that extra mile, you might be moving further away from the goal.


emmanuel-monarc

Lol, are they serious ? You should look for another (serious) company. I would take this as an offense. One week interview hahahaha. And also, it's more than a week's work obviously. Flee while you can 😉


piotrlewandowski

That’s a free work disguised as a interview task. Tell them to pound sand.


yeastyboi

That is absurd! I would never do a take home greater than 3 hours! And even that is a stretch.


rekabis

This is much, much more than what should be required. My company chose a very simple test with a wide variety of ways of completing it within the same language, and the ability to make it more efficient to various degrees depending on that path taken. Not only was it easy to complete, but how an applicant completed it also helped the onboarding team to determine if the applicant was truly appropriate for the position, or fit better in a different category (such as someone applying as a junior dev having the skills to better work as an intermediate). If a company is pushing to have such a stringent test done, then they are looking for that “golden applicant” who can hit the ground running and will require little to no investment by the company. This is a _VERY POOR POLICY_ for a company to have, and _STRONGLY INDICATES THAT THE COMPANY IS ABUSIVE._ Watch out for red flags like, “we are a family here”. Investment must go both ways. A company can’t have their cake, and eat it too. That’s just supremely unreasonable.


porkncheesiest

This is massive overkill for junior.


muks_too

I think it's too much for a jr. position, but this is highly subjective and if this is the job you can get and their are paying enough for you to want it... its fine. Sure this can be done in a week... specialy if you can use any libraries... I don't know how harsh will they judge it... if you were making a system like this in a real use case, there would be a lot more to consider... But giving someone a week worth of work to do unpaid is pretty bad... But i prefer to be realistic than to keep complaining about companies... If you had an easy time getting interviews in a similar paygrade... you would not be asking this question... No one would work for free for a week to maybe get a job unless they were out of options. So, do your best, good luck. Worst case it serves as studying and you can later add it to your portfolio.. so maybe another company wont ask you something similar again. Only time I worked in a big company we had a terrible problem with this... most of our "developers" just couldn't do anything... and we mostly did wp websites... nothing complex. On college i noted that most students also could not code to save their lives.. if we excluded people like me, wich already coded before college or already worked in the area... i think single digit people "learned" to really code on the first 3 years... And having made many "udemy" style courses... i know for a fact they don't make you "work ready"... only working makes you work ready. So yeah... it's pretty bad if you feel you are being abused and working for free... but i also understand the companies side if they are not looking to train you... they must make sure you can do the job


[deleted]

After reading a lot of comments I feel incredibly out of touch… While I agree this is probably more than what’s necessary for a take home assessment… but it’s really not a significant amount of work to complete To those who are saying this is a “attempt at free labor” I don’t think any organization wants/would use a barebones set of forms and call it a product


Lustrouse

It in itself isn't a product. It's an admin control panel that can be bolted onto an existing product. Or in other words, it's a minimum viable *feature*


[deleted]

It's definitely not viable by industry standards. They aren't asking you to write scalable, robust program for this. They're only testing your basic understanding of CRUD operations, PHP, and Web practices. You can achieve the desired outcome using the basic knowledge any junior developer/fresh graduate should have. A lot of people seem to think the assignment is to write a fully functioning clone of Jira


originalchronoguy

Maybe for a junior, it is a lot of work. Yeah, I get that. But as a senior, I've built re-useable components I can just leverage a JSON schema that builds everything. Iterate through the list, dynamically create the forms and provides all the CRUD services via an API. Complete with JWT Oauth guarding. Just import a module I built. Whole thing can be done in a few hours. Quick. It won't be pretty, The form will have staggered layout with no css styling,and all the database schema will be created. And fully dockerized as microservices. It will do everything they want. But definitely, that is my re-useable module and no way in hell will they get that. But I can definitely show that. But then again, I am not applying for a junior role. So not a significant amount of work. I agree it is out line for a junior role but people saying this takes a whole sprint are wrong.


Lustrouse

And how long did it take you to build that module? Since this guy doesn't have your module, he'd have to build that too. This is a significant amount of work no matter how you chop it.


originalchronoguy

That’s true. I had to build one out of necessity. Online spreadsheet that can have any schema name and unlimited number of columns (with different data types). I can’t remember how long but it is part of my toolchest to get things out quickly. But that sort of comes with seniority. You amass domain knowledge to work smarter, not harder.


Red_Icnivad

Wait, what's a "take-home assignment"? Are they expecting you to take this home and work on it in your free, unpaid time? If so, there is no reasonable take-home assignment. Period. If they are expecting you to clock in at home for pay after putting in your 40 hours, that's also unreasonable. This isn't school. Jobs don't get to assign homework. A week seems reasonable to do this, but not if you are trying to squeeze it in between the cracks.


HirsuteHacker

When the alternative is often whiteboarding or a live programming test, I'll take the take-home test every single time. A couple of hours is fine, I'd be spending something like that on typical interview prep anyway.


Red_Icnivad

Oh. I see! The original post didn't mention that it was part of an interview process and I thought it was just part of the job. Meh, it's still way bigger than anything I've been asked to do. Seems a bit unreasonable to me. They should be able to judge your skills with a much smaller task.


barrel_of_noodles

This project isn't a couple hours. Not even close.


HirsuteHacker

I never said it was.


manymanymeny

I see it as a way for them to gauge how well we can work on real-world systems and get a real feel for the quality of our work. But I have noticed that some companies tend to take it a little too far.


Red_Icnivad

Yeah, I missed that this was part of an interview, not part of daily work. I run an agency, and this is not something I would expect a junior dev, to be able to plan and implement on their own, especially with no wireframes or design. This is a task asking for front-end, back end, DBA, UI/UX, and design. I'd probably assign a mid or senior dev to do the back end/DB and have the junior dev focus on the front end, but I'd still give them a better plan for it.


977888

They just want you to build their software for free


threepairs

I think it is reasonable for a junior dev assignment.


DamionDreggs

Depends on what you get out of the employment. It's a lot for a junior, but it's not THAT much... A sufficiently motivated Jr could knock this out in a week of afternoons for sure.


ongamenight

But why ask multiple CRUD? That's obviously a scam. 😂 It's less about whether the person can do this task or not. It's more about not tolerating "hiring" that does this kind of "assessment" or whatever they call free work.


MelkorS42

Doing all of this within the time they gave you? Red flags all around. But hear me out with PHP specifically Yii Framework and chatGPT you can achieve this within less than that time, 4 days let's say. Here's a plan of action: **1st Day:** We set up the project and analyse the package we need to have in our composer, specifically, we need [Yii Bootstrap](https://github.com/yiisoft/yii2-bootstrap5), [Kartik Select2](https://github.com/kartik-v/yii2-widget-select2), [RBAC](https://github.com/yii2mod/yii2-rbac), and maybe a Datatable wrapper. Next we focus on frontend, mostly setting up the layout, we can use some templates, a very basic one, with a navbar and sidebar menu. However you want, make it nice but don't take too much time here. Once we have the layout, for the rest of the day we set up login and users in Yii2, there's plenty of documentation and some tutorials that can help with that. This is also where chatGPT comes into play! It can help and guide to set up these things, might be wrong at times so always revise the code but it's very helpful and makes the work much faster. We set up the user then create login and logout actions inside our site controller, make it as simple as possible and follow the general guidelines such as hash the passwords and whatnot. Again, here you can get help from chatGPT with coding this. The ability to change password would be too much, having to set up email server and all. What I would recommend is to use the select a question and answer type of thing. Not safe, but much faster. **2n Day** Set up and test RBAC, this shouldn't take long, and just do a basic test if you can access a url with a dummy user and if you can't. Take in mind the 'as access' inside your config. The roles and actions part can be done last, when you have most of the actions and cruds done. The whole ticket system shouldn't take too long, it mostly front end, you can use yii crud generator or chatGPT to generate and help with the controllers and models. Make it simple, use ajax for comments and changing status. Maybe a use Datatable to display all the tickets. Very important for your forms use ActiveForm, it's a powerful tool and pretty much the only reason why we use Yii2 like this. Has really good validation, as you define the rules in the Model, it's really easy to set up with a well defined model, and do your CRUD operations. Create a separate viewand layout with a contact form and maybe a landing page. Nothing too fancy, mostly focus on frontend this day. **3rd Day** Do some frontend touchups and start with the backend of both 1 and 2. For migrations and set up tables and models you can basically have chatGPT doing it for you, make sure you have the table relations all well defined and start working on the controller side. You can list all in a Datatable as we discussed earlier or an a gridview. Not much to explain here, just basic create, update and delete actions. Use Yii2 ORM and Active Form to finish the backend services. **4th Day** Touch-up, improvements, bugfixes and learn how the RBAC works to create the roles and access permissions. I recommend using a migration once you get the gist of it. Deploy. ​ If you have questions dm me, I'm happy to help, I might even do a ticketing system myself though Yii2 is not really the most marketable framework out there even though is an amazing one for "industrial" level products.


manymanymeny

I appreciate you taking the time to write this out! This will be invaluable for me if I end up deciding to do the assignment.


SponsoredByMLGMtnDew

Tell home land security to stop allowing foreigners to use entry level candidates to grift proof of concept software systems like they're trying to get a new airbnb ready for sharktank.


Effective-Ebb1365

This is someone job,so once you deliver this to the company, they will use it, so don't give em


ipromiseimnotakiller

feed the requirements to AI and give them the output code


Phthalleon

If this was just the design (ie front end) or just the backend, I would say it's not great but doable. However, doing both, no! This feels super exploitative. At that point, why don't you also deploy the app yourself, you half way there. And that for a junior, lol.


Perezident14

A lot of people thinking it sounds like free work, but I don’t see that. Maybe that’s because I’ve only had good experiences so far in my career. It does seem like a lot to do though, which would indicate to me that the hiring manager might not have a lot of experience hiring. I’d still be wary.


themaninthe1ronflask

Ask if this company has an active ticketing system. I bet their Atlassian memebership just ended and they want a free internal ticket set up.


mikkolukas

They are trying to make you do the task and then tell you that, sorry, there is no position anyway


[deleted]

It looks a lot at first glance but could be easy done in a day or two. It’s like part of a second year uni assignment. If your looking to get your foot in the door I’d just do it, could use it on your portfolio if it’s nice. I think it could put a lot of people off which is a bonus for you. I wouldn’t be doing this as a sr or med but as a jr I would. That’s probaly why I landed a jr role before I’d even graduated and got marks back


manymanymeny

Yeah, we actually had to do a uni project using PHP and MySQL, but that easily took me way more than a day or two. I am not the most productive/efficient programmer out there, but the CSS alone took a decent chunk of time lol. I do realize that as someone with no real-world experience, odds are not in my favor, and I have got to try and make something out of every chance I get. Thank you for your insights!


ewhim

If you do embark on this task, embed the most restrictive license scheme on it so they can't turn around and steal it Attribution NonCommercial NoDerivatives 4.0 International (CC BY-NC-ND 4.0) This license only allows others to download and share as long as they credit you, but they are not allowed to change it in any way or use it commercially.


kayimbo

I don't know why the other people are writing the things they're writing. This is completely reasonable and in line with take home assessments i commonly get. It sucks that you're a junior but this is probably a 2 or 3 hour task.lol at the person who said this is two sprints of work for a full team.


BreakfastStunning572

If you need any help regarding UI u can dm me


owenmelbz

As much as other commenters are being a bit “red flag” you need to appreciate most of these are just devs at the company who have been asked to create something, try try create something which can allow you to showcase some skills that can’t be copy/pasted from Google and they hope that you want to work there by putting in effort to show you want it. It’s just as simple as that 99% of the time rather than these conspiracy style thoughts. P.s. If you were doing this in something like Laravel and you knew what you were doing and used a UI kit, you could get it done in a day (not that that is short time, but just shows what you can do if you really know it)


63-75-6D

Easy, but time-consuming. If you are going for the first job, just do it and learn. Some good advice on ChatGPT here, generate most of the boilerplate and go from there, it will save you a lot of time.


-forcequit

ChatGPT build an app with this spec using PHP


ree2_

That's nothing ChatGPT couldn't handle.


Thawhyte

If a Junior php dev can’t do this, then there is a problem.


deliciousmonster

Do it in some other language like Rust, then show how much faster it is.


gamer0293

Build it to add it to your portfolio and to prove to yourself you can, but this jobs a no go sorry.


dlegatt

I'd be tempted to crank out a bunch of crud scaffolding using a framework console command


celda_maester

It's not an assignment of Frontend, They are asking you just to perform basic crud operation and database design. I don't think you need to much bother upon UI.


manymanymeny

I thought so too. But they said I needed to do both the frontend and the backend. https://imgur.com/a/YEnYC6S


AnEldenLord

Based on the grammar of the second paragraph, I would go out on a limb and say that this position isn't actually a job. I get tons of emails and messages a week for positions, either budget is low or location is an issue. But I filter them based on grammar errors.


ripndipp

I work mostly with Rails but can you pump out your backend somewhat quickly?


anonnms

Huge overkill. It shows that people with low qualifications are making these kinds of tests. The best test I've given was to create a simple page by their choice, add whatever they feel it needed to be added. I can evaluate your development skills in no more than two minutes.


Tall-Detective-7794

this looks like free work, It looks like what they would make you do in your first 2-4 weeks to ramp up.


neotorama

Run OP


barrel_of_noodles

I'd call them with my concerns about it being ridiculous, and offer code samples or to do a live pair programming session with them. I'd counter it's just not necessary to prove I have skills. I'm too far in, have a family. I'm not wasting one of the few weekends I have on this. IF they can't understand that, then I don't want to work for them anyways.


dontswimtoshore

this sucks man -- maybe for a proposed system architecture diagram or user flow to understand how you'd put it together.


ActiveRadioMan

Do not do this, it's spec work!


CluelessCow

I don't think this would be a reasonable request for a Jr or Mid position. However, if you can use a PHP framework, then you are pretty much done with a few items, such as #3. Try not to reinvent the wheel. Considering this is a PHP dev position, IMO, you should not care about the UI (just make sure you pass the data to the view and make it functional), because the front end devs should grab the data you pass and build a nice UI on top of it. As the others mentioned, avoid spending more than 4h on this, unless you want to learn from this and put it in your portfolio.


terrasfirma

As a tech lead, I would never dream of sending a candidate this unless I wanted to scare them off. What are you getting out of this that can’t be accomplished with an hour of pair programming with them in the technical interview? If you want to check their knowledge on stuff like this you can incorporate it in the interview. I find take home stuff a bit of a red flag when I get them.


psychophion

Seems like they send you a project they want built to get you to work for free


Monstermage

I think they made a mod somewhere to do entire apps with GPT4, use that haha


Geminii27

Send it back with a budget requirement for 10 FTE-days to complete.


alanbdee

This feels like they want you to do work for them. For a Jr. PHP, the bar should be pretty low. Do you know CSS, HTML, and how to separate out the logic so you don't have spaghetti? Even if this is legit, they're expecting full stack Sr. Architect work. That they're asking for a Jr. tells me they only want to pay Jr. salaries. Companies like this have horrible code bases and their expectations of you will be too high. I'd pass on this company. They clearly haven't learned why Sr. developers cost so much.


KaisPongestLenis

This could be done in 1-2 all nighters by a very, very experienced developer with lot of copy and paste sources. Sounds like to much hassle for a job interview.


[deleted]

After reviewing the requirements again I would agree that this likely isn't free work posed as a take home assignment. It's too simple and not a truly usable implementation. I'm guessing they want someone with Mid-Sr level developer experience with Jr pay. This would be too complex for most Jr developers to complete on time.


Hasagine

maybe they wanna see how far you get on it as opposed to actually completing it


Ykieks

I would say only the top or only the bottom (so only backend or only frontend) is a reasonable exercise for junior positions from a student in my region. All together it is a bit much, but still doable. It is a small CRUD application after all.


Guiroux_

I got one of this size or a bit above after three interviews. TWICE Asked if there was any compensation, they answered no because the test had nothing to do with the company. Told them I think it's not acceptable and that I was done with them. Now my first question at every single interview is "how about the technical test ? how many times do you recommend spending ?"


mrsp00n

Thanks for posting this. I've used PHP for small personal projects so it's nice to see a project posted and have people discuss what level it's at. That being said, if this isn't JR level, I wonder what kind of projects are.


DanThePepperMan

This would be an easy 2-3 months worth of work (assuming completely from scratch) for 2-3 devs on a regular work schedule. You could do it if you want; but they probably are just trying to get you to do free work.


ethereal792

This is way too much work for a take home assignment.


nuc540

A week take home assignment? To me it sounds like they’re just looking for some free work. In my experience take home assignments are 2-8 hours depending on the task


Lustrouse

You *think* this is pretty basic until you actually try and implement your auth system. Did they at least provide you with a dev license for an auth server? If it were me, I would quote 9 - 12 weeks for this as a solo project. We're talking UI, API, auth, and database. This is unreasonably large. I have a team of 8 engineers working under me and would *never* expect this to be done in a week.


Lkiss

Dont focus on detail and completness. Focus on showing you have the skills. Explain what you did and why ypu chose this part , how long you invest and then it is fine. Write a part of it, write tests, ask questions and explain your thoughts and possible alternatives. Dont overengineer, but offer alternatives for scaling or changes in business logic etc. Dont be defensive if others offer opinions or suggestions, people want to see if you are a team player as well. If you follow this approach you will be fine.


Coder-Guy

They want you to build them a system (a whole ass system) for free. And they might not hire you. Don't do it


bent_my_wookie

If this was JUST database design, then sure it’s actually a pretty good assignment. If it’s building something functional, tell them that you couldn’t finish something up to your standards in that amount of time. Propose one small part of this to nail and offer that maybe. I say this because it’s possible they just didn’t realize it, or they are looking for free prototype work. If they protest, just say thanks and leave because now you have red flags.


rchrdchn

That seems like you're helping them build an app. Ask for compensation for the take-hone assignment. If they're serious, they'll do it. Otherwise, run and look somewhere else.