
Software Engineer
ATMECS TechnologiesAssociate Software Engineer
ATMECS TechnologiesGood evening. My name is Lucky Kumari. I have 2 years 9 months of work experience, which is nearly 3 years as a front-end developer. I have a good knowledge and experience in creating user-friendly applications and making technology. My current role is as a software engineer. Here, I have worked on 2 projects. The latest one was the Citrix Cloud success center. My key skills include Angular, HTML, CSS, JavaScript, Bootstrap, and others related to front-end development. I am also well-versed in responsive design, cross-browser compatibility, and performance optimization of the application to provide a better user experience across devices and platforms. I'm looking forward to getting a better opportunity.
To code review and for unit testing, I would use a Git. And also sometimes I have used Git on the repository where I have uploaded some of the codes. And also I use Sourcetree for creating the PRs. And after that, like, after creating the PR, senior developers review the code. So Sourcetree and Git were the two tools.
To ensure that my angular single page application has a consistent UI across all browsers, how do you ensure that your angular single page application has a consistent UI across all browsers? To ensure consistency in UI across different browsers in an Angular single page application. I have used vendor prefixes, then browser testing. In browser testing regularly, I have tested my app in various browsers to catch and fix any inconsistencies or bugs. Then I have also normalized or reset the CSS, which can help normalize default styles across browsers, reducing the inconsistency. In polyfills, to provide missing functionalities in older browsers that don't support modern JavaScript features used in the Angular app, and also in Angular browser support.
How do you handle asynchronous operations in Angular and React JS frameworks? In Angular and React handling, asynchronous operations are crucial for managing data fetching, if the calls and other tasks don't happen instantly. So in Angular, we primarily use RxJS observables and the HTTP client module to manage asynchronous operations. Angular relies heavily on observables from RxJS. Services often return observables to handle asynchronous data streams. The HTTP client, Angular's HTTP client module, provides methods like get, put, post, and delete to make HTTP requests. These methods return observables that can be subscribed to in components. I've also used async and await. Using async and await can simplify handling promises within Angular services or components, making asynchronous code more readable. For React, I've used features like promises, libraries like Axios, or the built-in fetch API for handling asynchronous tasks.
How do you ensure code reusability when working with Angular and React JS framework? Ensuring code reusability is crucial in both Angular and React to optimize development. Here's how we can achieve it in each framework. In Angular, we break down our applications into reusable components and services. Components encapsulate UI and functionality, while services handle business logic and data operations. We then use module structure to organize our Angular modules effectively, grouping related components, services, and other resources. We encapsulate functionalities in feature modules that can be easily plugged into different parts of the app. We also create shared modules containing commonly used components, services, and pipes. These can be imported into multiple modules across the application, promoting reusability. Dependency injections leverage Angular's dependency injection to share instances of services across different components, ensuring a single instance and promoting code consistency. In React also, we have used component composition, Hooks, and context, high-order components, and render props. Basically, utilizing the render props pattern to pass functions as props enables the use of logic between components.
As soon as the code runs, we can see "hello" printed on the screen. The first life cycle hook which is being hit when an Angular application is run on the server is the ngOnInit. Because it is the entry point of any component. The ngOnInit basically initializes which ever code we need to show on the screen as soon as it gets loaded. We write those lines of code in the ngOnInit method. The ngOnInit method is the first method which is going to be loaded as soon as our application is initialized.
Component based architecture is used in this particular code snippet. The decorator pattern is also used here. And, component based architecture is like this, a decorator pattern.
In our company, a large Angular application was present, but we wanted to migrate it to React due to the growing React ecosystem and a perception of better performance and a more flexible component model. However, after the migration, we experienced a surprising increase in development time for certain features, mainly due to the steeper learning curve of React for our team with an Angular experience. The lesson learned here is that the decision to switch between frameworks should consider various aspects beyond just perceived performance or popularity. Team expertise, familiarity, and the specific needs of the project should heavily influence such transitions. It's crucial to weigh the potential benefits against the cost and challenges of migrating to a new technology stack. Proper training time allocation for the learning curve and a phased approach to migration could significantly mitigate unexpected challenges.