yusufcodes

Home

My First Year as a Software Developer - a personal reflection

Personal Growth

Career Development

🗓 27/09/2021

Introduction

Monday 27th September 2021. Exactly one year ago from this date, I quit my role in retail, was starting the final year of my Computer Science degree, but more importantly: I started my first day as a Junior Developer at Morrow (formerly App Sapiens).

I had a lot of thoughts running through my mind at this point in time. Did I make a mistake leaving my retail job? Am I really cut out to work as a developer, especially as I was still finishing my degree? What if I get fired after a week, then I'll be left without any job? I'll stop there, otherwise we'll be here forever – hopefully you get the idea of how I was feeling: anxious.

It was a bit of a unique situation to be in, gaining a part-time role whilst finishing the final year of my degree. I was still quite shocked that I found this role before graduating (you can read more about how I landed the role here). Nevertheless, I was excited by the potential opportunities that could come from the role, and in this post I want to walk through the sorts of things I worked on, and subsequently, what I've learned from the experience, all within the space of this past year.

What I've Worked On 👨🏽‍💻

My First Project 🐣 (September 2020 - January 2021)

Before diving into the first project I worked on, I'll give a quick overview of the company I work for: we build React Native apps for clients across various different sections. I entered the business with some knowledge of JavaScript & React after self-teaching, having never worked with React Native.

As a result, my first project was actually working on the company's website, which was built with Gatsby & React. This was essentially why I was hired: the website needed some work, and this was the perfect opportunity for my employer to assess my abilities & see how I'd cope with the project. As this was an internal project, there was no major pressure that would normally exist on a client project, so this fit in well with my schedule as a university student. Below are the sorts of things I worked on:

  • Creating new pages in React
  • Pulling in new content through Netlify CMS
  • Restyling areas of the site as we went through some redesigns
  • Fixing any bugs that were occurring
  • Building a new "blog" section of the website: this included researching new CMS solutions, having a discussion with my manager about the various options, and moving forward with the option I thought was best (we ended up using Ghost CMS).
  • This first project was really important, because it exposed me to a lot of new things:

  • Using Gatsby (prior to this, I only used React on its own).
  • Using Git & GitHub in production: prior to working here, I hadn't ever worked across multiple branches or created Pull Requests before.
  • Learning TypeScript: I only knew vanilla JavaScript, so adapting to TypeScript was a little difficult at times. Fortunately, my knowledge of Java from university came in handy during this process as there are some similarities.
  • Whilst I was the only person working on the site, both my manager and other co-workers, who had previously worked on the website before, were always ready to help me in Slack. I'd have weekly calls with my manager to show the status of the Kanban board with all the tickets, and discuss next steps.

    The low pressure on the project gave me a chance to really learn and understand the ins-and-outs of React & TypeScript, and to get to know my new team at work, giving me the foundations I make use of in my role today.

    Moving Onto Client Projects 📈 (February - April 2021)

    As I finished up my work on the company website in January, an opportunity to start on my first React Native project came about. Coincidentally, I was also learning React Native at university around this time, so the timing was perfect! The role for me would be as a support engineer, dealing with the UI and UX of the application, whilst the main engineer dealt with the harder part of "making things work".

    Initially, I spent my time working on amending the screens we had in place to match the designs & requests from our client. As I became more familiar with React Native and the structure of the project, I started taking on more tickets related to functionality as well. This involved talking to our backend and rendering & manipulating the correct data, depending on the user who was logged in.

    This first client project was super daunting for me, it was the first "commercial" project I was working on, and we were in regular contact with the client on weekly calls. Fortunately, both my team & the client were super patient and understanding of my commitments (university), so allowed for me to do as much / little as I needed depending on how busy my studies became.

    This first project came to an end sometime in March, from which point, I moved onto my second client project. The setup was similar to this first project, where I was a support engineer, working to build out new screens based on designs from our client. I was able to transfer the knowledge gained on the first project to ease into the second project, as we have a standardised structure we follow when building apps.

    Taking a Break 🎓 (Mid-April – May 2021)

    As we entered the month of April, and I started this new second client project, it wasn't long until I needed to stop working to focus on my degree. I had my final deadlines approaching in May, and I was also preparing for the month of Ramadan, where I was due to abstain from any food or water during daylight hours as part of the Islamic month. I really did want to carry on working, but my project manager helped me realise it would make more sense to stop sooner to focus on these things which were more important.

    I spent this time finishing my dissertation, preparing for my showcase & finalising the product I was building. And then, I officially finished my Computer Science degree in May 2021 - spending the remainder of the month relaxing.

    Becoming a Full-Time Developer 👨🏽‍💼 (June 2021 - Present)

    In April, I was fortunate enough to receive an offer to join Morrow full-time, after working there part-time as a student. I happily accepted the offer after having a good experience part-time, and have been working here full-time since. I rejoined the client project I was working on part-time, and started up on a couple of other new project since.

    Advice To Myself - If I Did This Again 💭

  • The first month in the industry will feel hard: this is normal. Moving from a different industry (retail), adjusting to working from home, and writing code commercially - this is all very new & difficult.
  • Don't be afraid to reach out for help: in most cases, your colleagues will appreciate your forthcoming and honest attitude in areas you need help with. Help your team help you, so you can all win together!
  • Don't be so harsh on yourself: I was working part-time with new technologies, a new team, on top of studying towards the final year of my degree. My calendar was pretty jampacked at times with study sessions and work sessions. Despite this, I was overly critical on each piece of work I did, pressuring myself if things weren't perfect. This is counter-productive and only made me feel worse in the end! So, I'd try and avoid doing this if I was doing all of this again.
  • Try and feel more confident in yourself: to this day, I really struggle with my self-confidence as a developer. I've blogged about this before, but it really is an ongoing issue that I'm personally trying to work on. At the end of the day, especially as a junior, no one is expecting the world of you, so having a little faith in the abilities that you do have (even if its one or two things!) is better than putting yourself down.
  • Don't be afraid to take risks, especially whilst I'm young: when I received the job offer in September 2020, I probably spent longer than most people would debating whether I should leave the stable retail role I had. Whilst my concerns were legitimate (worrying about becoming jobless if this role did not work out), it certainly wasn't the end of the world, and things worked out for the best in the end.
  • Conclusion

    The past year has gone super fast, and I've learned so much along the way, from both my Computer Science degree, and my role at Morrow. I've become pretty invested in the React Native Expo world which we develop with, and really look forward to deepening my knowledge in this area as I continue my career in this area. I'm hoping this post is useful to others in a similar position to me - early in the industry, and possibly wondering how other people's experiences are.