june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jlrdw Okay thank you! I will keep all that in mind.

june23's avatar

june23 liked a comment+100 XP

3mos ago

Just try to get on with a company, let them know you know a certain amount now. And try to talk to someone who can hire and tell them you want to get better every day.

Many of my past jobs I got by actually meeting the boss and talking to them with eye to eye contact.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jlrdw Okay I see. Well thank you for your time and wisdom! I really appreciate you telling me all of this :] It really opened up my eyes to some things! Every time I ask a question I learn something new on here.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jlrdw Was this Accounting Program similar to something like NetSuite? If so, why not just use NetSuite or something similar? Why did the humane society company you did the Accounting Program for ask you to make a CUSTOM one? Was it because the Accounting Program was for a NICHE (Humane Society) basically, kind of like a Vertical Accounting Program for Humane Societies, and NetSuite wouldn't be a good choice? If so why wasn't it a good choice and why did they want a custom one?

And yes I like this forum very much, all of the Laracasts community is freaking great! I learned a lot from the little bit I been on here. The developers on here are awesome!

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jlrdw Wow! That sounds really cool and make a lot of sense rather than just building a Todo App or Blog. I noticed there are a lot of SaaS Products like CRM's, ERP's, WMS, OMS, Inventory Systems, HRIS's, CMS's, etc... and there is like the "[Insert industry name here] Management Systems" like Court House Management Systems, Jail House Management Systems, Psychiatric Management Systems, Construction Management Systems, Chiropractic Practice Management, Hospital Management Systems, the Transportation Management Systems you were talking about, etc... and then you have like "Web Dev Tools" like Configuration Management Tools, Monitoring Tools, Automation Servers, etc... but back to the "Management Systems", I notice you have to have a STRONG amount of working knowledge about the "X" Management System, like if you are building a Construction Management System, you need to know all about construction and how the workflows go, and the language Construction uses, if not it will be harder, is that what you are saying?

When you get "specs" from the Product Manager that were given to them by the Stakeholders for a Startup company, the Stakeholders are the ones that create the "workflows" right and the Mockups of the Web Design (the UI Layout)? So the Web Developers really don't need to know the "Language" of Construction, just implement the Functional Requirements. Am I right? Or do you still need some working knowledge in Construction? Or would it help?

And if I make a Construction Management System for a Private Construction Company, you really DON'T need to figure out a way to "disrupt" the Market coming up with innovative features, like the SaaS Market. I would just need create the web application and they would keep it as a "Proprietary System" or an "Internal System" for there personal use, nothing fancy about it. Right?

And it's obvious that for in a case like mine, if I chose to create a Court House Management System, I would need to study first a lot about legal stuff first, in order to show hiring recruiters that I can build complex software.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jlrdw Wow! This is what I was looking for and completely answered my question. I am guessing this is what professional web developers do daily is create "complex" software for real-world problems. Just two questions, this "logistics software package", is this considered a "Transportation Management System"? And how did you learn the "workflow" for this logistics software package, did you use Google and read articles upon "Logistics"?

june23's avatar

june23 liked a comment+100 XP

3mos ago

Just pick something challenging and create an application.

For example:

Write a complete logistics software package to include:

  • Of course truck dispatch
  • picks and drops to include LTL loads
  • Driver pay
  • a maintenance module
  • A/R and A/P
  • communication with drivers (messaging)
  • on the dispatch show such things as dispatched, completed, pending, etc
  • such things as monthly, quarterly reporting Both summary and drill down reports if needed
  • etc

When this is complete you are ready for a real job.

I have done the above at a trucking company, and believe me you learn as you code much of the time. I did this in the 2006 time frame in java technology, no AI. I had to think. But I already had some A/R, A/P etc experience which helped.

You sound like you are new and need to code and learn, while learning, learn the why of things also. By the way even if you have been at it for a couple of years, that is still new.

Strive to learn new things daily and if unsure of something ask a senior. Keep at it for a few years, suddenly you are the one "calling the ball".

Don't get a new job and act like you know everything. State you know a lot maybe, but want to learn a bunch more. And do one thing my dad taught me. "Pay Attention to detail".

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@digitalartisan Thank you for your comment.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@jussimannisto are the projects from this website -> https://roadmap.sh/backend/project-ideas sound like a good place to start? Will building 3-5 projects from this list, if I do like you said, just pick a web stack -> Laravel + React + MySQL, and build them from my own mind using nothing but the Documentation and Stackoverflow.com or Google... No AI assisted coding no help. You are saying that I will have a better chance at getting a job, since I can explain to the HR Manager exactly what I did and how I built it? Instead of trying to single handedly create a web app that a team of 20 developers would make in a year? Does this sound correct? If so what projects from the list would you choose? And if I am wrong what kind of "Projects" should I build?

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@digitalartisan what do you mean by "while understanding DevOps, cloud, and system design concepts only at a HIGH LEVEL rather than fully implementing them.", I don't get what does "High Level" refer to, like just knowing how they "work" in the web development process, basically like having a high/solid understanding off DevOps, Cloud, and System Design and how they work and not having to know how to actually implement them?

And side note- Will building some of these project -> https://roadmap.sh/backend/project-ideas be enough (if so can you list a few of the projects you would choose from the list if you were starting out seeking Junior Level Roles), are these considered "real world projects", or should I be looking at like making a Vertical SaaS CRM for a specific Niche like Construction or Legal Contracts? or like a Indeed.com type of website with like Advanced AI features? What do you mean by "real world", I am just curious since "real world" coming from a experienced web developer might mean something different.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@martinbean nope I have never had a job before.

june23's avatar

june23 wrote a reply+100 XP

3mos ago

@martinbean Well it's because someone on LinkedIn told me my work was, and I quote "Leaning Mid-Level, just add Rate Limiters and Scoped Auth", but I never understood if he told me leaning from senior to mid, as in if I add those two things it would make me a Senior Dev... but I was mistaken when everyone on Laracasts here told me otherwise, and I needed to add a lot of different things, I guess what he meant was fix those two things and it would be Mid not Senior. I was told by a few different devs that my code was "Mid" on LinkedIn that I reached out to, but a got a few also saying that it was Junior for sure. So now I am starting new and want to work on a new project, I know I have the motivation because I know I can do it, I just need to sit down and write the code, but I don't want to start writing the code and then figure out I am missing an important concept... I already studied System Design which I think was the last thing for me... I just want to know what I need to do now, what would be a good project and using what technologies, I know Laravel pretty good now, I haven't worked on my E-Commerce API since it got a lot of heat, but I know how and what to fix now... so I just need to know like I said in my question, what Projects and what Technologies?

june23's avatar

june23 started a new conversation+100 XP

3mos ago

What type of projects should I have if I want to start applying for Junior Laravel Roles? Also what technologies should I use, is DevOps Tools a must for any Role including Containers like Docker, Configuration Management Tools like Ansible, Chef, or Puppet and an Automation Server Tools such as Jenkins, Circle CI, or maybe even Github Actions and Code Coverage Tools with Static Code Analysis Tools along side Unit Testing and Performance Testing using JMeter. So basically what I listed, is DevOps... is all that needed to show HR Managers and the Team I will be working with I know what I am doing?

I have been told also to push every code change commit to Github instead of manually doing it through the UI... So I think that would help.

Also should I use a Cloud Computing Provider like AWS, GCP, or Azure? Maybe just a Infrastructure as Code Provision using CloudFormation, an EC2 Virtual Server that holds all the Database, Application Server, and Web Server together just to keep it simple... or should I also create an RDS at least? Should I also look into using Kubernetes if I want to impress HR Managers and the Team.

I think a Cache like Redis would be nice to have either way. But I could be wrong.

Taking it a bit more complex (this could be me over thinking...) Should I look into different types of Caches (Client, CDN, Web Server, Application, Database) Should I use and setup a CDN? Should I use or choose a certain type of Database or use multiple types using both RDBMS/NoSQL? Should I use Database techniques like Sharding, Federation, and Denormalization? Should I choose a Architecture like SOA, Microservices, N-Tier? (which would change my AWS setup) Should I setup Monitoring with Tools like New Relic or Data Dog? Should I implement things like Circuit Breakers, Bulk Heads, etc...

There is so many things that can be of importance including "System Design" also but think I would be making this post hard to take in...

I know that Security is a topic in itself and there will be a Security Team to guide the Development Team on how to implement Security... I think if I am right. Obviously knowing about the OWASP Top 10 and other things helps a Junior I would suppose.

So what should I do in order to impress HR and the Team I will be working with, if not with a Team, then what are they looking for in me that they need? What are they looking for in projects that is "Junior" Level ready? I have read that since the rise of AI, that Junior Level Roles are becoming obsolete, and Juniors are now expected to know DevOps, System Design, Architecture...

So coming from Web Developers who have already made it inside the industry, what do I have to do to get a job? Maybe if I setup a checklist it be easier for someone to answer this...

So what kind of Projects do I need to do or have in my Portfolio, and what technologies do I need to use? I think this would help me out on figuring out what I need to do...

june23's avatar

june23 wrote a reply+100 XP

4mos ago

@snapey Okay I can understand that, like best one out of the group. So I am guessing that means if there is a question on the interview test of "Write a Doubly Linked List" the candidate that implements the best possible implementation for it, gets passed to next interview round, correct? I mean in can be something else like "Write a function that computes the min/max of an Array" for example, but my point is the candidate that is better overall gets the job? Correct? And I am guessing there is no using Google or Stackoverflow during the tests I am guessing also.

june23's avatar

june23 wrote a reply+100 XP

4mos ago

@martinbean Well how would the small-mid sized company interview process go, given your experience as a web developer?

june23's avatar

june23 wrote a reply+100 XP

4mos ago

@krisi_gjika Okay I know this but I am confused on the part of do for example say a Role as a Laravel Backend Developer sent me an email and I pass the screening and they give me a coding test, do I need to pass the test perfectly or almost perfectly or a very high percentage, that is what is most concerning is that I have to memorize the most important things from Laravel that way I can solve any problem that they throw at me... or is this assumption a mistake?

june23's avatar

june23 wrote a reply+100 XP

4mos ago

@martinbean Okay well that is good to know! But what I really wanted to know is what smaller-mid sized companies ask for, what type of tests do they give a Junior Developers, or is it the same as "algorithms, computation, parallelisation and serialisation, optimising data storage and retrieval", as you said. From what I see on websites like Careerbuilder.com or Indeed.com, they have Roles of Software Engineers and Web Developers true, but I also see Roles of Laravel Developer, Django Developer, Node Developer, etc... So I was just assuming they ask you questions on frameworks. What I want to know is, what do I have to know in order for my to pass a coding round with a smaller-mid sized company?

june23's avatar

june23 started a new conversation+100 XP

4mos ago

I have been wondering, I am sure for MAANG companies there needs to be "perfection" when it comes to coding rounds like memorizing an entire frontend or backend frameworks like Laravel so that it can be possible to code an entire module or component like a "Shopping Cart" for an E-Commerce website with out having to look into the documentation or Stackoverflow for the backend framework and type everything as fast as possible to get through the coding rounds, but for smaller or even mid sized companies that hire new web developers, entry level, are they required to pass coding rounds or coding tests to the extent where a potential candidate web developer applying for an entry level role can code with ease and quickly and fast as possible to create whatever the coding test is asking for without having to look into the documentation or google for advice? Or can junior level web developers use Google and Stackoverflow within the coding rounds? How does that work? I have seen videos on YouTube and have read some articles stating that before somewhere around 2017 and below it was easier to get a job in Web Development, but now a days you need to be like a ninja when it comes to interviews and especially coding rounds. So can anyone give advice and feedback on this, do Entry Level Developer applying for Roles need to be quick, accurate, and precise when it comes to coding rounds or do the interviewers and company just want to see what level you are at?

june23's avatar

june23 wrote a reply+100 XP

5mos ago

Okay. Thank you for the heads up.

june23's avatar

june23 started a new conversation+100 XP

5mos ago

Hi, to all the professional Laravel coders on laracasts.com :) Can you show me your Github Profiles with maybe a few of your side projects you have going on right now? That would be awesome :)

june23's avatar

june23 wrote a reply+100 XP

5mos ago

@jussimannisto Okay I understand that simple is the way to go, but how do I know when I should add another complexity? Is that where the use of tools like New Relic come into play? Like when the Alerts from New Relic are telling me that it found something, I can use a System Design Pattern to solve it? Is that correct?

june23's avatar

june23 started a new conversation+100 XP

5mos ago

I recently asked a question on here about System Design, and nobody left a reply, not sure if it was because I added a giant wall of AI Answer and nobody wanted to read all of that, but I am hoping that, that is why nobody answered. This will be my final try at asking this. Since it seems relevant to programming, and I am explaining in my own words this time.

Just so it is clear, I know that for System Design one should:

Gather all Functional Requirements and Non-Functional Requirements Figure out Capacity Estimates Design Core Entities or in other words Database Design API Design Create High Level Overview Deep Dive into the actual Architecture That was a checklist from a YouTube Teacher (Ex Meta Staff Engineer).

There is probably other ways to unravel the core parts of a Web System, all the Functional Requirements and there specific needs, like a Database Cache, or a Queue, or Load Balancer, or a Replication for Databases... I have learned there are two ways of seeing this

Big Design Up Front (BDUF) YAGNI Meaning either you create a Perfect System from the start = BDUF!

Or you start with the basics, MVP features, less System Design = YAGNI

But my question is, even if you choose which ever philosophy you choose (in my case I choose YAGNI, but leaning towards a hybrid approach) how do you implement the more complicated patterns, or a better way to ask what I am asking is, when to choose a Complicated pattern like Queue Based Load Leveling or Sequential Convoy or Leader Election or CQRS? Should I keep iterating over a list like this for each Web Service (Timeline Service, Message Service, Post Service as examples) -> https://roadmap.sh/system-design until the Web Service handles all the assumptions like will this Web Service need a Load Balancer starting with N amount of users, for example, or should I implement a Sequential Convoy Pattern since my Messages need to all be in order for some reason. My point I am trying to make, is should I know all of these patterns by heart and know when to use it when the time arises? Or do I look up information when a the System runs into a bottleneck or when I am planning everything up front.

That is my first question... Should I keep iterating over a list of System Design Patterns -> https://roadmap.sh/system-design for a specific Web Service say the Timeline Service for a Social Network, until every corner has been thought of, and then move on to the next Web Service.

My other question to this first question is, should I memorize all System Design patterns so I can implement the Pattern on demand in any specific context, either in BDUF meaning I can work like a machine as I plan the System and throw every System Design Pattern at the Web Service there is until satisfied... or either in YAGNI when a New Relic Alert pops up I know what to do. Or is looking up information okay to do, like on here or Googling stuff up, in a professional setting.

Another question is should I start to add System Design patterns Up Front following the BDUF Philosophy... or should I use the YAGNI Philosophy. Or a Hybrid Approach.

Another question is even with either or or the Hybrid Approach, the correct way to know when to add another System Design Pattern say the Competing Consumers Pattern is by first receiving an alert from an Instrumentation Tool let's say New Relic, and solve that bottleneck or failure from New Relic by using a System Design Pattern. Is that accurate? Or why else would there be a need for implementing a new System Design Pattern let's say 2 years into production if not by the Observability System like New Relic complaining about high Disk I/O... Is that correct or am I mistaken?

I understand that things like DevOps (Automation Servers, Configuration Management Tools, Unit Testing Tools, Code Coverage Tools, Static Code Analysis Tools, Docker, Cluster Management Systems) are a requirement and not something to add when needed. I understand that most Cloud Services (like AWSs EC2, Cloud Formation, ELB, Auto-Scaling, ECS, EKS, IAM, RDS, S3 if using this Storage, etc...), most of these Services are a requirement not added when needed. I understand Monitoring Tools like New Relic or Data Dog and ELK are a requirement. I know about Security which is a topic in itself, but also a requirement. And my point to this is, the tools listed above, besides maybe some Cloud Components like Storage or Load Balancers, etc..., aren't apart of System Design right? They are all required in modern Software Development and should not be "chosen" for.

june23's avatar

june23 wrote a reply+100 XP

5mos ago

@snapey I understand that writing code will make me better, obviously. But my question was regarding System Design. And you just critiqued my question by saying "95% bul...t" and not helping at all. I am trying to understand System Design that way I can write code at a higher level, as in writing a Sequential Convoy pattern for a Web Service, just an example of writing code. But how can I write code for a Sequential Convoy pattern if I don't know how to implement System Design. So how am I not writing code... You are not helping. What was the point in a leaving a comment if you didn't clarify what you meant.

june23's avatar

june23 wrote a reply+100 XP

5mos ago

@snapey Thank you for replying to my question, can you please explain why you say this? Should System Design be built UPFRONT when building a Web Application, instead of relying on bottlenecks and then gradually fixing the bottleneck with a System Design Pattern? I am trying to understand System Design, should I review a System as in:

  1. Gather Functional Requirements and Non-Functional Requirements
  2. Design Core Entities - Database Design
  3. API Design
  4. Create a High Level Overview
  5. Deep Dive into the System

I have taken this checklist from a YouTube Video from a Ex-Staff Engineer from Meta. But there are so many Patterns (Sequential Convoy, Queue Based Load Leveling, etc...), I am lost at which ones I should add and leave out...

Should I add to the checklist a section for something like, "review each System Design Pattern and see if it applies to my System and ADD it if it does"? And keep on doing that until it satisfies my System Design? Would that be better?

june23's avatar

june23 started a new conversation+100 XP

5mos ago

I was asking Gemini AI how I should add System Design Patterns to a Web Application System. My question was this ->

So adding complexity like a System Design Pattern like "Sequential Convoy" or "Queue Based Load Leveling" or a "CDN Cache" or a "Circuit Breaker" or "Bulk Head" should come from bottlenecks and other conditions like high CPU, RAM, or I/O Disk or Race Conditions or Latency Bugs? Is that correct? A System should start off with that it needs, and then gradually add complexity when it is needed from bottlenecks for example. Explain in detail.

And it said this ->

So my question is, is it true to start off simple and then add complexity as the system needs it?

I understand that things like DevOps (Jenkins, Ansible, Unit Testing Tools, Code Coverage Tools, Static Code Analysis Tools, Docker, Cluster Management Systems) are a requirement and not something to add when needed. I understand that most Cloud Services (like AWSs EC2, Cloud Formation, ELB, Auto-Scaling, ECS, EKS, IAM, RDS, S3 if using this Storage, etc...), most of these Services are a requirement not added when needed. I understand Monitoring Tools like New Relic or Data Dog and ELK are a requirement. I know about Security which is a topic in itself, but also a requirement.

So maybe most things that are taken from System Design, I am using the following patterns from this website -> https://roadmap.sh/system-design . The patterns found there (if you scroll down the web page through the list of patterns) mostly from Cloud Design Patterns section under "Design and Implementation", "Data Management", and "Messaging", and the Reliability Patterns section under "Availability", "High Availability", and "Resiliency". These patterns are the ones mostly that are going to be added as "Complexity" to the Web Application when needed if bottlenecks arise or other issues like Race Conditions, Latency Bugs, etc... is that correct?

Since I know the Patterns that "are a given" meaning they are more than likely a requirement, are like the Caches, CDNs, Queues, Consistency Patterns, Database Selections, (I am using the website for reference the roadmap.sh), I know these are sometimes more than likely a must.

So are the Patterns taken from the website (roadmap.sh) Cloud Design Patterns section under "Design and Implementation", "Data Management", and "Messaging", and the Reliability Patterns section under "Availability", "High Availability", and "Resiliency", are the ones (more than likely) going to get added over time if needed? It just makes sense to me, to see it this way... is all.

Or can someone explain to me how to add these things over time, or is the quote the AI reply Gemini gave me "the sophisticated patterns you mentioned are tools to be used on demand, not features to be built by default.", and should be added to resolve issues like bottlenecks or failures that the monitoring systems are alerting of, is that correct and accurate?

Side Note - I know that for Portfolio Projects, there should be large complex web applications to impress hiring recruiters, if the competency of the Web Developer can allow of such a thing of course. I am talking in a professional setting where it makes sense to start off small and gradually scale the system out.

june23's avatar

june23 wrote a reply+100 XP

5mos ago

The best way to handle your question is to create Service classes for your Controller classes, and use the private functions within the Service class in the Service classes public functions creating the business logic and then share the public functions that hold the private functions to be used in other Controller classes. That would be the best way to share private functions within the Controllers.

june23's avatar

june23 started a new conversation+100 XP

5mos ago

I stumbled on a article not to long ago I think it was on Medium, and also have asked AI like Gemini for this answer, but I want to hear it from a professional who knows these kinds of things. My question is... Is it true that for Portfolio Projects, like E-Commerce Backend APIs (weather simple or complex) are more bulkier and a bit more harder to implement as opposed to a clone like Twitter or some other Popular clones to put on a resume for Junior Level Roles? Should I focus on creating simple Backend APIs like clones or simpler projects if I want to land a Junior Level Role as a Backend Developer? And once I land a Role than under supervision of Senior Developers expand into creating more complex Projects like a E-Commerce Backend APIs? Like should I focus on easier projects and if I get hired than work on harder projects?

june23's avatar

june23 wrote a reply+100 XP

5mos ago

You should look into Service classes and the The Single Responsibility Principle from SOLID (if you don't know SOLID, I would use an favorite AI assistant like Gemini to help you understand it and Service classes), they isolate the business logic from the Controller classes so that the Controller classes can do more of the "plumbing" like returning json() responses or doing Form Request Validations or status codes and calling the actual Service class within the Controller class. I think that can help breaking down the code that way you don't have a massive Controller class to deal with. Service classes help split this up. I would also look into Repository Classes to, they abstract the Database Operations (like findById(), etc...) some what like the Service classes isolate the business logic from a Controller.

Any way just thought that might help in managing lots of code.