aurelianspodarec's avatar

What would you consider a solid Laravel developer? Difference between Junior and Mid level

Hello there!

I wonder what would you guys consider a solid Laravel developer - that would include PHP knowledge.

What would you consider a Junior developer, what would their responsibility be and what would you expect them know, and what would be the difference between a mid developer?

Then senior wise from what I know a senior dev is a mid dev with business knowledge and its subjective to the company.

The reason I'm asking, is because I want to learn things I might not be aware of. It seems like testing in Laravel is the way to go, therefore that's something I deffo need to start including in my projects. Optimizng the code, making sure the code doesn't do 25quereens when it only needs two, that was explained in "laravel from scratch" tutorial here on Laracast.

So what would you consider a solid dev to get a mid level position?

And while its subjective from company to company, I'm talking about pure skill. If you get a mid level position but can barery write JS you're not a mid.

0 likes
14 replies
jlrdw's avatar

Very subjective answers as well.

Me I would hire someone with very little programming skills if they new how to do "business activities".

Meaning if there were no computers, they still knew A/R, A/P, general bookkeeping, basic tax law, etc, the importance of knowing how to properly save an invoice with data hard coded because prices change.

If they know that, then they can learn how to correctly program it. But just my thoughts on it.

Edit

So to me a solid developer knows the related field he or she is writing code for. At least have had the proper business courses to understand how to deal with the business related aspects of the application.

2 likes
aurelianspodarec's avatar

@jlrdw Oh, I see. You're talking about business-specific knowledge.

Like if you've been a doctor, and a company is developing software to help doctors, a doctor that has programming skills would be extremely beneficial because he understands exactly what the software needs to do and how it should work right.

This is very business oriented and such person is very valuable. But if someone is a doctor, learning programming probably wouldn't be as hard, but that person is already a true professional.

What about just the technical aspect of coding? Someone that knows nothing.

Id like to get a job doing Laravel in the next few months, later this year, but idealy a mid position, its easy to get a junior position, just know the basics of HTML, CSS and PHP/Laravel but that won't do it for me, I got literally 16h a day for this.

jlrdw's avatar
jlrdw
Best Answer
Level 75

@aurelianspodarec I am talking about business knowledge. A doctors office still has a/r, a/p, etc. But someone coding for a medical practice has probably studied the application and the how-to of CPT codes.

A better example, say you are hired to program CNC machines. In such a case it is extremely helpful if you have had at least analytic geometry in college.

Know something about what you are programming, the basic fundamentals at least.

When I see a post where the OP is asking, and thinks they can just pull up an invoice from several months back from the current related products table, that tells me that the person asking needs some business courses first.

They have no clue that certain items needs it's own recorded record because prices and products change.

If they can not figure out how to do a transaction with paper and pen, how are they going to program it?

That's what I meant.

Edit:

Just apply for a good job and work your way up as time goes by. Nothing wrong with starting out a little lower.

2 likes
aurelianspodarec's avatar

@jlrdw I see, that's a different way at looking at things.

That makes 100% sense. I can see what the job ads mean when they say industry-related knowledge required now.

When I was doing freelance, and the client didn't knew what they wanted or whatever, I had to learn a bit about the business itself, how does the business work, how does the competition go about it, and make it better. So the first half week or whatever was just figuring out how this industry works before I can start designing the site thinking about selling points for the copywriting and call to actions and such.

Yeah, I suppose if you work in game dev, things like physics, geometry etc... would be a big plus to know, even if you can code the games.

Yeah, many times I found myself of not knowing what to code, because I didn't even had an idea how this is meant to work, when working on my webapp. So really had to step back and think how this is meant to work, think a bit in the future for this to be flexible enough - not to over engeener but also don't make it hard to improve on it.

Yeah, I had a job before doing React as a Junior dev, and I was going nuts. Because I didn't improve or was challenged enough, the learning line became linear, instead of exponential. I hated every single job I had - the only good thing is I got exposure from looking at the code base so that was extremely useful. When I didn't work for the company after a few months I would just study the codebase for REact and see how stuff is done and learn like that - learned more in a few weeks like that than working at the company.

Junior positions such. A mid level position will require you to have more responsibility therefore more challenging and feel a progress, instead of falling asleep doing dumb components in react all the time and some animation over and over again or whatever. So Id rather go warehouse than a junior position xd

Really appreciate your insights on this. That made me think a bit different about the entire industry.

Programming is the skill you need to have, but then other expertise you might have, such as physics, math knowing things about industry or whatever, can be super beneficial.

If you know how something works, you can program it, otherwise you'll make a mess - I've seen that before at one company where senior dev would code the entire matrix for a company and it was just wrong because he didn't understand how exactly that meant to work, he had to re-do some parts adding more days to the work, which it just costed more more but yeah.

But what about knowing all of that, say you hire someone that knows how basic tax law, bookkeeping etc... if they know that, would would you expect they know programming wise, say if they can use a class, or know what an array is, or can do testing etc... or you don't care as much as long as they get the general programming flow, then they can learn some of this stuff on the fly anyway?

bugsysha's avatar

The one that heard about all advanced topics but still doesn't understand and can't apply those.

aurelianspodarec's avatar

@bugsysha Right, that's me to a degree :D But at least I hope I know what to do, just need time. Even putting 24/7 into this it doesn't go as fast as I thought it would.

There's just soo much.

I'm spreading myself a bit too thin, I did some JS, Lua, React, Laravel this and that, so and still haven't done basic stuff like testing what no.

Although, I must say, doing Lua for the past few weeks or such, gave me a better understanding how to figure things on my own "better", just because Lua community is soo poor with docs and everything, and the API I was using had 0 answers on google, so its literally reverse engineering and trying and stuff. Which I must say when I did some laravel here and there the past week or two I didn't even had to as as many questions.

I just managed to figure it out and read the docs and such. Play around bit more than just try a thing or two, but actually play around. Which its not always easy with web dev compared to gaming where you instantly see the results but yeah.

martinbean's avatar

@aurelianspodarec You’re asking a purely subjective question. As you say yourself: different employers have different expectations. There’s no checklist to move through where you can go, “OK. Today I am now a mid-level developer.”

Then senior wise from what I know a senior dev is a mid dev with business knowledge and its subjective to the company.

It’s not. Otherwise I wouldn’t be a senior developer at Pfizer, as I certainly didn’t have a knowledge of pharmaceuticals before starting, and still don’t. I was hired because I can solve problems, and have enough experience to apply abstract knowledge of things like design patterns to concrete problems.

At the loosest, “levels” can be seen as thus:

  • Junior developers are new. They need hand-holding.
  • Mid-level developers can complete tasks on their own, but may need guidance for more complicated things.
  • Senior developers can complete tasks on their own. If they don’t know the answer to something, then they will know or have a good idea of where or how to get the answer on their own.
3 likes
bugsysha's avatar

@martinbean correct. It mostly depends on the company. At some startups, you might be considered senior way before then at Google, because you are compared to their existing resources.

3 likes
aurelianspodarec's avatar

@martinbean Hmmm. That's interesting point of view as well. "didn’t have a knowledge of pharmaceuticals before starting, and still don’t. I was hired because I can solve problems, " - right, I suppose that's what a true senior is right. You're there to solve problems, so happens its with code, but you also probably learn how the business operates, what's important for them etc right, so you can prioritize things what no.

Hmmm, okay.

So I think, based on your answer, from all of you guys answers, what I understood is:

A Junior dev is someone that still needs help how to do things, how to figure out what to do when you have a bug etc... so basically the questions I ask, are on the docs - I was doing pagination the other day, and I whthold to ask question, instead just read the docs, tried it and magically managed to figure it out. So maybe now I'm a better junior lol

And a mid dev dev seems to be someone that can just do the software from A to B, but perhaps ask for help on?

What are the more complicated things you have in mind?

So in reality if they can do testing or not, doesn't matter, because if they are mid they can pick it up in no time right. So really, if you have the problem solving brain, and some experience in programming overall, it doesn't matter to detail as what makes one mid by just pure technical skill rights.

Learn OOP, routes etc and you become mid - I guess its more like, know how to figure it out and give good enough solutions, learn it in a week, and you're a mid.

aurelianspodarec's avatar

@jlrdw Right, that's the issue. Every company I join, sucks.

I wish I never joined a company before, as I've learned a lot more on my own/forums.

Joining a company has only slowed me down, junior position is a bad position to be in.

jlrdw's avatar

@aurelianspodarec Sometimes you have to put up with certain things in a job. But later as you work up, things are better.

Like someone going in the military, they start as a private, later on they are a sergeant, or even higher.

And you gain much more from real World experience.

Site note:

When I a while back wrote a custom bookkeeping app for a non-profit, I did not know all the requirements. I got with a CPA who handles nonprofit taxes, etc. He let me come in several evenings and taught me the requirements that was needed.

So if you don't know an aspect of what you need to program, seek the right person that can help.

Like stated above, much of what a developer does is solve problems, there's more to it than just being able to code. There is how do I code and meet legalities and requirements, etc.

Just start your journey and learn and "do" as you go.

2 likes
aurelianspodarec's avatar

@jlrdw Right, I get what you're saying, its just my experience has been different. Been doing this for a few years and I'm still a Junior. Doing tasks that don't push me or grow - since I took a break and quit it all, now I'm improving.

I've been doing the same job for many years now, and I can't do it any longer. Rather go do warehouse if I really need to.

The world experience I had was worse than me doing things on my own asking for help.

I remember working on a REact Natvie project and the codebase sucked. There was a boolean called g on a text component, that would make the text green, however later they rebranded and to different color and now the g was to be put for color blue. Instead of having a variation such as size="xs" on the component or color="primary"` I felt I have more experience in that kind of stuff than the senior dev that wrote that code.

I remember the button not having an outline, and it lacked everything, and each time I wanted the outline I would need to code it.... so I decided to write a new button with a prefix, and do it properly so it does what I need and saves time - I did that and senior dev then tells me whats wrong with his button and writes me an essay of a few pages being angry - when his code wasn't doing the job. Absolutelly zero thoughts for architecture, just bash the code so it works - I can do that too.

Other company I joined I asked what I should learn, focus on etc... they told me they have no time. So I got hire a mentor and she told me I should ask my team, but my team just said they don't have time meh.

Then a lot of freelance jobs I did, was pretty basic even tho they paid 4times more than a job. Which is nice but still - and ofc hard to get.

"Just start your journey and learn and "do" as you go." - I've started that many years ago sadly : p

I can't mentally do this anymore, id rather do warehouse - or learn stuff I don't know that's more challenging. If I got a job doing basic stuff I think id get fired.

I found out this here from reddit

I'm a lead developer. Probably others will disagree but in my company I would describe the different roles as follows:

Lead

Someone from the senior group who has the final authority on architectural decisions

Takes input from the senior group and comes up with final decisions

Keep in mind not all companies have a lead position

Senior

Able to be given basic directions and from these directions form a technical plan.

Able to delegate tasks to the junior/intermediate devs

Able to answer questions from the junior/intermediate devs

Solves complex problems that intermediate can't

Intermediate

A good grasp of coding techniques

Generally follows the usual dry/solid principles

Needs minimal input from the senior team to get tasks done

Ability at a level where they could comfortably make a basic package

Good understanding of laravel and where things go (service providers, middleware, console commands)

Knows how to dig into laravel core and how everything works (IoC, dependency injection etc)

Able to troubleshoot and present ideas/solutions to the seniors

Junior

Needs a lot more hand-holding from seniors

Often inefficient or excessive code (ie makes mistakes that we don't accept from intermediate devs - eg n+1 problem)

Takes a long time to solve problems

Makes their classes/controllers/whatever far too big and still learning how to arrange/organize things

Which gives a bit more insights into programming itself. I think since you're a senior you can jump into things and problem solve right away. Though I'm still learning the concepts of these things.

I can jump to a new language and code right away in it, but I never did testing, even tho I'm aware of them the past two years - it seems like its something I'll have to do.

Learn about dependencies, etc... which is pretty universal too - learn it once, and you can bring it to all projects.

I learned MVC from laravel, and started to write my program in Lua MVC style exactly like Laravel did, so the concepts deffo translate. And since I knew basics programming, I could pick up Lua and the API for the game and create a feature right away withing half a week of getting myself familiar with this.

If I got a junior job id either quit or get fired - its one reason why i also stopped doing freelancing but I do need money in a few months. I'll try finding some laravel remote job but yeah.

I do get what you're saying though.

Please or to participate in this conversation.