How I Handled My Technical Challenge
Hello there! My name is Amara, and I am the newest software developer to join the team as of the 21st of Nov, 2022. We are currently expecting some new software developers soon, so I might not be the newbie after the above date, so please do not quote me, haha.
For my technical challenge, I built a simple expense tracker. From the list of inspirations provided by the team, I was sure that the expense tracker would suffice. To check out the code for my expense tracker, you can here. Also, if you want to play around with the expense tracker, you can use it here.
Check out my GitHub to see some of the applications I have built so far during my software development journey. Now, enough about me, let us talk about the technical challenge project.
Building the Expense Tracker
For my project, I built a new application from scratch. As I pointed out in the Introduction section, I was given a list of inspirations to choose from by the previous project manager at the time, Ben Riseborough. However, I decided to build a project that resonated with me. I am obsessed with saving money and see myself using the expense tracker to help me save some buck. I built something that I could use in my everyday life.
While implementing the code, I broke it down into small blocks of code, where each function performed a specific task. I also endeavoured to follow software design principles as much as possible, some of which include the Single Responsibility Principle (SRP), Don’t Repeat Yourself (DRY) and Keep it Simple, Stupid (KISS).
It was a requirement to use some version control software to version the technical challenge project. I preferred to use Git to execute this task. As I was implementing the code, I divided the overall process of building the expense tracker into little steps. Each of these little steps became my different commit. However, the steps were not rigid because, while I was executing my plan, I had to make some changes and rearrange the order of some steps. Generally, planning was a big part of my success in developing the expense tracker.
I ensured that the commit messages were as direct as possible, and anyone who looked at my code on GitHub would view it as a story detailing, clearly, how I built the expense tracker. To achieve this, I watched several youtube videos to learn about git's best practices. Finally, I hosted my project on GitHub.
I also made sure to document that app properly. For instance, if someone landed on the repository of my expense tracker, they would easily understand it just by reading the README file. My README file includes the following information
- A brief project description
- Key features of the app
- A video of the design prototype of the app
- How to Use the app
- A link to view and use the app
For the technical debrief, I prepared a presentation using Google Slides to be as thorough and professional as possible. My main priority was to give the team a good impression of me. I discussed my project from a user point of view by illustrating the design process that went into building the app.
Planning, developing and testing the project from scratch helped me, so I knew the app in and out. I could confidently answer all the questions asked especially concerning the development process. I was also able to fix a bug spotted by one of the developers in the team. Generally, the technical debrief went smoothly, and everyone on the panel was super friendly. The atmosphere made me comfortable and able to answer questions correctly.
Most Importantly, I strongly believe that God helped me get this role. Because although I decided to start learning development this year (2022), I was able to land this role in early July. I prayed a lot for a role, and I believe I got this perfect role because God answered me and not because of my excellent development skills.
While speaking to my line manager after I began working with the team, he told me that he saw I had potential during the technical debrief and subsequent interview. He also said that he saw that I was eager to learn. He made me understand that it is easy to teach a new developer willing to learn than to employ an experienced developer with wrong or not-so-good software development practices.
This is my first developer role, I am working with lovely people. The team is also very understanding. Due to some complications, I could not start at the specified start date. But the team understood, and they were ready to answer any questions I had to help me ease into my role.
Finally, I would say that obeying the instruction given to you by the team would help tremendously. Whether it is for the technical challenge or the technical debrief. I would end the blog with some nuggets of advice:
- Document properly
- Observe best git practices
- Follow software design principles
- Know your code in and out
- Do not worry, just do your best!