Marketing Yourself As A Software Engineer

Setup your own website

One of the best things I did early in my career was to set up a website. I didn't go and make a custom one from the ground up. In fact I just created one on Squarespace, you can use any hosting platform but I would recommend one that is actually yours, unlike a place like medium which is never really yours. Having complete control over your own website is a must, you need to be able to have pages for projects you have worked on, it's nice to have a blog and an about section as well. One thing that I really like to have is a friends section. It sounds a little funny at first but it's a great way to build up a network. When people check your site out they can see other people you know personally and vice versa. In my case I met a guy really early in my career who became my mentor, we kept in touch and became great friends. He also had a website and was much further in his career, 10 years further in fact. This meant that having him in my friends section would mean that people looking at his website could potentially come to mine and people who looked at mine could see that I worked with some much smarter people than myself. It’s a way to show you socialise and interact with other people in the industry.

Whatever you use for your site make sure it's easy to set up, easy to maintain and something that can track analytics. It must be clean, work on all device sizes and not spam people to sign up to a newsletter. This is why I didn’t write my own site because I would then have to maintain it. Fixing small css or layout issues is just not something I have time for when I just want it to work! I can easily copy paste my article to the site text editor, add some images, make sure it's spaced properly and hit submit and it's out there. If I want to I can schedule the article to come out at a different time in the future. It's these simple features that just make my life easier. Some might say you can’t be a developer without creating your own site, but then they spend hours building and maintaining that, which is fine if that's what you want to do or if you want to have it as a portfolio piece but at the end of the day an employer will be more impressed with your writing on software topics than if you can put together a website by yourself.

One of the jobs I got I was pushing to get a title that was higher than I had ever been before and for a lot more money and the thing that I felt really impressed them based on the final interview and the reaction of the interviewees was seeing their face light up when I mentioned the website I had. I don’t have a very special site, but I have written dozens of articles, I have a living resume of projects I have worked on and a little blurb about myself. It really doesn’t take much, it just takes a little bit of time and effort and it pays huge dividends. Furthermore, if you decide you want to do a bit of freelance work it's a great place to send people. It’s just another piece of evidence to show that you know what you are doing.

Post code to places like github

This is not something I do that often, mainly because the code I'm writing is just for learning, but I would still encourage you to publish as much code as possible or contribute to a project. It becomes another layer of credibility for getting a job or a promotion. The more you build your reputation in the industry the easier it becomes to get raises, meet interesting people and to get new jobs. 

Another benefit of posting your code for others to see is that people might suggest improvements or you can reference it in your article to show people how to do something. There might be something in a new framework that you found tricky so you write an article and show some code of it and it helps a few people or maybe you in the future when you inevitably forget how to do it.

Write

Write, write, write. As much as you can write and post it publicly, people will eventually read it and when they do they might learn something which is ultimately what you should strive for. Teaching others is not only rewarding but enables you to solidify your understanding of a subject. It takes a lot of thought and work to compile your understanding of a subject into a coherent stream of words. You have to really understand what you are talking about as well as articulate it in a way that both brings people into the subject matter easily but expands their knowledge. 

It’s also fun, you can take a topic and dive as deep as you want with it, you can provide diagrams, code examples, or simply write about topics and your thoughts on them. Let your mind spill out onto the page about a topic. I don’t enjoy the time spent preparing code examples and images but I love writing so I will typically write about soft skills such as: teamwork, code review ethics, etc. It allows me to think deeply about a topic or problem and provide some information about it that will hopefully cause someone else to think or learn a new thing. 

You don’t need to write everyday or even every week, you can do it as you see fit, I go months without writing anything then I might write 3 or 4 in one go, it’s whatever you feel like. The most important thing is simply having it there for others to see. Even if no one really reads it or sees it, you still went through the process of formulating your ideas into a written form which is crucial for your job as a software engineer. 

Have a living resume on your website

My favourite part of my website is the living resume, it shows off the projects I have worked on, who it was for and a brief summary of them. It’s short, to the point and highlights exactly what I’ve done at a glance. You don’t need much, just the projects you have worked on, both paid and unpaid but keep it to only the most impactful projects, don’t include every single thing. At first this might be hard, or maybe impossible if you haven’t had a job in the industry yet but overtime you can add them one at a time and watch your resume grow. The hardest part about the living resume is writing it in a way that doesn’t simply say “worked on x”. You need to talk about exactly what you worked on, not what you were a part of but the biggest things you personally achieved on the project and do it in less than 100 words. It’s not easy, it takes time and many rewrites.

Share your website around, send it to all your job applications

It’s incredibly impressive when someone attaches a website to their application. When you look at two candidates and they are as close as possible, the one with the website will really stand out as that extra touch. It just shows a little extra than everyone else. Share your site with your friends and family as well as places like LinkedIn. It might be embarrassing to share it around but believe me it's worth it because they will hopefully provide feedback that can help it look and feel even better.

Do a talk or multiple

Do a talk, it's insanely nerve wracking but it feels incredible once it's done. Pick a topic that really interests you, deep dive into it then present at a local meetup. The skill of talking to a group of people will help you tremendously in your career, you will progress faster and farther than others simply by being able to talk to people higher up than you as well as to a large group. If you don’t have many meetups in your area, do some talks at work. A lot of companies will have brown bag sessions which are little lightning talks of 5-10 minutes where you can talk about any topic you like. Others have full blown 45 minute sessions where you can deep dive into a topic. It’s important to do these as often as you can even if it's simply to flesh out an idea and get some experience talking in front of a group of people. The further you go in your career the more you will need to present to others and the more confidence you will need to have to get your ideas across. Become that developer in your company that is the expert in an area, take that interest in some area and make what you are known for. I love Elixir, so everywhere I went I would try and get Elixir in the company, doing a talk on it I would become that “Elixir guy”. The practice of performing a talk in front of a group of people will be extremely helpful in your career.

The reason I put so much emphasis on marketing is because you can be the best programmer around but if no one knows you exist you won’t get much work!

Previous
Previous

Clean Code

Next
Next

SST Making serverless easier