A word of introduction
I feel excited. I wasn't planning to write any posts, have my own domain, or a portfolio page. Yet, here I am.
It just so happened that I misjudged myself. My initial goal was simple: to get better at what I do for a living - software engineering. To be specific, I wanted to learn more about how domains work and the different types of DNS records. Well, I got distracted along the way to say the least 😄. This reminds me of a quote by Yogi Berra:
You've got to be very careful if you don't know where you are going, because you might not get there.
In this article you will find the story of how my eagerness to learn became my portfolio page.
Hosting and custom domain
The idea to expand my knowledge about hosting started in my workplace. I was wondering how custom domains are set up and why we have to renew signed certificates (I wasn't even part of this - just overheard the requirement from the other team).
To be clear - I had only some basic knowledge from university. There is something called a DNS server; it translates human-readable strings to IP addresses used in the transportation layer in the internet. I could have described the difference between HTTP and HTTPS. Few other things.
Back then, I was completely sure that having your own domain involves significant cost and using hosting is an uphill battle. Oh boy, I was so wrong!
Far, far away in frontend land
We need to jump sideways for a moment. I started my career in a small company, where I was responsible for the entire application stack. In the very beginning, I worked with Angular. Shortly after, my first C# code was born. During those first few months, I was overjoyed by how much I was learning! It honestly felt like I gained more knowledge in six months of work than in three years at university. 🙂
Let’s fast forward a bit. After about two years, I had the chance to join a project written in Vue. A few months after that, I joined another project where the frontend was built with React. This gave me the opportunity to try out different frontend frameworks and really compare them. Honestly, React wasn’t my favorite at first. Being so accustomed to how Angular does things, React’s approach seemed way less obvious. However, as I delved deeper, I began to appreciate its flexibility. All the while, I was learning more about the C# and .NET ecosystem, which is where my main expertise lies.
This (somewhat long) story is here to give you a glimpse of my background. This story is important because…
Around the same time I decided to learn more about domains, a colleague mentioned Next.js to me. He was so enthusiastic about it - he spoke about it only in superlatives. He is also a developer, but with the way he described Next.js, maybe he should be a marketer? 😄
Anyway, I was intrigued. "I’ll learn it someday," I thought. But later. I didn't need it at the time. At least half a year passed, and I still hadn't read a single article about it.
Let's deploy it! 🚀
Before I bought my domain, I spent some time experimenting with Azure services (the cloud provider we use at my workplace). On my own, I created a simple static page with React. I used Azure DevOps to build and deploy my app to Azure Static Web Apps. It was a great experience to have any site available online. I was so proud of myself!
Looking back, I can’t fully explain why I decided to merge my “small experiment” with Azure and a custom domain. I think I was just annoyed by the URL Azure gave me - it was some random string with numbers, and kept changing every time I redeployed the app.
One random day, I decided to check the price of a domain. I was surprised to find out how cheap it can be! It didn’t take me long to buy one. I was so excited. Right away I started to learn how to connect it with Azure Static Web Apps. In fact, it took Azure longer to add the new DNS record for my domain than it took me to set it up. Another victory!
Vercel? What is that?
A streak of success in my development as a software engineer pushed me to try new things. I decided to dust off my Next.js project. Without overthinking what I wanted from it, I created my first Next.js app and started playing around - learning about routing, client components, and even introducing Tailwind CSS for the first time. I had a blast!
At some point, I realized that my Next.js project is way more advanced and fun than my static page on Azure. So, I began gathering information on how to deploy it to Azure. I was sure it would be a cakewalk. Well, it wasn’t! 😑
Looking for alternatives, I talked with my Team Lead, and learned about Vercel. Just a few YouTube videos later, I knew exactly what to do. It took me maybe an hour, and I had a working Next.js app on the internet. But then - classic déjà vu - I didn’t like the URL. This time, though, I had the knowledge and my own domain. Another few hours later and I could finally enjoy seeing the full glory of my Next.js app live at mateusz-dev.pl 🥳
Consistency is King 👑
This whole story could have simply ended there. I had no real intention of building any specific features or projects in my Next.js app. You can look up the date when I initially bought my domain - it was 2024-06-14. Now, as I’m writing this post, it’s been over a year.
One of the reasons for this is that my main programming language is C#. I’m not hyper-focused on frontend development. When you’re crafting the frontend for complex backend systems (often for small, internal clients), all those best practices for good UI/UX tend to fade into the background.
But here’s what I’ve realized: consistency in gaining experience every day is way more important than you might think. Let me use a classic comparison. If you get 1% better every day for an entire year, you end up nearly 38 times better by the year’s end!
The opposite is also true. If you get 1% worse every day (say, from a bad habit), you’ll only have about 3% of your original skill level left at the end of the year!
It's all great, but how does it relate to my portfolio page? Improvement is awesome, but without a clear goal or vision, you can end up with a whole bunch of random stuff. 😀
From Playground to Portfolio
I’ve lost count of how many components I’ve built. Some are really cool - yet don’t fit anywhere on my site. In hindsight, the day I decided to move away from a playground and actually turn my work into a portfolio was a pivotal moment. At first, it was just a vague idea. But once I had a clear deadline for showcasing my portfolio, I started taking it much more seriously: I created a plan, organized my ideas, and prioritized features I wanted to implement. It’s hard to measure the true impact of that decision, but it really was a game changer for me.
What did I learn from this process?
- Setting a clear goal and deadline transformed scattered experiments into a structured, purpose-driven project.
- Prioritizing features helped me focus on what really matters - sometimes less is more.
- Reflecting on small wins—like successfully connecting my domain or deploying a new feature - gave me the motivation to keep going.
Remember to set yourself a clear, well-defined goal within a specific timeframe. With so many ideas and possibilities, it’s easy to lose focus or feel overwhelmed. A good goal keeps you both focused and motivated.
One more thing about goals - they can change over time if you have a solid reason. The Pareto Principle is a great illustration: it says that 80% of the effects come from 20% of the causes. In practice, this means you can achieve a lot with relatively little effort, as long as you focus on the things that truly matter. So, it’s perfectly fine to drop or deprioritize features if they don’t support your main goal.
I’ve been told many times that an engineer isn’t the person who knows everything. Instead, it’s someone with a great approach to problem-solving: breaking complex tasks into smaller parts, organizing them, setting priorities, and then executing the plan. Sounds easy in theory - much harder in practice.
Conclusion
I hope you found something valuable in my story - I certainly did. It’s not just about technical skills, but also about mindset and approach. There’s so much we can accomplish, and so little time to do it all. The key is to stay focused, set clear goals, and remain consistent in your efforts.
I’m living proof that not everything has to be perfect from the start. It’s perfectly fine to begin small and grow as you go. Improvements and new features can always come later - the important thing is to take that first step and keep moving forward.
Don’t be afraid to experiment or try new things. You never know what you might discover or learn along the way. The most exciting outcomes often come when you keep pushing yourself to improve, day after day.
Thanks for reading! If you have any questions or want to share your own experiences, feel free to reach out. I’d love to hear from you.
Keep building your feature 🏗