DEV Community

Matthew Collison
Matthew Collison

Posted on

I'm a Full-Stack Engineer/Manager & Bootcamp Mentor, Ask Me Anything

Hi, I'm Matt and I'm the lead mentor here at Skill Pathway (based in the UK) and a developer / head of software engineering within a construction company.

I've got 7 years commercial experience in agency, embedded and freelance jobs, I don't have a computer science degree so I'm completely self taught. I actually started learning to code at 10 years of age!

I have a lot of past experience in mentorship as at my previous agency job, I was responsible for training up apprentices (interns) from 0 experience to building full-blown custom websites front to back. I really love to sit back and watch people grow their skillset.

I can answer on anything, here are some examples:

  • Mindset
  • Getting a job, resume & interview tips etc (I've run 100s of interviews and read 1000s of resumes)
  • Ways to learn more efficiently
  • Specific code questions (my stack is very wide - JS, HTML, CSS, Vue, Angular, PHP, Laravel and more) etc.
  • Anything cloud (Qualified AWS Solutions Architect Associate)
  • What your manager (or future manager) might think about you (being a manager myself helps with this)
  • Side projects
  • Freelancing

Seriously, fire away. I love nothing more than helping out.

Discussion (14)

Collapse
brentsoles profile image
Brent Soles

Hi Matt!

A couple questions:

  1. What are some tips/tricks you have used to really polish a resume, as well as your general method with formatting?

  2. How would you approach gauging where you are at when applying to full stack jobs? (i.e. what are some good metrics to know if I am a junior, mid-level, etc...)?

Thanks for the AMA!

Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything • Edited on

Hi Brent! Thanks so much for the question.

Tips for a good resume
When I receive a resume through, I'm really only looking for a few specific things, which I think all interviewers are looking for

  • Relevant Skills
  • Practical Experience (Whether that's in a job, or through personal projects)
  • Examples of Work

These are the basic things you must get correct. List your skills that are relevant to the job, give a short description of some projects you worked on & your responsibility within those projects, and some examples of work.

Here are some things you could do to make yours stand out from the rest

  • Send in a "customised resume" for each job application. This might seem time consuming, but it will make you stand out in the market. You can do things like: put the relevant skills at the top of your skill list, or customise the description of your past projects to make them more relevant to the job you're applying for. The more contextual your resume is to the job you're applying for - the better your chances.
  • Add screenshots of your projects to the resume - This is something that can spruce up any CV and I can tell you 99% of the CVs I receive have no screenshots in sight. When they do, they always catch my eyes and make me curious. Particularly if you're less experienced, this gives your potential interviewer a much better idea of what you can do without having to put much thought into it.
  • Put across your personality but highlight the fact that you embrace learning and challenges (if this is true) - Hopefully that's true because coding is a life-long learning process, and if it is, make this clear with a sentence or two on how you love keeping up-to-date with technology and love solving problems. Showing a passion for this type of thing is important and I have interviewed people who are clearly averse to this and it does put me off. Stating up front removes some of the doubt.

I'll probably make a video discussing these things in further detail, but I hope that helps.

Gauging your level, whether you're Junior, Mid-Level or Senior
This does vary industry to industry, but depending on where you are in your progression, there are a few tips I can give you. I'll preface this by saying, ping me a direct message and I'll tell you where I'd place you if that would help - but on placing yourself, here are my tips:

  • If you have just come out of a CS degree, Bootcamp or haven't landed your first commercial paying job yet, you're a Junior. Plain and simple - and employers won't take you any other way. Unless you've been practising exceptionally for many years and have multiple, highly complex personal projects, which will be a very small minority, you will be placed in that rank. Here's how I'd define a junior: A junior should not be expected to be responsible for deployments, held strongly to estimations (without contingency) or expected to go through processes without heavy peer review.
  • If you've been a Junior for some time now, and you want to know where you stand, you should ask yourself the following: Can I complete my tasks proficiently with minimal help or guidance from others? Basically, if you find yourself completely stuck on multiple occasions throughout the day on tasks you're solely responsible for, you're still technically a junior. If you feel very self-sufficient however, you are likely moving to towards the mid-level range.
  • Senior takes this a step further - do you feel comfortable talking to management and others on the "big picture" implications that changes, tasks and fixes will have on a system? Are you able to think about tasks across many axes at once, from time implications, resources and value to the business?

This is a packed answer for sure, please tell me if something doesn't make sense or you want me to elaborate more - this is a blog post in itself and it's very much my initial thoughts!

Thanks again for the question Brent!

Collapse
brentsoles profile image
Brent Soles

Thanks for the detailed reply, I appreciate the time you put into it! These are great tips and insights, and help have a context of where I am at with regards to jobs that are out there.

Hope the rest of the AMA goes well, and I will ping you if I have any further questions!

Collapse
kirstysimmonds profile image
kirsty-simmonds

Hello Matt!

Thank you so much for the kind offer of answering questions. I just graduated from a coding bootcamp after deciding to change careers from business development. I got my first rejection from a job I wanted yesterday and it stung, so I'd like to ask:

  • What are the best way(s) for newbie coders out of bootcamps to market themselves?
  • What are the best way(s) for newbie coders out of bootcamps to keep their skills sharp? What kind of personal projects excite interviewers the most?

Thank you again

Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything

Hi Kirsty! Thanks so much for the question.

You're more than welcome and everybody else here too. I feel blessed to be in a position to help others out and a level of gratitude to the fact that you are going to be the next "generation" of coders, and are learning at such an accelerated pace compared to what I had when I was getting started out. So I want to remove as much doubt from the ecosystem as possible.

First of all, congratulations on your first job rejection. It means you actually went to an interview and put yourself in a vulnerable place to be potentially shot down, and that takes a lot. Most people don't make it to that point. Let's see how I can help with these queries

What are the best way(s) for newbie coders out of bootcamps to market themselves?
This will lead onto the second point, but first and foremost is your portfolio of projects. I'd love to hear if you're more frontend, backend or fullstack focused and I can give you a more contextual answer, but projects are your ammunition

The next most important thing, if you really want to stand out (and it does take some effort) is putting immense effort into each application. This means:

  • Sending a covering letter. Before you put your resume in, tell your truth about what you like about the company in the email attached to it. If you think they're on a noble mission and you'd love the opportunity to just interview with them if they like your skills - state that.
  • Customising the skills section of your resume (putting relevant skills higher up the list) and descriptions of your past projects (try and make the description convey how you have the skills for the specific job you're applying for)
  • Add screenshots to your resume for added scan-ability - this will improve your chances massively because people can see immediate evidence of your previous works without having to click through to links.
  • If you are good with talking to people, make a phone call asking more about the job opportunity. Listen and try and give contextual responses saying how great it sounds and how you think you might be able to help - while keeping it short. Your edge here is that very few other people are probably doing this so you might just be the talk of the office. And that can only be a good thing - I mean, if it is bad, you probably wouldn't want to work for that company anyway. Do you get what I mean?

What are the best way(s) for newbie coders out of bootcamps to keep their skills sharp?
Engage with the professional community. First of all, check out tags of the frameworks and languages you learned on both GitHub and Stack Overflow, find highly-reputable contributors and follow them. Watch how they respond to issues, and even better, if they write blog posts, read every single one of them. And try to understand. And if you can't - ask your mentor or find a place in the community to ask these questions. This is the absolute best thing you can do to keep up-to-date.

And one aside: keep open minded and don't let people tell you "this one framework/language is the best" - that's the mindset of someone stuck in a box - in reality these frameworks and languages can all do very similar stuff. There may be something better round the corner that needs your attention - and an evangelistic mindset can blind you to that opportunity.

What kind of personal projects excite interviewers the most?
Anything that demonstrates your technical ability at scale - preferably something cohesive and large enough to have some weight to it.

For example, a "JS calculator" or "CSS animation code snippet" or "Temperature converter" doesn't really go beyond demonstrating technical ability in a isolated way. It just shows you can build this one thing.

On the flipside, if you had an "Invoice builder system" paired with authentication, the ability to add / remove / edit / share with others, and just a few more features, it's a system that actually has some weight to it.

It can be anything that has some scale to it - a private gallery of your drawings behind authentication, a blog to about your dog with a completely customised theme (if you're a frontend developer)

Basically, stay away from small "example" pieces, and try build 3 or 4 things that demonstrate you can build a cohesive system. Even better if you loved building it - they'll probably ask you why you built it and you can really put across how much you enjoyed it. This will get you brownie points at the interview.

Another packed answer here, I really hope it helps and please ping me any questions if any of this is confusing whatsoever! Best of luck with your next applications and interviews!

Collapse
raisaugat profile image
Saugat Rai

Hi Matt!
So here's a thing. I am trying to build a project like book keeping but not to vast. It's for my mom. She keeps record of house expense and work in a journal and I am the only one to write it down. So when I'm not around I want to be able to update those records via web app. Just keep record and calculate the totals. And simple crud operation. And I am thinking it to create in react. But I am not sure from where do I begin. I know react to some extend. But I guess that is also not enough. So what's might be useful to learn in order to build a project like this?
It's my first AMA though. :)

Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything • Edited on

Hi Saugat, thanks for the question!

When it comes to deciding you need to build a project, you need to first plan out the project so you know what "micro-skills" you'll need in order to accomplish it.

You need to plan it out in modules, let me give you an example;

It sounds like you're going to want some way to login to the application - so you can break that down into these micro-skills

  • Installing a backend framework (Laravel, NodeJS, Rails, Django, etc)
  • Installing a compatible database (to store the users)
  • Browsing your database
  • Validation of form input
  • Registration of users
  • Authentication in your framework of choice
  • Deployment to an online server

Then you'll find some of these skills will cross over to the other "modules" of the project, such as your CRUD forms (Database)

Learning to build a cohesive project like the one you're describing is as simple as defining all the individual "parts" and knowing which "micro-skills" you need to get to develop the parts.

And this is purely opinion here, you can pick any framework you want, but I've been big on VueJS and Laravel in the last 3 or so years. They both have excellent communities, and their creators are both huge on attention-to-detail and making things for the developer as friendly to use as possible, without compromising on enterprise scale.

Once again, make your own choice, either way, I hope this helps!

Collapse
Sloan, the sloth mascot
Comment deleted
Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything • Edited on

Hi Ayan, thanks so much for the question ๐Ÿ˜

To start with, I need to clarify what you are asking. Do you want to know if stating that you've been a "Freelancer" since you started learning, whether or not that would be frowned upon by prospective clients?

I'm not sure I completely understand the question and want to make sure I answer the right one so you can get the most value out of it.

Thanks!

Collapse
georgehanson profile image
George Hanson

Hey Matt!

What advice would you give for understanding when it is time to take a break and do you recommend anything as a good way to avoid burnouts?

Thanks!

George

Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything

Hey George! Great to see you here buddy and thanks for the question.

Here's the thing with taking breaks and avoiding burnout - it's so damn unique to the individual. There's really only two things here:

Become extremely self aware and remove as much self judgement as possible.

I know this is vague, but let me explain. Any of apprentices I worked with, as you probably saw at my previous role, I try and ask them how they really feel within the role and whenever I come across an answer like "I feel like I'm just not doing as well as I should", I try and shoot down that self judgement by telling them that it's understandable but we've got to keep reasonable expectations of ourselves.

So be aware of these pitfalls in self-judgement:

  • We tend to set arbitrary expectations like "I should be able to stick to coding every day and every evening and if I don't I'm not trying hard enough" or "This should be simple to me by now but I still find it confusing" and so on and so on. These expectations are just there for the sake of it - and they aren't helpful. They cause us to burn out because we try to meet them, no matter how impractical they may be.
  • We tend to ignore the signs of pre-burnout and get there without realising it - asking yourself "do I really want to work on code this evening or do I need to relax" is so important, and the reason we don't ask ourselves is because of that very first point, impractical expectations... Remove those and start to listen to your body. Once you do you'll be able to take rests without making yourself feel bad.
  • Try optimize your learning by doing it alongside something you love: Want to learn to code? Have a passion for kiteboarding? Create the next kiteboard tournament system in whatever language you're learning. Love dogs? Create the next tinder for dogs (don't actually force them to date, just meet and greets!!) - it doesn't have to be a serious, money making venture but just something you love. You'll be 10x more likely to stick to it and you will find that it generates energy within you because that's what working on something you're passionate about does. This is a far more practical way to avoid burnout.

Hope that helps - I know this is something you've talked about before and maybe there's something in there you hadn't thought of. Thanks for the question mate!

Collapse
georgehanson profile image
George Hanson

Good answer Matt, thanks! :)

Collapse
vmuthabuku profile image
vincent muthabuku

What kind of projects can someone work on to get considered for a job

Collapse
matthew_collison profile image
Matthew Collison Ask Me Anything

Hi Vincent, thanks for the question!

I've already answered this to Kirsty's question, but the general gist of it is this: build a medium to large scale project rather than focusing on small code snippets.

For example, a "React Calculator" only displays that you can follow an online tutorial and that you have isolated knowledge of a few concepts.

Whereas writing your own "Basic Blogging platform using React + PHP" (these are example frameworks, it can be any of your choice) will give a much stronger impressive because it shows you can build a cohesive application.

The larger the scale of the application, the more it will boost your chances at being considered for a job.

Hope that helps!