My First Year As a Software Developer Reviewed In 30 Questions!

Search for a command to run...

Though this article was written a long time ago, it was insightful reading now.
Congratulations Kieran Roberts you have found a lot of success keep up the good work!
Big Congratulations!
Thank you so much for sharing. This piece I'd really motivating. I know I can achieve my tech dreams too.
Congratulations Kieran Roberts ⚡️👏✨. It's a great pleasure to collaborate with you. Looking forward to many more years of awesomeness 🔥
Great article!
A very inspirational read. After I finish writing this message I will be hitting the books in the hopes that one day I will be able to accomplish my own goals.
Thanks!
Thanks, I'm glad you liked it. Hope your learning goes well Matthew 🙌
Thank you for sharing this, Kieran. I intend to start writing as soon as I can and I'm taking my time to read various articles to see how I can go about it. Your article is the first I'm coming across and I'm so so fueled up to start. Thank you.
I'm glad I could help Adenuga!
I wrote this article a little while back about my process for writing articles, it might be helpful to help you get going.
Congratulations Kieran and thank you for sharing this. This article encouraged me to continue writing. You are doing great, keep going.
Awesome Carlos, that is great to hear. Encouraging others is the thing that gives me the most satisfaction from writing. All the best!
Congratulations again on completing the first year! So glad to have you on the team, Kieran! Love the way you have elaborated things with this Q & A format!
Great article, Kieran!
Awesome to see that despite some difficulties, you were able to succeed.
Looking forward to seeing more articles from you after such a long break from writing. :)
Thanks dude! Ye was a while, I was a little shocked when I realised it was almost a year 😬.
More to come though 👊
Introducing cvrsnap.com 🫰. CvrSnap is a free tool I recently built as a small side project and it lets you quickly create blog post cover images that you can download as a PNG. It’s designed to help you build something that looks good quickly so you...

I have been working as a Software Engineer in React codebases for almost 4 years now. In that time I have worked closely with many Senior Engineers. Reviewing code, having my own code reviewed, and general collaboration. The way I write code and orga...

I wanted to build a new personal developer portfolio for myself. Somewhere to showcase my skills, experience, projects etc. It is now deployed at kieranroberts.dev and I wanted to write up a small case study reflecting on the project. Talk about what...

As a frontend-focused developer, you'll spend a significant portion of your career working on navigation bars. These essential components are integral to almost every modern website and come in various implementations. In this tutorial we will build ...

Sidenote This month on Hashnode we have been running the #DebuggingFeb Writeathon. As a software developer at Hashnode, I wanted to join in. Of course, I won't be eligible for any prizes of course but it's a great opportunity to share knowledge with ...

My first year as a Software Developer at Hashnode recently passed and I want to share it with you. I thought it would a good idea to format this into 30 simple questions and try to offer tips and suggestions for anyone reading that might benefit from what I learned.
I am a self taught developer who began learning to code in March 2020, before landing a Full Stack Developer role here at Hashnode in May the following year.
This is my first year as a Software Developer reviewed in 30 questions.
Yes, absolutely.
I had my ups and downs, without doubt. There were moments I doubted myself, even moments I thought I was letting others down.
Despite this, I know that I was able to deliver in the end. I feel like I contributed some really cool additions to the product. Specifically on the features side which we pushed hard the last year.
Now I know that I belong in my role, and for my first year, that was always going to be enough for me to be happy that it was successful. My job now is kick on and push things further.
Sandeep (Co-Founder of Hashnode) reached out to me on Twitter and offered an interview for the role of Full Stack Developer as he suggested I could be a fit for the team. Fortunately for me, those interviews went pretty well and I was hired soon after.
As well as several more bug fixes, tech debt, and documentation work.
I think it would be the Table of Contents feature.
It was a lot of fun to build, offered an interesting challenge in trying to generate the headings in the correct structure, and was one of my earliest significant contributions. You never forget your first.

We still see some really great feedback for this feature as well. Our users are responsible for driving many of the features we build. Without that I would be building for myself and there's not as much fun to be had in that case.
Where do I start.
I struggled a little with communication at times. It's easy to feel as though you don't want to bother someone with your 'stupid' questions despite people stressing otherwise. Or maybe you feel like you can figure it out yourself and before you know it, 3 hours have passed and you're still in the same spot. It can often be the case that 5 lines of code take 50,000 lines of thought and it's easy to get lost in it all.
You soon learn that over-communicating is key and I was encouraged to do so. We're fortunate to have a culture of open communication at Hashnode where sharing discussions, problems, and any general questions are encouraged and everyone is extremely helpful.
I would sometimes also make simple mistakes when trying to deliver within a tight timeframe. I learned the hard way that the smallest of changes can have effects that can't be anticipated. Any change has to be verified thoroughly, even if you think it can't possibly affect things.
Surely I'm not the only one who has shipped 'fixes' only to later find out that it ended up breaking something else, or not working exactly as I had thought it was. That has probably been the most demoralising thing I've done.
But we all make mistakes, it's our job to learn from then so we can make less mistakes moving forward.
I love it, most of the time.
It's my first experience working from home outside of school or university and I'm not sure I ever want to go back. It's the little things for me.
There is a part of me that sometimes misses the jokes and general banter you can have in person, but the benefits definitely outweigh the alternative, for me at least.
Work to a schedule that works for you within the boundaries you're given, and don't feel bad about having a cutoff point.
Just because you work from home, does not mean you're always on call (unless you are actually on-call of course). It's easier to separate yourself from work when your in-office but it's more difficult to switch off while working from home.
It's ok to close your laptop at the end of the day and get back to something on your schedule. Try leaving the office at the end of the day to create that separation. I like spending the end of the day outside if the weather permits.
Keep your mind fresh and excited for the times when you should be working. At least for me, spending time on my other interests outside of work hours helps keep me fresh and motivated for work. I know the feeling of burnout and trust me, you don't want it.
Extremely fun, but difficult at times.
When I joined, the team was a lot smaller than it is now. Up to that point, I think there hadn't been the need to have a fleshed out onboarding process. It was a smaller early stage startup after all, so of course that's understandable.
There were also few processes in place at the time for things like work tracking, code review, and so on. Documentation was lacking too but despite this, everyone on the team was extremely helpful and were also open to any questions or struggles I was facing.
We have now seen many new members join in various roles over the last 9 months and so the team have made a big effort to get the proper processes and documentation in place. Onboarding now would have been a smoother process for sure.
Knowing the right questions to ask.
It sounds strange to say that I often didn't feel like I knew what questions I should have been asking. Experienced developers are really good at asking the right questions. If you know, you know.
Absolutely
I love joining our team fun calls where we usually end up chatting about all sorts of stuff. Sometimes over pizza, and occasionally we will end up in a game of Scribble.
Vamsi is the resident Hashnode Scribble champ. I'm a very competitive person so that pains me to admit. I did win once though and I'll cling onto that forever. Never forget.

We can often feel isolated as remote workers and sometimes it does the world of good to talk face-to-face with your team about non-work related stuff. Especially great at the end of a tough day.
I could say my first day on the job, but that's obvious so I'll choose something else.
Personally deploying to production for the first time.
Earlier on my code would often be deployed to production by the reviewer, but we have since moved on to a different review and deployment process that helps us move faster as a team.
My first deployment didn't have any user facing changes. I was just merging some test related code but it didn't stop me worrying I would somehow break something. It didn't help that Sentry suffered some downtime while I was merging which caused the initial preview build to fail.
This gave me a small panic attack, but all went well in the end.
Notion
Not because there's anything specific I like about Notion, but because I enjoy the act of writing documentation. We currently use Notion for our in-house documentation. It's a nice change of pace from writing code and combines technical skills with writing and teaching which I think suits my strengths.
Jira
I appreciate it's a much needed tool for software teams and I don't dislike using it anymore, but I had to choose something.
The editor scroll jump bug, definitely.
There was a bug that caused the editor to do an instant scroll when hitting the enter key, scrolling to a position where the cursor would now be at the top of the textbox. It was as random an act as is seemingly possible in our field. Sometimes it would jump and sometimes not, with little consistency to be able to find a pattern.
Eventually I noticed similar behaviour on other sites. I had an 'ahaa!' moment when I was opening a GitHub pull request and noticed a similar event.
It was browser specific issue that affected textboxes and required a workaround fix in our current situation. I'll never forget the pain this bug caused me trying to understand why it was happening.
I'm thinking of writing an article about this in the future so I won't give it all away just yet.
Get back into writing and social sharing.
Decide on my next learning path.
This is a question I have been asking myself recently. Now I feel settled in my role, I want to take the next steps forward. For me, and for the product.
Writing took a backseat this year. I focused on trying to become a valued member of the development team. Code and processes were my first priority. Recently I published my first article to the Hashnode Engineering blog and I'm excited to contribute more often.
I also want to focus on some learning path. I'm interested in cloud computing and have started exploring this more with AWS recently. Here at Hashnode, they are extremely helpful with supporting team members in advancing their skills and I look forward to taking advantage of this in the next year so I can put what I learn into practice.
Oct 2021 - Jan 2022
This three month period at the end of 2021 saw me moving from the UK to Ireland. It was a stressful period where my girlfriend and I were moving around temporary accommodation often while looking for something permanent. It was a difficult time to be in need of accommodation with high competition and low availability, all while continuing to work.
This definitely put a strain on me and my mood and I think it affected my work too. Thankfully, all of this is now behind me.
Of course, I think we all do.
There were days I didn't think I would get to the end of. My biggest bug-bear is feeling like a burden on others. I tried my best to alleviate that problem the most because I knew it had have the biggest affect on my mind.
Early on I would work the odd Saturday or Sunday, not because someone asked me but out of my own determination to keep up. I didn't want to fall behind on something that might affect others. It was my way of coping because I definitely wasn't going to let myself sink.
Another thing that helped me was the code review process. The more code review I took part in on both review and reviewee sides, the more I realised that I belong where I am. Taking part in reviews with different people helps you see many different perspectives and learn from others. It also allows you to share what you know and it was a great confidence boost when you can teach something.
It looks something like this 👇.

Around 30 mins before the first focus time is my chance to catch up on messages, emails, threads, and check if I have code reviews to do for the day. Lunch break usually takes place in-between focus times and some more casual tasks are reserved for the end of the day, after my final focus time.
I'd be lying if I said my desire to code outside of work hours wasn't affected. I was so focused on getting up to speed as a team member that I often didn't have the mental energy to want to write code in my spare time.
It's a normal thing to want to step away from the things you do everyday at work when you're off the clock, despite what Twitter might have you believe.
Slowly this has been coming back to me though. I have some project ideas in the brain backlog but I'm more inclined to focus on learning instead of building at the moment.
Communication
As I have come to learn, over-communicating is a necessity for async teams. I have been guilty of forgetting this at times in the last year.
It's super easy to get into a rut of single-minded focus on something, but a little update will go a long way. If something is taking longer than expected, that's fine. Communicate this and keep the person in the loop. You might even get some help as a result of the update/discussion.
Embrace code reviews.
Code reviews are an essential part of team development. Having regular constructive code reviews from different people is extremely helpful. We each bring something different to reviews and we can all learn something from each other.
Ask questions, be respectful, don't be overly nitpicky, and you'll be making forward strides in no time.
Google calendar is telling me I have an average of 1.7 hours per week.
The benefits of an async work culture mean you spend less time in meetings, and end up enjoying every minute of those meetings far more because it's a rarer occurrence.
I'm looking to get more experience with the cloud and serverless computing.
This approach is something we often employ at Hashnode for various purposes and I would like to get exposure on this front moving forward. I'm now testing the waters with AWS starting with the free resources related to the Cloud Practitioner certification. Looking forward to getting hands-on here in the future.
Yes, with a few caveats.
I was a little unsure how it would turn out having a fully remote role in my first job. I worried that I might not get the direction I needed, or that getting help would be difficult because I knew I'd need it.
I think the following are important if you're going to make the most of it:
A good idea is to have quick 1 on 1 calls with your team members (or at least those you'll be working closest with if you're working in a larger team/company) to get to know everyone individually. I didn't do this personally because I didn't know it was a common practice back then, but I would now if I was starting out again.
Many of these are related to working in a team environment which like me, you likely won't know much about before you start working in industry.
If any of these are unfamiliar to you, look them up and get a basic understanding of each. Having knowledge of this is useful and some of it might even come in handy in an interview situation.
Hashnode hat swag 🧢🙏
Start writing.
In my opinion (and many others), you make yourself a far more attractive prospect to potential employers if you maintain a consistently good blog. You can get started with this very easily here on Hashnode. If you didn't already know, this blog is a Hashnode blog. You can setup your very own blog/portfolio in minutes here.
Self built portfolio sites usually aren't that interesting and are often very similar from one to the next. We've all seen them a hundred times. I'll admit, they can be fun to build. It gives you your own corner of the internet where you can do what you want. But it's not really a learning exercise in most cases. I would say the time it would take to build your own portfolio can be better spent.
Consider writing about your personal projects in blog form as an alternative to just including links to the live site. Treat each project as a case study and share:
Take this personal project I built as an example of how you can share your projects in a little more detail:
Also write about related topics that interest you and show everyone you know what you're talking about. If you're self-taught like I am, It's your responsibility to prove you can do the job because you won't have the certificate to prove otherwise.
Feels rich of me to suggest writing to you when I've lost my way a bit on that front. I found it difficult to motivate myself to keep writing if I'm honest. My aim was to put my all my focus at getting up to speed as an engineer with code, processes and everything else as I previously mentioned.
Instead of writing, I'd spend time reading about something that would directly help me with work related stuff. I needed to do all this for myself and I've accepted that now.
It didn't help that I was also going through a stressful move as well. Now that I'm back in a good place, I would love to continue writing again. This is a good place to start.
Keep things in perspective by appreciating the small wins.
At times, our industry can be stressful and feel like it's moving at lightning speed, especially for early career developers. You feel like you're going nowhere. Maybe feel like you don't know what you're doing or if you belong where you are.
But keep things in perspective and take small steps.
Each positive small step you take should be valued and moves you closer to where you want to be. It won't happen over night, even over a year. Keep things in perspective and move forward!
That's all 30 questions covered. I can't believe I've already made it through the first year and I think it went about as well as I could have hoped for.
If you have any questions for me that I didn't cover already, leave them in the comments and I'll answer them.
Until next time 👋