Aman's journey from self taught to skilled developer
Read about Aman Singh Bhogal's inspiring journey from a self-taught coder to a seasoned front-end developer and mentor, sharing insights and tips for success in the tech world.
Table of contents
Introducing Aman Singh Bhogal: an award-winning, self-taught developer and a standout member of the Frontend Mentor community. He first gained recognition by completing and excelling in our platform's challenges and quickly became known for his active, supportive role in our community.
Aman is skilled at guiding and mentoring developers, enhancing their skills and confidence. His contribution extended to leading a Discord event for the Frontend Mentor community, where he shared valuable insights on tech hiring and job interviews, reflecting his journey from a passionate learner to a mentor in the tech world.
Read Aman's journey from self-taught to skilled developer below.
Introduction
I’m a Creative Front End Developer who has been working across both Web Design and Development for over 3 years now. I also mentor those starting their journey into Front End Development (working across the core stacks, build tools, scripts, and good developer practices), provide code and portfolio reviews, pair programs, and offer freelancing services. I’m also involved in a couple of design communities where I provide help and advice on wireframing and portfolio reviews across responsiveness, accessibility, performance, and best design practices.
Background from self-taught to skilled
I come from a self-taught, client-side background. I started this journey by designing and developing a WordPress e-commerce site for a nonprofit organization with a team member. After I handed it over Feb 2021, I built a couple more WordPress sites, started developing custom themes and drilling down into fundamental stacks (HTML, CSS and JS), and building vanilla projects. In Oct 2022, I switched to React, with a focus on Tailwind, SASS, Next.js, UI Component Libraries, and recently TDD. I also work in Web Design and create responsive, accessible templates, which I sometimes publish to the Figma community.
My path into web development
I was working for a non-profit organization back in 2020 doing social media and publicity work. When COVID-19 happened, they had to shut down their center and move all their classes and courses online. One of the staff members asked if I was interested in coming on board to help replace their current site, so I was involved in designing and developing a new WordPress website for them. I was involved in regular meetings, keeping the team up to date through emails and project management software, and leading a handover meeting with the team and stakeholders. The whole experience was definitely fulfilling, and afterward, I decided I wanted to continue pursuing this path.
My passion for coding
Being creative, I realized when I was templating and developing the charity’s site, the whole process really incorporated a lot of skills, from technical acumen to client-facing and collaborative working, and as someone who likes to get involved across all these aspects, I found it stimulating. Being able to design visually stunning, intuitive, and responsive websites (with branding elements involved) also taps into the other side of the brain. Seeing months of this hard work come to fruition, being “out there in the wild,” and achieving what the client wanted was a really humbling and fulfilling moment. I still get that buzz now with every project I deploy, whether it’s a personal project, joint-developer, or client-focused one.
Front End Development is also an area that involves continuous learning; being exposed to new technologies and practices and seeing how the landscape has changed, and productivity has been improved considerably with the advent of AI-related tools proves this is an exciting time to be involved in the industry.
What really drives me as well is the genuine impact I make with the work I do, and that feeling of always improving each day, ranging from solving problems to mentoring and integrating new frameworks, libraries, and technologies into my projects. It’s an incredibly dynamic environment, and pardon the cliché, but no two days are the same.
I use the Pomodoro technique. If you compare a 1-hour stint of work against a 3x 20-minute session with 5-minute breaks in between, you will know a significant difference. If you repeat this four times in a day, you’ll be impressed with the amount you’ve achieved. The more focus you have, the better you retain information and the more technically competent you will become.
I currently work with Next.js, React, and TypeScript, so, as with the core stacks, I spend a good portion of time drilling down into the applicable understanding using both the React docs and Vercel’s Next.js documentation alongside YouTube videos from the following creators:
One of the reasons I use and recommend these creators is they assess common ways to go about integrating some logic, then iterating over and refactoring, or suggesting cleaner, more performant alternatives.
After developing a solid grounding in the fundamentals, I used this towards providing code reviews and mentoring, which also strengthens knowledge and communication skills and helps with knowing how to approach a project from a technical perspective, assessing the use cases for different tools, and utilizing the most appropriate. Understanding this helps considerably with justifying important decisions you make to interviewers/employers, project managers, senior/lead developers and clients.
I also talk out loud to myself about the code I’m writing as I find this helps to identify problems and pace things to ensure I understand exactly what I’m building. It also helps a lot with coding interviews and working with other developers. The better you can articulate the purpose of your code, problems encountered, and ways you’ve attempted to resolve them, the better the DX and process are. It’ll also help when looking at your others’ code too. A large part of this requires being attentive – checking code before pushing it to production and using metrics and audits to highlight any possible issues across accessibility, performance, best practices, and SEO. You need to think with both breadth and depth.
Refactoring code is also an important skill you need to get under your belt. After deploying a project, I make notes of areas I could improve, iterate over the build, and incorporate these. This cements personal knowledge and simulates what occurs in a software development environment. I also find it important to take the initiative and actively address issues, and tasks or look up documentation.
Lessons learned in web development
In the early stages, after handing the client site over, I was using an Udemy course (2021) to understand the core fundamentals I noticed a lot of recruiters were asking about (HTML, CSS, JS, and PHP). Alongside this, I was building other WordPress sites and getting accustomed to Git, deploying across different platforms. Once I changed to React-based Development, I buckled down with those and started using FEM as a focus to build projects and become involved in the community.
I would definitely recommend doing client work if you can because the skills you learn are invaluable selling points and give good exposure to the software development lifecycle, from inception through to testing iteration and production. It’ll also strengthen your interpersonal skillset and teach you how to articulate goals, plans, and issues to technical and non-technical individuals.
Make sure your CV and Cover Letter templates are tailored and up to date, and when you’re in a position to be able to build responsive, performant, and accessible full-page sites, consider creating a portfolio that showcases 6-8 of your most proud or complex projects. Provide links to your repo and deployment, and make sure your GitHub is also up to date and featuring these on your profile.
I would also recommend getting a LinkedIn account, developing a strong profile with projects you’re most proud of and experience, and actively creating connections with other developers who have first-hand commercial experience. They will give you a realistic view of the industry, best practices, pointers to know as a junior, what they’re experiences were like in the first few months of their role, and how to navigate the job market, interviews, etc. Many devs I know are more than happy to provide help and post advice and tips. They want newcomers to succeed and will teach them things they themselves wished they knew when starting up. These are nuggets of wisdom you won’t always encounter on YouTube videos or Udemy courses. It’s also a great chance to build relationships and connections with those who work in companies that down the line may be hiring, and an opportunity to get a foot in the door early if they’re aware of your work or have collaborated with you on projects in the past and can vouch for you. While I couldn’t get a referral for one company (as the senior was on the hiring board), they were impressed by my portfolio, which I reached out to and asked if they could review some weeks prior. After also getting a strong reception from the lead developer and submitting my CV and cover letter via DM, my application went straight through to the take-home project stage.
Having both discipline and direction is incredibly important; you need the commitment and patience to understand concepts and apply them to practice, and you need a solid path that ensures you’re heading towards improvement, actively building projects, and avoiding ‘tutorial hell.’ Without these, you won’t develop as well as you want to. This is why I recommend FEM because it simulates exactly what you will do in take-home projects and software development, the designs are already taken care of, and there’s a broad, helpful community that actively supports one another.
Challenges that I've encountered as a web developer
The challenges I encountered over the past 3 years ranged from building applications, which progressively became more challenging, to last-minute client queries, debugging technical issues, and not throwing in the towel when things got tough.
When you’re working for clients, you’re also reporting to them, and, as with working amongst other developers, it’s crucial to ensure you’re organized and reliable. Deliverables will need to be met by a certain time, and as the deployment of a site draws near, a lot of elements start to come together, and last-minute issues and suggestions will need addressing. This can range from feedback and reviewing content changes to additional features, and often you will have to weigh up important objectives against urgent ones. Knowing how to explain and justify decisions made also comes into play.
Debugging is also a crucial aspect, and often, you will be troubleshooting issues. The best way to resolve them is to first keep composure and have a level-headed approach. You’re much more likely to be able to tackle the problem with clarity and composure. Often when starting, it’s very easy to panic and feel out of your depth, but these are real opportunities to accelerate your growth and will put you in good stead for when you start working in a commercial software development environment. You learn as much from identifying and resolving issues as you do from coding. The best thing to do is research online, using forums, documentation, and videos. This exposure will really give you an all-rounded, first-hand experience that’ll strengthen your ability to fix problems autonomously.
Staying motivated and disciplined throughout was also very challenging. There were many times when I wanted to quit altogether, and several times I came close to doing so. In those moments, I took the day or week off, re-assessed, and decided that if I was going to continue, I needed a better strategy to prevent those moments from happening and deal with them when they did. I took breaks when I felt my mind couldn’t focus, had a motivational playlist, and kept hydrated (it keeps brain fog at bay.) I knew that I had to throw everything I could into this because of how much it demanded and give it more than just 100%. Where I am now is a testament to that, and I wouldn’t have achieved what I have if I’d stopped altogether. I stumbled and struggled a lot along the way, and hopefully, this will help other developers who are starting up to avoid going through the same, or at least know how to manage these situations when they arise.
We all have a voice of doubt which is rooted in fear, and insecurity and can often turn up in the form of imposter syndrome (I’ve also been there.) You need to have a voice of reason to counter this and remind yourself of the progress you’ve made and challenges you’ve overcome in the past, which you may have thought at the time you wouldn’t have been able to.
Advice for beginners
Don’t overestimate the progress you can make in a certain period, and don’t underestimate the work involved either (I know that’s two, but I think they’re both related.) I fell into both of these traps when starting off because I didn’t have a full grasp or understanding of the process, and I had to navigate, stumble, and meander a lot before establishing my own WordPress Developer and Front End Developer paths and eventually landing interviews. Be realistic with this whole process and realize that it can take at least several months of learning, applying, and building before you’re well-positioned to apply for roles.
Hiring and interview tips
-
Have a notepad to hand – this shows you’re actively engaged in the conversation and taking on board everything they’re saying (just make sure to mention this at the beginning of the interview so they don’t get the impression you’re preoccupied or inattentive.)
-
If you’re feeling nervous beforehand, watch something that makes you laugh. You’ll enter the interview in a relaxed frame of mind, and this vibe will also help put them at ease and create a welcoming environment (I always like to treat interviews as conversations.)
-
Speak with clarity and learn to take pauses if you need time to think of a response to a question. Green flag companies will be perfectly fine with this. If need be, you can ask to have a minute or two beforehand to think about an answer.
-
For telephone interviews, stand up instead of sitting on a chair, as this projects your voice better, and have some notes to serve as key prompts during the process (avoid reading off them too much, as it sounds obvious)
-
For remote and in-person interviews, maintain eye contact and show that you’re listening to them by being mindful of your body language (communication is also passive as much as it is active)
-
The take-home projects you’ll be given upon a successful screening will test your fundamentals, making technical decisions and approaches, and assessing the cost-benefits of certain codes, libraries, etc., you may have decided to use. You’ll likely be expected to explain this in a follow-up interview, so note your justifications for this (you can also attach this with your project submission.)
-
At some point during the process, you’ll be asked about your salary expectations because they want to know if they can afford to hire you. This will be asked at different stages for different companies – some will ask this right during the application stage, and others will ask this later as the interview process progresses. Always give a range to show you’re adaptable, and make sure it is relative to the country (especially important for overseas or international remote roles). If the role has a salary or salary range already listed on the vacancy and they ask this question, align it with theirs and adjust depending on how much experience you have (don’t undersell, but don’t oversell and ask for too much either – it’s important to be realistic.)
-
Lastly, close the interview by thanking them for their time, showing a keen interest in being part of the team and working for the company, and sending a follow-up email shortly after confirming this.
Tips for breaking into the tech industry
Never overestimate what you can do in a short space of time. I know I mentioned this earlier, but it bears repeating because I’ve seen many other developers also fall into this habit. This is the source of a lot of pressure and stress because you’re instinctively setting up unrealistic expectations and underestimating the scope of knowledge and understanding involved in this discipline. Front End Development is a marathon, not a sprint. There is an incredible amount to learn and incorporate into your practice, and it takes a long time to achieve it. Working with JavaScript took several months before I could get a real handle on it. Responsiveness takes time too. Sound accessibility practices. Using Git extensively (branching, PRs, merging.) Working with clients and other developers. There’s a range of skills you need under your belt, and the bar for entry is very high. The job market in the West is currently skewed more towards mid and senior developers because of the reduced training/onboarding costs, so you need to know far beyond the fundamentals (though having a strong understanding of these goes without saying. You can’t build an apartment without a solid foundation.) Look at the requirements for positions you’re looking at in your respective market/country. Note commonalities and target these. Find a schedule that works best for you, give yourself time to take breaks (because you’ll need them), and don’t kick yourself for not understanding a concept in a set time which you planned to. Sometimes these things just ‘click’ and, as we say in the UK, the penny drops, and suddenly it makes sense. This could be days, weeks, or sometimes even months later. You can’t rush that, it just happens naturally. You will develop, and you will improve. But work with the natural pace of development your brain allows. Don’t force it.
Lastly, good luck!
Practice building projects like a pro
- Portfolio-ready projects
- Professional design files
- Curate your profile
- Unlimited solution refinement