I am

Ema Roso

Full stack developer

About

Ema Roso

I'm Ema, a full stack developer with a passion for creating web solutions that blend form and function. I specialize in crafting user-friendly interfaces and robust back-end systems.

I'm a firm believer in the power of clean, maintainable code and am committed to delivering high-quality, scalable software.

What truly inspires me is the opportunity to make a positive impact. Whether it's creating tools that streamline operations or applications that engage and empower users, I believe technology should be a catalyst for change.

Skill set

Back-end technologies

  • python icon Python
  • node js icon Node.js
  • express js icon Express.js
  • mysql icon Mysql
  • Redis

Front-end technologies

  • html icon Html
  • css icon Css
  • javascript icon Javascript
  • jquery icon Jquery
  • sass icon Sass
  • bootstrap icon Bootstrap
  • react icon React
  • angular icon Angular
  • redux icon Redux

Development tools

  • git icon Git
  • github icon Github
  • figma icon Figma
  • vs code icon VS Code
  • webstorm icon Webstorm
  • docker icon Docker
  • jira icon Jira

Experience a culinary journey like no other at this chic and elegant restaurant website.

With stunning visuals and intricate details, this 5-page HTML, CSS, and JS masterpiece invites you to explore fresh and delectable menu offerings in style.

Step into the world of captivating photography with this website, meticulously crafted using HTML, CSS, React and jQuery.

Discover a modern and crisp design that perfectly complements the photographer's professional portfolio, showcasing their stunning work in a clean and visually pleasing manner.

Introducing the House Plants API, a comprehensive database that houses a wealth of information about your beloved green companions.

From plant names in both common and Latin, to care instructions and tips, this API is your one-stop resource for nurturing your indoor jungle with confidence and success.

Whether you crave random tunes, composer-specific melodies, or a tailored search experience, this API harmonizes your projects effortlessly.

Explore the language of music securely and seamlessly.

View project

New
in blog

Code Review: A Practical Guide to Effective Practices

When it comes to software development, code reviews are critical. They contribute significantly to the quality and maintainability of the code. If done right, code reviews can help catch bugs, improve code readability, promote best practices, and encourage knowledge sharing within the team.

Let’s go over some practical tips and steps to make your code reviews as successful as possible.

Set Clear Goals

Before jumping into a review, it is important to have a clear purpose. That means figuring out what you wish to achieve beforehand, whether it's catching bugs, encouraging teamwork and knowledge sharing, or simply making sure that the code follows your coding standards. This will provide direction for both the author and the reviewer, and help everyone focus on specific targets.

Embrace Automation

Rely on tools like linters and formatters to catch mistakes and organise the code, allowing reviewers to concentrate on more complex parts of the review. This not only saves time but also ensures a thorough review, making sure everything fits together smoothly.

Follow a Defined Coding Style

To streamline the review process even further and create alignment within the team, follow a consistent coding style. By setting clear guidelines for style, formatting, and best practices, we are encouraging clarity, improving code readability, and simplifying maintenance, while also making it easier to spot any deviations.

Break Down the Code

For a more effective code review, dividing changes into smaller pull requests can be very handy. This can improve focus, reduce bugs, and enhance code readability, while also speeding up receiving feedback and allowing team members to review specific areas of interest.

Address Critical Issues Quickly

Not all issues are equally important. It is crucial to learn to identify and prioritise those that have the biggest impact. By focusing on critical matters like overall quality, performance, or security, we are making sure that essential aspects of the code are swiftly resolved.

Balance Speed and Quality

To maintain efficiency and prevent delays, focus on quick reviews and consider applying deadlines. Find a good balance between speed and thoroughness, as rushing may lead to mistakes. Adjust review times to the size and complexity of changes to ensure both speed and precision.

Create a Positive and Constructive Atmosphere

Prioritise improving the code rather than criticising the person who wrote it. Encourage constructive feedback with specific examples and improvement suggestions. By explaining our reasoning, we are able to create many learning opportunities. So let’s aim for clear, kind, and specific feedback.

Encourage Self-Review

Approach every code review as an opportunity to grow. If issues are brought up, encourage discussing them openly and collaboratively. By using the feedback received to learn from past mistakes and fuelling continuous improvement, we enhance the overall development process.

Share and Track

Boost knowledge sharing and keep track of important changes and details by encouraging open discussions, rotating reviewers, and documenting the process. This will not only lead to fresh insights and fixes, but also help avoid stagnation and blind spots.

Follow Up

After feedback is given, it should be addressed and necessary changes should be applied before resubmitting the code for another round of review. Remember to follow up on previous comments to make sure that feedback was implemented and responded to properly.


By using these steps, you can change code reviews from just a routine into a way to improve your code, and team. Set clear goals, use automation, follow coding rules, split up code into smaller parts, and keep things positive to make sure that reviews help everyone involved grow. Welcome the chance to learn, get better with each review, and watch your code become stronger and better than ever over time.

Happy reviewing!

When it comes to software development, code reviews are critical. They contribute significantly to the quality and maintainability of the code.

Wednesday, 21 February 2024

Tips for Writing Clean and Maintainable Code

Writing clean and maintainable code is not only highly recommended but also a fundamental skill for any developer. Clean code has a great many advantages, including increased readability, simplifying the debugging and refactoring process and enhancing the code. In this post, we will go over some of the of principles and tips for creating clean and maintainable code.

Using Clear and Descriptive Names

When you are naming variables, functions, classes, and other elements, selecting clear and meaningful names is one of the crucial aspects for writing clean code. The chosen names should accurately and clearly convey their purpose and intent. Avoid using single-letter names or cryptic abbreviations.

Let's illustrate this with examples.

                                    
// Unclear naming 

let x = 10;

function f(a, b)
{
    return a + b;
}


// Clear and descriptive naming

let numberOfNewCustomers = 10;

function addNumbers(num1, num2)
{
    return num1 + num2;
}
                                    
                                

In the first example, the naming conventions used do not provide any description of the variables' and functions' purposes. This reduces readability and makes it very difficult to maintain the code over time, especially as the codebase expands or when other collaborators become involved.

Being Consistent in Your Coding Style

Sticking to a consistent coding style makes maintaining your code much easier. Some of the ways to achieve this are to follow the rules and formatting guidelines of the language used, as well as to use tools like linters and formatters that help keep your codebase organised.

Simplifying Your Code

To make the code more clear, simplify testing, and promote reusability, you can break it down into smaller, more compact units, each with a specific and singular purpose.

Here is a short example to demonstrate how by removing unnecessary lines.

                                    
// While this may be straightforward
// and more efficient for very small codebases

function calculateRectangleArea(rectangleWidth, rectangleHeight) 
{
    return rectangleWidth * rectangleHeight;
}
       
// Breaking it down makes the codebase more readable and reuseable

function multiply(num1, num2) 
{
    return num1 * num2;
}
  
const rectangleArea = multiply(rectangleWidth, rectangleHeight);
                                    
                                

Using Clear and Effective Commenting

Even with clean and self-explanatory code, there are occasions when comments are necessary to explain more complex logic, provide context, or transfer knowledge. When leaving comments, make sure they are clear, to the point and insightful to future developers.

                                    
// Vague comment with lack of context

// TODO: Fix later
function functionName(param)
{
    ...
}

// Better approach with a description of the issue

// BUG: This function does not handle the parameter correctly. Refer to XYZ for more details.
function functionName(param)
{
    // ...
}
                                    
                                

Organising Your Code

Approach organising your code in a simple, methodical way by creating well-defined directory structures and naming conventions. Arrange your functions and classes in a careful manner, avoiding functions which are too long, or deeply nested code.

Using Version Control and Commit Messages

By using Git or similar tools and writing clear commit messages that explain the reason behind changes, you can keep a detailed record of all code modifications. Adopting this habit will make it easier to understand in what ways your code has evolved over time and why.

Refactoring regularly

Make refactoring a regular, integral part of your development process. When requirements change, tidy up and organise your code to maintain its usability. Always make sure to update your code as necessary.

Documentation, documentation, documentation

Make sure that a thorough documentation is created for your code, with consideration for both your team and outside collaborators, as necessary. This could include creating API documentation, providing practical examples, and offering clear explanations of important concepts.

Encouraging Code Reviews and Collaborations

Having a culture of giving and receiving code reviews within the team can help detect issues, ensure that coding standards are followed, and promote knowledge sharing. This is where innovation and excellence can thrive.


To recap, writing clean and maintainable code is more than just adopting a coding style. It is a mindset and a commitment to creating code that stays strong, readable and flexible. Following these practices not only improves the quality of your code but also encourages teamwork and makes future maintenance easier.

In software development, writing clean and maintainable code is not only highly recommended but also a fundamental skill for any developer.

Monday, 9 October 2023

Contact

Have a project in mind or just want to say hello?

Don't hesitate to get in touch.

Fill out the contact form, and I'll be in contact shortly.

Your feedback and inquiries are always welcome, and I
look forward to hearing from you!

Contact form