A truly great developer is one who can do the work AND work well with the company.
If they can't, you may find yourself working with a genius that's missing core traits that prevent them from integrating and growing in the company.
You want to know the developer on your team is someone who has the potential to improve in their role, teach others languages and skills, and solve problems (regardless if they are their own or someone else's).
At IMPACT, we look for those with similar characteristics and it has allowed us to build a team of web developers who aren't just experts in their craft but are individuals who genuinely care about the sites they create and are always looking for new ways to push the envelope.
To help me elaborate on what other characteristics make for a great web developer, I thought it was only fitting to interview two other web developers at IMPACT; Tim Ostheimer and Kyle Sheldon.
Together, we run through the top characteristics many companies (including IMPACT) pay attention to when hiring a web developer.
Christine: Hey everyone! This is Christine from IMPACT and I'm joined here by two of our developers, Kyle Sheldon and Tim Ostheimer.
I wanted to sit down and talk to them about what makes a really great web developer and characteristics that you need have to succeed in being one.
I was thinking about this and wanted to get some outside perspective.
1) Having the Skillset
So, the first characteristic of a really great web developer that came to my mind was skillset.
Obviously, depending on the job type, what you need to know may be simple like HTML and CSS or more advanced things.
Could one of you tell us a little bit about languages we use at IMPACT?
Tim: Sure. So here at IMPACT, the requirements we have for coding are relatively basic.
We definitely don't require a full-stack developer, but for pretty much any development position, it's important to have branched out a little bit so that you understand the basics of more advanced programming and coding languages, even if you don't ever plan to use them.
Then, you'll know what's involved in that kind of work and if it ever comes across your plate. You won't be too intimidated to at least take a look at what sort of code is acting in the backend.
Even if it's not something you have to edit directly.
At IMPACT, we do most everything with HTML and CSS. We also use pre-processors, so Sass SCSS.
Ideally, we like people who have a general understanding of a variety of code because we try to continuously improve our processes. The code that we might be using may change down the line and eventually, we may want to improve our pre-processors and tools.
We don't really do back-end development here but again, in the future, we might expand into it.
2) Driven to Continue Learning
Christine: Speaking of the future, let's move to my next point which is the drive to learn.
You can't come into any company and be kind of stuck in your ways. You need to expand your knowledge consistently to keep up with the industry.
I think some developers, not all, feel like once they have a grasp on what they need to know, they feel they can stop learning.
The developers that are really good are the ones who aren't afraid to learn a language they aren't familiar with or monitor how HTML and CSS are changing.
Kyle: Yeah for sure. I think that the ability to learn is such a big point because you're learning one language that you might not feel as useful at the moment, but it might help you in your ability to think about the languages that you currently work.
So, if you want to get better at say Python, even though your current job doesn't use it, learning the thought process of that language is going to actually improve the way that you do your work.
Christine: Oh yeah, and what's really like great is once somebody has the learned something, that just gives them that much more firepower to teach other people on the team.
That helps your team expand their knowledge and makes them that much more versatile too.
3) Navigate Challenges to Provide Solutions
Christine: So I want to move on to number three here which is the willingness to take direction.
Sometimes you're presented with really, really challenging problems you might struggle to figure them out. Soon, you find yourself pushing yourself to figure out a solution.
Being a great developer means you have mastered the ability to figure out the direction the solution to a problems needs to take.
Tim, we can go back to you. I think what's really great about you as a developer is that you're able to really take a problem and then figure out what direction it should take.
You are also very open to working with your team and the client to pivot on the project if you have too which some developers take too long to speak up about.
Tim: Yeah, so one interesting thing about our field is that, by nature, we're constantly problem-solving and problem-solving rarely has only one solution to it.
In fact, there are essentially infinite solutions. We're constantly working to improve upon processes that we previously built.
Sometimes, we'll spend a lot of time trying to come to a solution and then we're very motivated by what we found and it makes us proud of what we did, but you don't want to become so attached to it that you actually stop improving upon what you previously built.
Other times developers will consider their code an art and think of it as very prestigious work, but you do want to be flexible and listen to other people and continuously get input from others.
Another team member may have come up with a solution to a problem that wasn't what you thought of.
Christine: Absolutely. There's nothing more satisfying than when somebody on our team has a problem and three of us get together and we just sit down and hash it out and finally some solution is created.
It feels awesome to know you are surrounded by others whom you can rely on for help when appropriate.
4) Excellent Communication Skills
Christine: Having excellent communication skills is incredibly important for any job that you're in.
In terms of being a web developer, it can be really easy to go silent with your work and feel the need to separate from anyone who isn't in your field.
However, if you have a problem that you're running into, or if you realize something just isn't going to work, then you know you have to speak up and communicate what the problem is to your team and why you can't solve it -- or, if there's something that needs to pivot in direction and change, you need to be vocal.
Kyle, maybe you could talk to this.
I think being a web developer doesn't give you an excuse to tie yourself down to your work.
You need to be open with your team and communicate what you're working on and impediments your running into so your team knows what's going on.
Kyle: Yeah. It's definitely key in order to be able to communicate effectively because when you don't, breakdowns happen really, really quickly and in a field that's time sensitive as this, with clients waiting under the lines and what not like that, you literally can't have a single breakdown in the entire process. Staying on top of what's going on with your own work and your team members creates a more open environment too where it becomes too comfortable to discuss issues your having.
You need to be able to communicate effectively and properly with your clients too, especially if your client facing. Otherwise, it's going to create massive headaches down the road.
Christine: Absolutely, it's just an important skill that you usually learn on the fly.
I think the important thing is just to remember we're all kind of human at the end of the day. As a developer, you need to understand some team members won't understand what you're talking about, especially when you get technical. When this happens, you need to make sure to slow down and try getting your point across differently.
Tim: Yeah, often developers will sort of come to a solution on their own and then instantly think that everyone else is on the same page as them. So obviously, that's never realistically the case.
It's always important to make sure that the developer's ability to share and communicate with the rest of the team, as well as the client or anyone working outside of the company to make sure everyone's behind you.
In addition to having the skill to comfortably communicate with clients and things like that, it's also more about communicating, internally being patient with your team and just making sure that everyone is working towards the same goal the entire time.
Christine: Definitely. I think you put that really well - making sure that everyone is working towards the same goal. Otherwise, you know everyone's kind of like running around with their heads cut off and you're never going to get anywhere that way, are you?
Tim: Yeah and Kyle also mentions plausibility which is being able to review a design before or you know, if you're doing an actual design.
Review functionality before you actually get started on the project just to make sure that you're not going to run into any walls along the way. You should also think ahead of time about how you're able to develop them so that if you need to pivot you do so early on rather than when you're so far ahead.
Sometimes that would even be a long time but just taking a couple minutes to look at what's planned for a project and just try to come up with any possible snags that you might hit along the way, could actually save hours or even days worth of work. So it's not actually a waste of time, spending that extra time to plan ahead when in the end you're actually making everything more efficient.
Christine: Yeah you should sit down like for ten minutes with you and a client just talk something out, rather than taking four hours to be like, "Oh I got this" and then still not get it done.
That's four hours of your time and money not spent out of like a client's pocket. I think those things are really important to consider and why communication skills are just so critical.
5) Dependable Project Completer
Christine: So moving on to the next point, having a track record.
This doesn’t mean being the best developer in the entire universe and doing all the things, this is about beings someone who has a willingness to get things done.
I think when we're working on projects, depending on like you level of skillset, you might kind of get like stuck in tunnel vision and you're kind of just being a little bit lazy fare about it.
What's really important here is just being someone who has been able to get things done on like deadlines for a client cause at the end of the day, they need whatever that thing is because they need to hit whatever goal. If you know they don't have that thing, then you know that goal might not be hit.
I'm not going to pick on anyone this time but if someone would like to speak to why again, deadlines are so important, your experience with deadlines and what you've kind of found with them.
Tim: Yeah so you know essentially what it comes down to is reliability and determination. At IMPACT, we have our three core values which are passion and helpfulness and dependability. So it's essentially just ensuring that you're working with a developer who is going to be able to complete the project and help guide you from start to finish.
Like we mentioned just before, sometimes you fall right into issues and usually, you just have to power through them which could be very demeaning when you actually run into multiple problems and you know you're on your fifth attempt and trying to solve a problem and you're ready to give up.
However, there's always a way around it and you sort of just have to continue pushing it until you get there.
Obviously, that's not an ideal situation and it's something you want to avoid, but it is the reality of the way that this industry works.
So, in general, for normal projects, you essentially just want someone that you can depend on to be able to catch as many problems as possible before the work starts.
You want to deliver a good product so that in the end you're not catching problems and delaying timelines.
There's also multiple levels of helpfulness. It's not just helping to help your teammates recover from something or helping pick on work, but it's actually setting them up for success as well. So a lot of times with code, there are multiple variations of things like the interface. So there might be the backend of the CMS as well as the front-end that the user sees.
So for a developer, it's pretty critical that they try and set up everyone for success and with that, it might mean changing the layout for the backend user so that their thinking of not only the end user but also the person who's actually procuring and entering the content.
So there's a lot of gloomy parts that go into development and of course, you want to make sure you have someone reliable who's going to think of these things and come up with the problems before they actually come to surface.
Christine: Yeah and a lot of this comes with practice you know. I mean once you sort of find yourself in these problems, you'll find your way out of them but it's going to obviously take time and once you mature, you'll find your way out it a lot easier.
6) Having a Problem Solving Mindset
Christine: So moving on to point number six which I think is kind of interesting. This one is about having raw smarts to be able to figure out code.
Essentially not everyone's brain thinks in code. Some people are a bit more visual some people are more mathematical. A really great developer is one who is able to look at a lot of these issues like a big math problem and figure it out.
This comes in handy especially when you're getting with more complex code. Maybe, Kyle, you can talk for this because you're really good at just like kind of like spewing out like a bunch of different libraries of code or different platforms that you can use to fix problems. And I guess that just comes kind of with like learning how to do everything.
Kyle: I would say that basically what it boils down to is I am a smart lazy person. I would consider myself someone who knows a fair bit about a lot of different things which is exactly what this point is talking about.
I find that the more I learn regardless of whether it seems to be related or not, it actually does end up being related at the end of the day. The more time I put into learning, the better I get overall. So it's definitely something that should be on the table at all times and you definitely want to be constantly learning. You never want to be in a stagnant state.
Tim: Yeah, I think I remember one of my former professors told me probably one of the most valuable things that any teacher has ever told me which was when looking for jobs. Personally, I went to a liberal arts school and so this is applicable. And of course this isn't true for all situations, but she actually told me about a lot of times, what employers actually need is someone who branched out a little bit in school.
Even though they may have been in the technical side of the art side of things, they want people who have taken English courses that you know how to write, or Math courses even if they're not in a math field, just so that they know a little bit more about things.
Sometimes you're so ingrained in your one trained skill, you might overlook things that other people might know. One example is language. If you don't know anything about any other foreign languages, you may accidentally do something like a design on the mockup that actually has something that might be offensive to another culture. It's not something that's going to happen all the time, but branching out gives you a better idea of what other people deal with day to day, even if it's just the most basics.
Having a broad understanding of the way the whole machine works is going to give you a lot more insight into the goals and the way things operate and it does if you just know a lot about one little part of it.
Christine: Yeah, no definitely. I think sometimes we get fixed on the mindset that we have to become the perfect or the best person at this one thing. But in reality, if you do that then you're missing you know what's outside the box that could possibly help that thing you're trying to do.
Tim: And of course on that note, if you're hiring anyone you always want to consider their career path and what the end goal might be for them. If you're hiring someone who's just going to be entry level or even if they just come in as an implementer, they may eventually want to move up to a management position. If you have someone who's so specialized in their one field, they might not have any other path to grow in. Whereas someone who has branched out a little bit might be better suited for that.
Christine: Yeah, If they move up into a more manager position, they know the roles that they are trying to control them. This allows them to relate to those people a bit more.
7) Great Time and Task Management
Christine: So I want to move on to the last point which is again, something that we can apply to almost any position, and it's having great time and task management.
Being in an agency field and obviously many others, you have a lot of deadlines and projects that you have to do. Some of those are small, some of those are big and it can be a challenge to figure out what is the highest priority and lowest priority and how do you get everything done.
Here at IMPACT, we work in SCRUM and have sprints every week that help us manage that. So we may have ten different tasks that we have to do one week from now. This allows us to hone in on the things that have to get done, but obviously, even with those ten tasks, there's are micro things that you have to get done within them so that they are considered done.
But I think one of you could talk about this is a really important skill in general for anyone, especially those that are entry level. When bringing on someone new, you want to know that person is going to be able to manage their work. Otherwise, they're going to end up like dropping the ball maybe too many times and then it just causes a problem for everyone.
Tim: Yeah so obviously this is going to be a little bit different for each company but I think what it comes down to is you want someone who's going to be able to work on the same schedule as you and of course, at IMPACT we have a lot of remote employees here. Some of them work in different times and out of those people, some of them choose to work on hours at their time zone which means getting up say, three hours earlier, and then some of them get up at their normal time and work on a different hourly basis. But for both of them, it works out fine.
I think what it comes down to is ensuring that you're aligned with your team so that you're setting them up for success and not causing a poor lack of communication. So, even if you aren't working at the same hours that they are, you're preparing them for their workday and giving them everything they need so that they're not going to run into impediments because of course, the worst thing that could possibly happen is they run into an issue and need to communicate something with an employee who's not available at that time.
So that's one part of it and then, of course, another part is being punctual and making sure you're showing up to meetings on time and things like that. Obviously, sometimes we'll have clients who are late to meetings, forget meetings, or skip meetings and that happens. But, we're always going to be a lot more attentive to our time so that if we're late to a meeting, we're going to apologize. But if they're late to a meeting, we're going to make sure that it's not the end of the world and we still cover everything we need to.
I mean essentially it's just making sure that you, the developer, or whomever the employees are this case, are being considerate of their team's time, even if they're working on a different time zone.
Christine: Yeah and again, here at IMPACT we do have remote employees and you know regardless of what sort of time zone situation that they decide to kind of take, whether it's sticking with our time zone or sticking with their time zone, as long as they're still communicating with their team members, getting stuff done, and making sure that they communicate. Then, your team will continue to run as a well-oiled machine.
Kyle: I do think in general, it is usually easier if everyone's in the same time zone.
Christine: Oh yeah, absolutely.
Kyle: Just because obviously, you kind of have the issue of people being up at different hours and everything just sort of operates as you know at a normal pace.
Christine: Yeah definitely. I think what's crazy, even right now is we actually have one team member who works all the way out in Alaska. You know who you are if you're listening! But he does an amazing job at making sure that he's getting his work done and he's talking to his team members even though he's several hours behind. But you know, it can be tough but you know it's definitely doable so long as obviously, you're working for a company that you really love and that you feel passionate in getting the work done on time.
So that actually brings us to the end of this discussion. I wanted to thank Kyle and Tim again for joining me today to talk about this important topic and we hope to see you guys soon. Take care, everyone!
Elements of a Great They Ask, You Answer Website
Transform your website into your best salesperson and get set up for inbound marketing success!
In this course, you’ll learn:
What content and features your website needs to succeed with inbound marketing
How to design your website to best educate your audience
How to gradually make improvements or redesign entire elements of the website