Introduction
Building your own website might seem like a daunting task at first glance, but the rewards far outweigh the initial effort. As a developer, having a site of your own isn’t just about showing off your coding skills; it’s a dynamic platform that grows with you, enhancing your capabilities and opening new professional avenues. Whether you’re deepening your understanding of backend technologies, experimenting with new frontend frameworks, or simply putting your mark on the digital world, each step forward builds not just a website but a more robust career. Let's explore how this project can expand your skills, secure your digital presence, and elevate your career.
Benefits of Personal Website Projects
Here are three key benefits of building your own website as a software developer:
- Skill enhancement.
- Domain ownership.
- Professional visibility.
Skill Enhancement
Building a website enhances both specific and broad skill sets, a fact I've confirmed through personal experience. Even before my career formally began, web development skills I developed independently proved invaluable, and they continue to keep my abilities sharply honed.
One way to contextualize skill development is by examining the job market to identify in-demand skills. Teal has an article about this titled What Skills Does a Software Developer Need?. Teal breaks it down into hard and soft skills. In my own experience, working on a personal website has given me opportunities to practice the following skills:
- Hard skills
- More experience with version control systems. Specifically, AWS CodeCommit and GitHub which are not ones I use for my day-to-day career.
- Familiarity with cloud computing systems. Specifically, DigitalOcean and AWS.
- Proficiency in front-end technologies like JavaScript frameworks, HTML, and CSS. Specifically, Gatsby , Astro , Bulma , and React.
- Backend development skills like writing AWS Lambda functions.
- Competency in devops practices and tools by setting up version control and CI/CD pipelines.
- Soft skills
- Attention to detail as demonstrated through successful migrations to different platforms.
- Problem-solving and critical thinking as demonstrated through contributions to open-source (pull requests and issue creation).
- Written communication as demonstrated through writing technical blog posts.
- Continuous learning and growth mindset as demonstrated through the creation of the site, transitioning to different technologies, and continuing to explore new ways to improve.
The article from Teal reinforces the effectiveness of this type of project in the following quote:
Highlight your expertise in emerging technologies by creating content, such as blog posts or tutorials, that educates others on new programming languages or frameworks. Engage with the developer community through code reviews or by providing insightful feedback on platforms like GitHub.
Hired also has an interesting article titled Trends in Software Engineer Tech Skills: 2024 Report which quantifies what specific skills are most in demand based on data from 2023. For me, I get to use Java, JavaScript, and TypeScript regularly for my job as a backend software engineer. However, that wasn't always the case. When I first built this website I was very much a specialist in Java app development. However, building this site gave me greater exposure to JavaScript and TypeScript which prepared me to utilize those skills in the workplace. While I still use those tools for backend development, I'm able to continue to use this site for cross-disciplinary skill building by focusing on frontend development. Additionally, Gatsby gave me more opportunities to use GraphQL than I previously had and gave me good lessons I was able to take back to my day job. When looking at the skill trends presented in the article, I can see I'm well positioned to maintain competitiveness in the marketplace.
However, the beauty of this kind of project is that everyone's approach can be different and tailored to their own strengths. For some, it might make sense to use something WordPress so they can have more time to write, while others might want to go and build everything from scratch. Cross referencing in-demand skills with one's own strengths and weaknesses can help create an informed project vision.
Domain Ownership
Buying a domain essentially allows you to own a piece of the web temporarily. For a detailed explanation of domain ownership, see this concise blog post from Thompson Coburn LLP about domain ownership. Regardless of legal status, one can gain a feeling of ownership when building their own website. While working on my own website, I have been able to exercise complete creative control over the project and that gives me a very tangible sense of ownership.
Furthermore, the level of control extends to where the content is located. In an article titled Why Having a Domain Name is Important on domain.com, we see the following benefit given:
If you decide to change web hosting services, relocate to a different country, or shift to using your own in-house server, your domain name stays with you, allowing you to continue to build your brand without having to start all over.
In other words, owning a domain provides the freedom to control the project as much as one might wish. For example, someone might want to start their project on a website like GitHub Pages. GitHub Pages gives users default URLs. Suppose someone starts with a basic static blog, but finds they want to add dynamic content and need a server. Having a custom domain tied to the project would make it really easy to move to a new hosting provider which can support the new content. Without the domain, they'd have to go through an extra step of setting up redirects, and that might not be possible in some cases.
Of course, there are other benefits to owning a domain as well. An article titled Charting the course of your online empire: navigating domain management lists out several tangible benefits of domain name ownership. One very tangible benefit they enumerate is how a domain can enhance online visibility and reach. Here's a relevant quote from their article:
With a professional domain name, your social media and marketing efforts become more impactful.
Professional Visibility
Attending a recent tech event, I observed many professionals effectively managing their personal brands. This experience highlighted a missed opportunity in my own approach—lacking a direct way for contacts to reach me through my website, which is essential for increasing professional visibility and opening career opportunities.
Boxmode published an article that touches on this called 20 Experts Share the Benefits of Having a Personal Website. The individuals talk about things like standing out from the crowd and credibility. However, I did find this quote which resonated with me given my experience at the tech event:
Your website is like opening the door, welcoming them in with a warm, inviting atmosphere.
I think what all the individuals interviewed for that article have said is valid and relevant to building visibility as a professional. Standing out from the crowd is important and it's becoming increasingly important as time goes on. Anyone can create a social media account, but having a website makes a statement and offers a chance to create a personalized path to communication.
For example, in a Medium article titled The UX Design Portfolio That Got Me Hired the author, Kelly May Sheehan, wrote about designing and building a portfolio site. While the author isn't a software developer, the article is well-written and shows how thoughtful design can result in tangible outcomes. Ultimately, the point being made is one everyone can learn from and as the author states at the end of the article:
I successfully built a portfolio, showcasing my design skills in an appropriate manner intended for recruiters, and landed a job as a UX/UI Designer!
Challenges and Overcoming Them
Building a website comes with its challenges, including technical issues and creative blocks, which can significantly impact progress.
When it comes to technical problems, I've encountered a few. In fact, I've talked about some of these problems in previous posts. For example, one might run into errors being thrown from dependency packages. In some cases, there isn't a solution. Such instances may seem difficult, but they are opportunities in disguise. Perhaps an error being thrown is a chance to go and fix the problem on one's own. In fact, I've encountered such a scenario before and wrote about in a previous post. For these kinds of technical problems, there isn't one perfect solution. One needs to go over the source code they're using and understand the dependency.
As far as creative blocks go, one strategy I've come up with for getting over a block is to write about what I'm working on. In the case of my website, almost all of the content has been written using this strategy. Because building a website requires completing a wide array of tasks, one could write a post about completing each of those tasks as they complete them. For me, this makes perfect sense for content because my website is tech focused. Even if multiple people adopt this strategy, there's a very large number of combinations of technologies which could be used and written about.
Case Study: My Own Experience
When I first started my website, I wasn't entirely sure what it would look like. I had done a few other projects like trying to build my own content management system and my own survey app. However, while working on those projects I realized I wanted to create a blog.
However, I didn't exactly know what I would talk about. I fell for a trap of thinking I had to know everything about something to start writing. Fortunately, I became concious of devlogs and realized how powerful of a tool they could be to help me start writing. While I may not be an expert in some super niche library or advanced language, I am an expert in my own experiences. Hence, Logarithmic Spirals was created. The name of the site itself alludes to this self-descriptive nature. By working on the site, I get content for blog posts. By writing more blog posts I need to do more work on the site.
Through this process, I encountered one of my first technical challenges on the project which was creating a table of contents. I came to the realization I needed a table of contents by using the site like anyone else would. While working on the feature, I had to do a bit of research and look to others for guidance since it seemed like I would have to build my own component. Taking the time to build out the feature from scratch was very rewarding and instilled a sense of pride in having undertaken the project.
Since then, I've hit several major development milestones for the site. For example, some of these milestones were building a photo gallery, migrating to AWS Amplify, and upgrading to Bulma v1.
In hindsight, I really wish I had gotten this idea sooner and made a commitment to just start publishing something. Of course, the road to get here has been long and winding. I also have to emphasize the importance of quality, which I've ignored up to this point. One of the goals for a project like this should be continual improvement. Not every post is going to be a amazing, but one should always strive to do the best work they can with the resources they have available. Ultimately, the best way to get better at something is to just start doing it.
Advice for Non-Frontend Developers
As a backend developer, I advise other non-frontend developers to consider how much they want to engage with frontend technologies. If you're interested in honing your backend skills further perhaps consider using something like the Portfolio Starter Kit theme for NextJS from Vercel. You'd be able to get a project started and deployed very quickly without having to think too much about making the pages look presentable. On the other hand, those interested in spending more time focusing on frontend technologies might want to look into Astro. I used Astro to build this site and have enjoyed the simplicity of working on static pages.
Conclusion
In conclusion, building your own website is more than just a showcase of your technical prowess; it is a strategic step towards enhancing your career prospects, broadening your professional network, and establishing a robust digital presence. Whether you are a novice coder or a seasoned developer, the journey of creating and maintaining a personal website can significantly contribute to your professional growth. By embracing the challenges and continuously learning through the development process, you set yourself apart in the competitive tech industry. Start today—define your personal brand, showcase your unique skills, and take control of your professional narrative. After all, in the digital age, a well-crafted personal website is not just a tool; it's your professional calling card to the world.