You may have taught yourself, taken a Bootcamp (thinking about one? => join a class with me as your instructor at General Assembly), or received a computer science degree. Regardless, your knowledge is only as good as other people's awareness and understanding that you have it.
The purpose of this post is to discuss tips and strategies to help you establish your brand and improve your skills as a developer. The result of building a brand can be the following.
- Getting a job
- Finding clients for your freelancing business
- Finding consulting clients
- Being invited to highly visible speaking engagements
All of the tips and strategies discussed are things that should be broadcast on your portfolio and LinkedIn profiles.
This is the central non-negotiable aspect of building your ability to show your knowledge. Whether it's making a functioning deployed application or creating your own frontend and backend libraries (Express, Lodash and React exist, but creating a similar library shows a deeper appreciation for programming and shows that you'd be very comfortable working with existing libraries.) These projects should not only exist but be front and center on your portfolio page, have blog posts written about their creation, have quality documentation and be the subject of Linkedin posts updating your network on your progress.
- You can also show off your code with links to repl.it, codepen.io, codesandbox.io, runkit.io, etc.
I was never a big LinkedIn user till I became a developer. The developer community is super active on LinkedIn, so taking the time to add developers, designers and tech recruiters on LinkedIn is a great way to build an audience for your posts. Your posts shouldn't always highlight your work; share resources your network may enjoy, such as coding tips you found useful or positive encouraging messages. Those high engagement added value posts would make sure the posts where you establish your brand get more visibility.
Especially if you are looking to be hired as a developer, very likely those considering you will look at your GitHub to get an idea of who you are as a coder. Make sure to have a regular commit history (ideally daily commits, but shoot for 4/7 days of the week). Also, make sure to customize your profile by creating a readme in a repo named after your username to make your GitHub profile more engaging.
Some tips for improving your GitHub commit history:
- Create a Repo where you save your solutions from coding challenges
- Create a markdown blog with Gatsby(React), Gridsome(Vue), Scully(Angular), or Sapper(Svelte); that way, your blog posts add to your commit history, and you practice writing markdown.
If you follow my advice and use a static site generator to create a markdown blog, you'll get several benefits.
- Better SEO
- Ability to practice your frontend design depending on which SSG you choose
- Practice Writing Markdown, which is useful for writing documentation later
- Commits to your GitHub
The static site generator for each frontend framework I have listed below:
My Blog, tuts.alexmercedcoder.com, is created using Gatsby
Blog posts are a great way to practice communicating about code and demonstrating your knowledge. Never a bad idea to narrow your brand as a Subject Matter Expert (SME) and write several tutorials about a particular framework or language. This allows you to solidify your understanding of your favorite tools and build your brand as an SME.
Stack Overflow is the one-stop-shop for developers to ask questions and give answers. Linking your stack Overflow profile in your portfolio is not a bad idea for the following reasons.
The way you ask questions is a signal of understanding and ability to communicate. A good question elaborates on the attempts to solve the problem, gives the appropriate code snippets to help those assisting the ability to solve the problem. Employers don't need every developer to know everything but their ability to communicate bottlenecks to their team matters, and this is an excellent way to demonstrate it.
Answering questions also help you demonstrate your expertise and show what you can contribute to your team.
Before I get into creating podcasts for branding, let me emphasize the benefit of listening to podcasts in immersing yourself in developer terminology and culture to help you better sound like a long time developer. Below is a list of development podcasts I recommend listening to:
- Web Dev 101 (This is my podcast, available on iTunes/Stitcher/Spotify/Google Play)
- CodeNewbie Podcast
- Command Line Heroes
- Django Chat
- Full Stack Radio
- Go Time
- Going Linux
- HTML All the Things
- How to Code Well
- Programming Throwdown
- Python Bytes
- React Native Radio
- Ruby on Rails Podcast
- Swift Unwrapped
- Talk Python to Me
- Talking Kotlin
- Thoughts on Functional Programming
That should give you plenty to immerse yourself in the terminology and culture of development. Even though there are already so many podcasts, there is still room for you to start your own. Benefits of doing so
- Another avenue to build your brand
- Practice talking about code, which will make for smoother interviews
- Potential Revenue Stream if it grows
Audio can be a tricky place for tutorials, so here are tips when considering what to cover in a podcast.
Being non-visual, focus on concepts and terms, and less on syntax, this is a great avenue to help people understand code in concept
Focus your podcast on a specific language or framework and interview people who work with that tech. This helps establish you as an SME and will make it easier to think of show ideas.
The easiest way to start a podcast is using Anchor.FM. Anchor provides a lot of the tools to record and distribute your podcast without much effort so you can focus on your content.
There is always a need for more tutorials in blogs and video cause tech is often changing, and old tutorials go stale. Creating tutorial videos in the area you are specializing in, whether a basic introduction or project walkthrough, allows potential employers or clients to see you in action and will enable you to practice talking code, which is always good. (You can find my tutorial videos at devNursery.com)
You can also post the audio from your podcast as videos on youtube for additional content reach. (Once you create a blog post, video, or podcast, it is straightforward to cross-share the content, maximizing space)
Websites like CodeWars.com or HackerRank.com are great places to find coding challenges that'll help you get more familiar with the syntax of a particular language along with thinking programmatically. Building up your rank on these websites and linking it to your portfolio is a good way to demonstrate your effort in developing your coding skills.
I recommend taking your solutions and posting them to a "coding challenges" repo on GitHub with a link to the particular challenge in a code comment. This will allow those looking at your GitHub profile to see your coding practice and help populate your GitHub with additional commits for the commit heat map.
One way to breakthrough is referrals and reputation. Doing a few free projects like building a web application for the local restaurant can help give you a track record to jump from.
Learning how to use Netlify CMS with Static Site Generators can be an excellent way to create modern web applications for small clients (restaurants, photographers, etc.) where they can have a backend console to manage the data themselves. Hosting a static site even with a decent amount of traffic can be free, and Netlify CMS creates a graphical backend for essential blogs and webpages. A powerful combination for freelancing.
Headless Solutions like Strapi, ButterCMS, Contentful, and GraphCMS are also great platforms for providing custom backend solutions that clients can manage on their own once you've built them out. WordPress also has its own built in API, so you can theoretically use WordPress to serve a React/Vue/Angular app. Strapi and WordPress would require finding a host; ButterCMS/Contentful/GraphCMS provides their hosting for a price (Contentful/GraphCMS has a free tier, ButterCMS provides a trial and a cheaper first tier).
So you are in the "need more experience" zone... well... then create more experience. Hook up with an aspiring UX designer and another aspiring developer or two and build out an application as a team under a cool name like "Blue Fire Digital" or "Screaming Panda Development." Document the development of the application and your time in this outfit as a job on your resume. You are coding; you are working in a team; it is an experience even if you are not paid. If the application you build is cool enough, it may become a startup in itself or be an entry to people contracting your outfit for development work resulting in you creating your job.
This is just the tip of the iceberg, but use the above to give you plenty of ways to use your time in building a long and fruitful development career.