Getting a Software Engineering Job, v2

Portfolio Checklist Q&A

Jerome Hardaway

Jerome Hardaway

Vets Who Code
Getting a Software Engineering Job, v2

Check out a free preview of the full Getting a Software Engineering Job, v2 course

The "Portfolio Checklist Q&A" Lesson is part of the full, Getting a Software Engineering Job, v2 course featured in this preview video. Here's what you'd learn in this lesson:

Jerome answers some initial questions about the portfolio checklist. Questions include how long it takes to create an adequate portfolio, the importance of lighthouse scores, and how to manage time and complexity when creating a portfolio.


Transcript from the "Portfolio Checklist Q&A" Lesson

>> How long do you think it would take for someone newer to web development to learn enough to meaningfully hit every check box on this list?
>> If you've already been coding, it should take you about 30 to 45 days. If you've been coding for six to nine months already, which is what I recommended for people to have this course, it'd take you 45 days to get your portfolio up to code on this.

If you're brand new, like three months, I think it'll take you another three to six months before you understand some of these things. Because there are some things on here that until you push code live, you're not going to really understand, right? Web performance, or unit testing, best design practices, security best practices, right?

You're only gonna understand about best security stuff when you a, add a form, so you have to think about the security of the form, and when you're pushing it live, right? That's when you're starting to think about, is my site secure? Is someone gonna be able to hack my website or just cross site hosting or cross site injections and stuff like that, right?

And you're thinking about the XML and things of that nature. So that's how I think about it, or how long I think it'll be, six to nine months, this should take 30 to 45 days. If not, this should take you about three to six months, especially if you go even further, you don't have to add everything on here, but if you do, it will highly grow your chances.

MySQL, adding a database to this, that is something you may, or may not want to do, compared if you're using AWS Amplify, or using Next as a format of holding data, things of that nature. So that's something that I want you to think about when you're building this.

But when you're doing databases, you're gonna have to think about security in databases as well, right? Cuz how many people's databases get broken into cuz they haven't changed [LAUGH] the database from what it was when they first made it, when it was local for prod? So that's my thought process on it, or that's my opinion on it.

>> How important do you think Lighthouse scores are with this kind of stuff?
>> If you're gonna be front end, very important, because I check Lighthouse scores on everybody's, that's the first thing I check is your Lighthouse. I wanna see what Lighthouse says, I'm checking for accessibility especially.

I feel like we're going towards this that if the component or the website isn't accessible, the website is not done mentality on the front end, which is about time we're starting to think about accessibility like that. So for me, it's very important, I wanna know the web performance, I wanna know first paint, if it's sub three seconds or not.

I wanna know how much bloated JavaScript are or if your images are too big, I wanna know all that stuff because of it helps other areas.
>> Would that be something you'd document somewhere or just kind of just for you to know that it's-
>> You don't have to document it because everybody has access to it, they have Chrome.

What I would recommend is you to use that as a part of your process of building things out. Because you don't want to be the last person to find out that your website is troublesome to say the least, right? Yes, sir.
>> So what's your opinion on the sort of complexity of portfolio projects, like time versus what you're gonna build meaning?

>> That's a very complex question for me. I tell people I personally feel like the portfolio should be the project you spend the most time on. And you should try to figure out projects that flow well with your portfolio that also flow well with your personality, when it comes to building out your supplementary projects, right?

After that, when it comes to the projects, every other project should be small, it should be small enough to learn one thing, right?
>> Every other project?
>> All right, so, there's trolley projects, is what I call them, trolley projects are small projects. Those are the projects that are designed for me to learn one thing.

JavaScript calculator, that's a trolley project, right? That's a project that's only designed for me to learn something about JavaScript, let me do this. If I did a project is just focused on React hook forms, that's a trolley project, right? I just wanna learn React hook forms, and the focus of this for me to learn that so I can implement it somewhere larger down the line, but not for me to try to use as a portfolio, right?

Now, I have Bravo projects, my Bravo projects are something that are meatier, more fleshed out, I can use it, have it pinned on my repositories. I can push it live, I can have it as a part of a project that I am showcasing on my portfolio. Then I have Alpha project, I view my portfolio is an Alpha project.

This is a project that is going to be holding or hosting or leveraging other projects, right? This is the big link, this is the whale, right? I want everybody to come here and then they see all the other things that I've done while here, like, this is super cool, right?

It's like, hey, if I had a really cool landing page, and I have a blog that's attached to my website, that's a alpha project. And I can even write about how I built the blog on the blog, and probably have that as part of the use case study.

And then from there, let's say I want a chat bot as well, so I can communicate with people like I did with mine, I can have that as a alpha project. Because that goes directly into the blog, and I mean, directly into my portfolio as well, and I can communicate with that, right?

Now, if I have an extension or something, that's a Bravo project, right? It's a project that's standalone, but it also helps people, that people can use it, they can go find it, but I can write about it and I can share that story. Now, I can have a Charlie Project as well, and Charlie projects no one sees them.

They're not designed to be seen, they're designed to make me better, but that's it, right? If I wanted to learn a little, and I wanted to make the Facebook emoji, if I press this and five things pop up with the like, and the heart, and the angry face and stuff like that, I want to learn how to make that in React.

That's not something that I'm gonna do and put on my portfolio, that's something I'm learning to figure out how to do that, props up data down type behavior, and then move on with my life, and use that somewhere else.
>> Do you have any examples like that middle tier project where it's worth showing but it's not necessarily-

>> [COUGH] The VS code extension, that's a middle tier project, right? It's small enough to where I can talk about it and people use it, I can discuss it, I can write a blog post about it, but I can't make an entire portfolio off of it. It's just a project that's a piece of a portfolio, but it's substantial enough that I had to push it to prod and people got the opportunity to use and leverage this tool, right?

So that is a Bravo style project, or let's say you had an NPM package of your resume, right? That would be a Bravo style project, like, hey, you should go and NPM install my resume, you can pull it from there.
>> MDM?
>> NPM, I keep forgetting your Java, not JavaScript, so NPM is a package handler that we use to do all the things in JavaScript, TypeScript, React, Node world.

Yes, sir.
>> With the portfolio project, should we be building that with the technologies that we're advertising we're good at, or it's just HTML, CSS?
>> You can do either, only I am now at a stage in my career where I only wanna add when it hurts, but if I'm going to say Python, I wanna get a Python expertise on it.

I want to put something with Python, I'm leveraging Python, even if I'm telling the story of something of data. I wanna create an ETL pipeline and then use that ETL pipeline to showcase me moving data around and then doing some data engineering stuff, that's what I am going to do, and yes.

>> Well, I guess to go back to my previous question cuz other people have been chaining on it. The reason I asked about sort of the time versus complexity is cuz some of my projects take three or four months sometimes. They're extremely complex and that's, I don't know, I just really like to make things that are impressive over-

>> Yeah.
>> A lot of things, I like to make one big thing. So do you think that's too long to be spending on things?
>> I think if you had the time and bandwidth for it, why not? I don't see a problem with that. I don't think any employer would see a problem with that.

But they would be like, now what I would like to see is your planning of it. And I think that might be something that might be cool to see if you approached it from a planning first process of planning it out, making the tickets, and then building the thing.

Would that change your speed from it? Cuz all right, you have a complex project, but could you do a complex project if I gave you a deadline, right? That's a question that you haven't asked yourself. You haven't put that constraint on yourself either yet, all right? So, all right, I got 30 days, I gotta make these tickets, and then I have to knock this out in a format to where, hey, this MVP has to be done within 30, right?

That's a new challenge, so that's something that you should definitely think about consider for yourself.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now