My First Year As a Software Developer Reviewed In 30 Questions!
Table of contents
- Overall, do you think it was successful?
- How did you end up in your role at Hashnode?
- What features and other things did you work on?
- Which feature are you most proud of?
- What kind of struggles did you experience?
- Do you enjoy working from home?
- Can you share one tip you've learned while working remotely?
- How was the onboarding process?
- What's one superpower you've noticed from your co-workers?
- Do I think it's important to spend non-work related time with your fellow remote workers?
- What was your scariest moment?
- What tool or service do you enjoy using the most?
- What tool or service do you enjoy using the least?
- What was the most memorable bug fixing experience?
- How can you contribute more to Hashnode in the future?
- What was your worst period of the year and why?
- What is it like working in a small team startup?
- Did you experience Imposter Syndrome?
- What does your daily work routine look like?
- How did the job affect your need to code outside of work?
- What do you think is the most important skill to have in a remote async team?
- Based on your experience, share one thing that helped you produce better code?
- How much time do you spend in meetings?
- What do you see yourself moving towards?
- Do you think a fully remote role is suitable for an early career developer?
- Can you share some work related terms/phrases you didn't know before you started your role?
- What is one selfish thing I want to see from Hashnode?
- Based on your experience, can you share one piece of advice to help other developers find their first role?
- Ok, so where did your articles go this year?
- Finally, if you could give yourself of 1 year ago some advice, what would it be?
- The End
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.
Overall, do you think it was successful?
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.
How did you end up in your role at Hashnode?
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.
- I didn't end up applying for any roles before landing the job.
- I didn't need to build a portfolio, my Hashnode blog was more effective and time-efficient than any portfolio I could have ever spent time building.
- Being a regular user of the product was essential.
- Connecting with tech related people through Twitter is a great way of finding opportunities. Help recruiters find you first. This is especially helpful when trying to break into the field.
- There were no algorithm tests in the hiring process.
- I had a take home challenge to complete over the weekend which was very much related to things you might end up doing on the job.
- You can do it too! - Hashnode Careers Page
What features and other things did you work on?
- Table of Contents
- Article scheduling
- Unsplash integration for cover images
- Recover deleted articles
- 2021 End-of-year awards and review
- Several team publication updates
- Editor updates and bug fixes
- End-to-end testing setup and CI integration
- Blogs migration contribution
As well as several more bug fixes, tech debt, and documentation work.
Which feature are you most proud of?
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.
What kind of struggles did you experience?
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.
Do you enjoy working from home?
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.
- Jumping in the shower on a lunch break.
- Cooking lunch fresh.
- Always being home for deliveries.
- Not wasting time travelling to and from work.
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.
Can you share one tip you've learned while working remotely?
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.
How was the onboarding process?
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.
What's one superpower you've noticed from your co-workers?
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.
Do I think it's important to spend non-work related time with your fellow remote workers?
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.
What was your scariest moment?
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.
What tool or service do you enjoy using the most?
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.
What tool or service do you enjoy using the least?
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.
What was the most memorable bug fixing experience?
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.
How can you contribute more to Hashnode in the future?
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.
What was your worst period of the year and why?
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.
What is it like working in a small team startup?
- Extremely exciting.
- Always changing and progressing forward.
- Very rewarding with large variation of work.
- Fast moving.
Did you experience Imposter Syndrome?
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.
What does your daily work routine look like?
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.
How did the job affect your need to code outside of work?
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.
What do you think is the most important skill to have in a remote async team?
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.
Based on your experience, share one thing that helped you produce better code?
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.
How much time do you spend in meetings?
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.
What do you see yourself moving towards?
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.
Do you think a fully remote role is suitable for an early career developer?
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:
- You should be a responsible person and capable of managing your time and effort without a direct push from someone.
- Get to know your teammates quickly, this will help you feel comfortable asking for help.
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.
Can you share some work related terms/phrases you didn't know before you started your role?
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.
- Sprints
- Scrum framework & Agile methodology
- Burndown & velocity charts
- Stories, Epics, Bugs & Initiatives
- Standup
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.
What is one selfish thing I want to see from Hashnode?
Hashnode hat swag ๐งข๐
Based on your experience, can you share one piece of advice to help other developers find their first role?
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:
- Why you used certain tech over alternatives.
- What you struggled with.
- What you would do differently next time.
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.
Ok, so where did your articles go this year?
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.
Finally, if you could give yourself of 1 year ago some advice, what would it be?
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.
- Did you avoid making a mistake you recently made?
- Did you ask for help with something you struggled with?
- Are you proud of something you built?
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!
The End
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 ๐