Adelaide, Australia
I’m a Web Developer based in Adelaide, Australia. Even though I have a Telecommunications Engineering degree and an MBA, coding is my passion and my new professional career focus. Developing applications for the web has become my drive.
Get my ResumeThis project was one of my favourite tools for breaking my way out of tutorial hell 👹. I also wanted this project to serve me as a display of my JavaScript skills to potential employers or collaborators.
By the time I decided to start working on this project I had just finished learning about Promises, async...await, APIs and error handling. I wanted to code a project to implement all of this knowledge.
At the start, this project seemed simple, but it quickly got complicated, especially because I was dealing with three different APIs (and a couple more that didn’t work in the end).
I didn’t spend much time on HTML, but CSS proved to be demanding once more 😅. Thanks to the challenges I faced I gain more CSS skills and learned how to better debug it.
Regarding JavaScript, I could have implemented MVC from the get-go, so I will do that in my next project. As I previously said, I prefer not to refactor this project and leave it as a witness of my skills at the time.
APIs are reliable… most of the time 🤭. I’m sure paid APIs perform better, so if I need to use them in the future for a more serious project, I will research deeply what is the best API to get for the job.
This project still has room for improvement, but I had to make the decision to stop working on it at some point. Overall, I think it’s functioning as expected.
In this project, I employed the following technologies:
Doing courses and tutorials is great, but sometimes is difficult to evaluate how much are we actually learning. Watching video after video and coding along with the instructor gives us very good guidance, but it is not a realistic scenario. In a real-world job, we will have to solve problems and start figuring things out by ourselves (with the help of Google, of course 😉). So, to test how much I was actually learning during the JavaScript course I was doing I decided to make a simple To-Do app in HTML, CSS and vanilla JavaScript.
Thanks to this project I could have a taste of how much work an application like this one takes.
I learned about the importance of structuring HTML in a meaningful semantic way, and how a good HTML structure can make our lives easy when we start working on CSS and JavaScript in later stages of the project.
I underestimated CSS 😅. The classes names are a bit funny and messy, so in the future, I'll try to implement BEM notation and maybe SASS. I discovered that some behaviour that initially thought of was in the realm of JavaScript can easily be achieved with CSS, such as animations on elements.
Regarding JavaScript, this was the first time I coded following the OOP paradigm and, despite feeling a bit out of my element, I now can see the potential that following this paradigm has.
The project has a lot of room for improvement, but I wanted to live it like that to have a "snapshot" of my knowledge and skills up to the point in time where I was working on it.
In this project, I employed the following technologies:
This project is an excuse to practice React basic concepts and to experiment with Material UI. I will be building a simple application to build a list of favourite books 📚.
In the past, I was used to coding with an imperative approach: stating line by line all the necessary steps the program needed to execute in order to achieve the desired outcome. With JavaScript, and especially with React, this mindset is changing, moving towards a declarative paradigm. I no longer state line by line what needs to be done, but the end results I’m pursuing.
This declarative approach is still new for me, and it’s taking me some work to get used to it, but I’m feeling more comfortable with it. (...)
useReduceris a Hook that allows us to manage multiple states more efficiently, create complex state logic, and manage states that depend on previous states. The following two use cases are good examples of how we can make use of this hook.
useReducercan be used to simplify the way in which multiple states impact a piece of data. In this case, adding, removing, and clearing an array can be achieved by using
useReducerinstead of three separate states.
useReducercan be especially handy when dealing with multiple states and a complex state logic. By handling a login form with this hook instead of multiple useState hooks we can appreciate how powerful this hook is. (...)
useStateis a Hook that needs to be called inside a function component to add some local state to it. React will preserve this state between component re-renders.
setStatecall in the main body of the component function, because it will create an infinite loop. The loop is created because the initial render calls the state update function
setState, which in time triggers a re-render and a new function evaluation. The
setStatecall should be inside a function that is called when an event is detected.
useStatecan be used to toggle between two values, usually true and false, in order to toggle a flag, such as the display mode.
useStatecan be used to keep track of a variable through multiple re-renders, such as in a counter application.
fetch()to the API, and the state of a spinner that will indicate if the data is being fetched.(...)
I'm proficient with the following relevant technologies:
César Ariel Villagra
Certified Scrum Master
Project Manager
Mobile Core Networks
Expert Engineer
“Damian is an excellent person to work with. His detailed knowledge of the business requirements makes him a very important resource. His professionalism & commitment are the keys for the successful delivery on time of the projects. He always has a keen eye on the 'day to day' details as well as the ability to differentiate immediate, near term and long term goals. His leadership skills makes working with him an enriching, challenging & enjoyable experience.”
Exequiel Barrirero
Co-Founder
DevOps Cloud Engineer @ Binbash
AWS Certified Architect
“After sharing several month at HP with Damian, I can say that he is a very enthusiast engineer, and has an amazing ability to learn new things by his own. He has an excellent technical background and was always willing to assist in any situation. Moreover, he was always adding value to our team, enforcing his co-workers with training and knowledge sharing. Hence, I don't hesitate to recommend him as employee, partner and person.”
Adrián Dzienisik
Telecommunications Engineer
Product & Business Analyst
SAFe 4 Certified Practitioner
“I had the pleasure to work with Damian at Claro for over 2 years, and I can say he is an excellent professional and a great person to work with. He consistently demonstrated a solid technical background, as well as excellent leadership and communication skills. He was a great mentor to me, and a committed team member, always adding value and sharing his knowledge of the business. In addition to this, his personality, positive attitude and dedication makes working with him a real enjoyable and valuable experience.”
📣
Your message was successfully sent. 😄
Thank you!