Advert description
I am an experienced software developer with a strong background in full-stack web development, particularly JavaScript, TypeScript, React, Node.js, APIs and cloud-based applications. Throughout my career, I have worked on a range of real-world software projects, giving me both practical technical experience and an understanding of how to approach problems methodically.
My experience includes building frontend applications using React, Next.js and TypeScript, as well as backend services using Node.js and Express. I have worked with REST APIs, databases, authentication, third-party integrations, real-time communication and cloud infrastructure. I have also used technologies including AWS, MySQL, MongoDB, Redis and Docker. More recently, I have worked extensively with AI technologies, including large language models, retrieval-augmented generation, embeddings, AI agents and voice-based applications.
A key strength I bring to teaching is my ability to break complicated technical concepts into smaller, understandable steps. When developing software, I regularly need to understand a problem, identify the underlying cause, design a solution and explain technical decisions clearly. I believe the same approach is valuable when teaching coding, particularly for students who may initially find programming intimidating.
I can teach fundamental programming concepts such as variables, functions, conditions, loops, arrays, objects and error handling, while also helping students progress towards more practical topics such as APIs, databases, frontend development and building complete applications. I can adapt explanations depending on a learner's existing knowledge and focus on practical examples rather than simply presenting theory.
I also have experience with software testing and development practices, including unit testing, component testing, test-driven development concepts, Git and code reviews. This allows me to teach not only how to make code work, but also how to write maintainable and reliable software.
My professional experience has required continuous learning because technologies and development practices change quickly. I am comfortable learning new tools and explaining unfamiliar concepts by connecting them to principles the learner already understands.
Most importantly, I enjoy helping people understand how things work. I aim to create a supportive lea