Senior Ui Engineer Resume
2.00/5 (Submit Your Rating)
SUMMARY:
- 10+ years of experience developing applications with expertise in migrations between frameworks, most recently angular/backbone to React.
- My core stack is using Javascript, Typescript, React, Redux, ES6/ES6, Vanilla JS, Axios, HOC, Redux Saga, etc.
- I am good at identifying optimizations with broad impacts for example, I started the practice of using SSR (server - side rendered) React on an expressJS nodejs server. I also specialize in build tool optimizations with webpack.
- Besides this I am also I maintain the CI build script files that trigger our unit and integration tests. I use bash, groovy, python and nodejs for my scripting needs depending on the task at hand.
EXPERIENCE:
Confidential
Senior UI Engineer
Responsibilities:
- Primary stack included React, Redux, Redux Thunk, Redux Saga, Axios, KendoUI, Meteor, SASS.
- Applications were developed from scratch using Javascript and React and also migrated from Backbone and Angular.
- Use component library like Material-UI for consistent look and feel of the web application
- Create custom reusable components for consistency across and easy maintenance of the application.
- Using Axios as HTTP client for fetching and integrating API response.
- Using Redux Forms to develop complex Agency/Agent enrollment application forms and customvalidations.
- Maintained states in the stores and dispatch actions using Redux
- Worked on React components, Forms, Events, Keys, Router
- Utilized React to create reusable UI components to handle the view layer for web applications.
- Used React-Router-Dom to restrict the accessibilities of certain components.
- Incorporated React CSS modules to encapsulate the CSS classes.
- Created REST APIs using NodeJS and Express.
- Architecting, implementation and maintenance of full-stack solutions
- Designing and implementing software deployment and continuous integration pipelines
- I used a wide range of technologies and strategies not limited but including: rancher, docker, docker-compose, python and bash scripting
- Built a solution for a client in meteor, react, mongo & .NET core
- Refactoring out libraries (extracted to Atmosphere packages) for sharing across Meteor app
- Adding integration and screen tests using Cypress (a new alternative to selenium which runs in the same loop as the application, making writing integration tests fast and fun.
Confidential
Software Engineering Lead
Responsibilities:
- Developed UI using Javascript, Typescript, AngularJS, and Angular 2.
- Developed SPA using Typescript/Angular 2 which was refactored from Angular 1.x.
- Created reactive forms and form validation functionality.
- Used HttpClient to communicate with the restful services.
- Used Observables, Subjects, Async pipe to make the application more reactive.
- Used ag-grid to render the data driven scalable grid which can provide scrolling on data sources using async call.
- Designing a micro-services strategy for deploying shared API to refactor a monolithic web application.
- Maintaining and expanding features on .NET 3.5 MVC web application
- Working on Dev-ops initiatives to ensure automation and Continuous Integration. Creating and maintaining Jenkins jobs for multiple development projects and releases.
- Creating a docker image for an Angular2 dotnet core project.
- Creating an internal bower registry for developers in the company wide to develop and share a library of HTML5 components styled to be consistent with the company branding.
Confidential
Software Engineering Consultant
Responsibilities:
- Creating new features, updating user experience of flagship product and re-write of UI from Dojo to AngularJS.
- Rapid UI prototyping with mock data to give stakeholders demos of different options and implementations of business features.
- Implement and refine enterprise level patterns and objects that comprise our custom Java, J2EE framework.
- Used Java Collections framework at the business layer for front end display as well as for server side validations.
- Worked on Application’s Backend to Create Micro-Services using Java Spring Boot.
- Leading prototyping and UI development of key features in the theme of the flagship product.
- Demonstrate and document for UI developers in how to integrate different web framework components in a dojo based web application. I created angular and react components that could be embedded in a dojo application.
- Pair programming and mentoring developers through UI development (Angular, Dojo, HTML5, LESS).
Confidential
Software Engineering Consultant
Responsibilities:
- Create a library of EXTJS components.
- Was primarily responsible for creation of an EXTJS custom grid that supported drag and drop.
- Created custom EXTJS Components leveraging the 4.2 version of EXTJS and styled them using SASS.
- Introduced modularity as a concept and encourage developers to leverage Angular directives for their re-usability and avo copy-paste of existing logic and markup
- Introduced the use of a javascript build tooling, specifically grunt to improve developer experience by automating the transpiling of LESS
- Worked on development of an internal CRUD application for user management and claim managemen
- Worked on the setup of the frontend of the application. Primary goal was to accomplish 3 objectives
- The first objective was to introduce modularity as a concept and encourage developers to leverage Angular directives for their re-usability and avoid copy-paste of existing logic and markup.
- The second objective was to encourage developers to avoid cluttering HTML markup with bootstrap classes and instead use custom styles on the markup that would then inherit the bootstrap classes as mixins in our LESS files
- The third objective was to demonstrate the benefits of unit testing some of the more complex elements in the code by implementing some logic using TDD and showing how it was possible to gradually refactor some of the existing code into more testable pieces of logic
- Designed directives for breadcrumbs, application notifications, dynamic form creation and custom field validation. All directives were built using test driven approach with the jasmine testing framework.
- Led the development of the project to deliver a new feature to enable mobile site consumers to create and manage ads to sell their car on autotrader.com
- Worked primarily in jQuery mobile development and JSF 2.
- The project was agile and driven by Jira. We used JSF 2.0 component presentation framework along with jQuery mobile.
- The goal was a consistent user experience across all mobile devices so I followed an adaptive rendering design pattern heavily in the styling strategy
- Used coffeescript to generate the js files and SASS for the CSS and incorporated a custom theme using jquery theme roller.
Confidential
Lead Software Engineering Consultant
Responsibilities:
- Led a collaborative team of developers towards the rewrite of a legacy application using EXTJS framework for the front-end and Java Spring backend
- Worked primarily in JavaScript EXTJS 4.1.3 development
- Product Modeling and Management Applicatio
- Key contributor to the expansion of the application, developing many new features using Java, Spring Boot, Microservices, Angular, Hibernate, JPA.
- The main theme was TDD and agile. We incorporated Jasmine BDD testing framework for unit testing because of its excellent mocking api. I also used Sinon for its ability to create a fake server, it had a more fluent api for this than the extjs ajax simulation manager
- Introduced the use of DeftJS to make enhance the framework, we used the promise API along as the Deft ioc injector to make the code more modular as well as to help in testing with the ability to inject testable dependencies.
Confidential
Full-stack Software Engineering Consultant
Responsibilities:
- My responsibilities were requirements gathering, user experience design, solution design and implementation
- I was responsible for a Transportation and Expense Procurement Reporting Applicatio
- Wrote both frontend and backend C# .NET 4.0, including stored procedures in TSQL and .NET webservices. Used PVCS for source control management
- Mentoring and training of cold fusion developers in HTML, JS & CSS. Most of this revolved around teaching EXTJS JavaScript framework since the company was adopting this for most of their internal applications at the time
- Wrote and proposed different architectural implementations to my supervisor that would make the code base more modular and follow SOLID principles, especially single responsibility because we had many instances of classes or modules that were doing too many things and global objects strewn all over the code.
Confidential
Software Engineer
Responsibilities:
- Tasked with upgrading an internal website used to gather, collect and share documents. This project consisted of primarily conversion from classic ASP to ASP.NET 3.5 framework however additional functionality and a new UI was also required
- I applied the use of DevExpress Gridview, among other DevExpress controls such as their upload control extensively in this project.
- Integrating the file upload control with the gridview’s CRUD functionality proved to be challenging but I was able to do this by disabling some default behavior and writing custom code. The JavaScript client-side API provided by DevExpress proved to be very useful here.
- I implemented grouping, filtering and search using client side JavaScript and making use of the gridview’s client-side API.
- For the UI, I customized a theme for the gridview
- The data layer consisted of data objects within our custom framework that I then tied back to the database (SQL Server 2008) by calling stored procedures.
- I cached some data using cookies and also server-side via session for optimization.
- I was tasked with the conversion of the Confidential Bank Statement reports to Confidential Bank Statement reports.
- I used DevExpress XtraReports reporting tool. I created a base class that would be used to derive all sub-reports.
- To encapsulate validation and data binding details, I employed the use of delegates, whose methods were overrides of virtual methods in the sub-report base class.
- For purposes of reducing the amount of code to be typed, I designed a helper class with static methods that included a recursive iterator that hydrated all sub-report data sources.
- I created scheduled services to be run for the generation of bank statements in .pdf file format from xml files, and the generation of print and digital media from the .pdf files.
- This project involved the automation of daily transaction processing. File watchers, statement and log creators, SQL stored procedures, and email messaging were all encapsulated in a web wizard
- Before this processing involved the manual execution of the stored procedures, emails had to be manual sent out and files copied and pasted manually.
- The ultimate goal is having a service run and only for a user to be alerted when there is an error but until the process workflow is finalized, a requirement was for a user to monitor all the steps. This is why a wizard was created.
Software Developer
Confidential, Atlanta, GA
Responsibilities:
- I was responsible for creating a CMS for the client. I used ASP.NET and Umbraco was my CMS.
- Componentization: I designed C# business entity components that mapped to CMS components based on the clients business logic. I used the Razor View engine to componentized many areas of the document templat
- I decided to forego XSLT and use the Razor Engine and MVC due to more legible C# code, quicker development, debugging, and easier maintenance in the future
- I supplemented content authoring by customizing the CMS UI to the client’s business needs by creating content folders pertinent to their business model and triggering events based validation to follow business rules
- I documented my code and created FAQs and Training Guide documents
- For the UI I used HTML5 and Less CSS
- This was a legacy systems integration project involving SDL Tridion C# and there legacy custom PHP web application
- We built CMS components using C# based on client’s business logic from studying legacy PHP code
- I used the reflection pattern in modifying existing event listeners and adding custom validation based on business logic
- I performed QA and Regression Testing
- I documented the User Assurance Test Plans and Test Cases
- I aided in developer and end-user training at the client location
- Content Porting: Exporting schemas, authored content, and blueprints between Dev, QA and UAT environments
- I was assisting in User group provisioning and User permissions administration
- I also maintained meeting notes on conference calls with the client.
- As part of an effort to create custom GUI Extensions for the CMS I was responsible for the twitter Integration.
- I wrote Ajax methods and web services that used Twitter API and OAuth to update the tweet status of 28 client Twitter accounts with the click of a button.
Confidential
Software Engineer
Responsibilities:
- Led the outsourcing and development of projects.
- Coordinated requirements between developers and stakeholders.
- Incorporated content management and creation so that the clients can author their own content and update their site at will. I used either Yii Framework or PHP Codeigniter framework to create my clients a CMS for this purpose. For one client we used Umbraco .NET CMS.
- Peer reviewing of code and integration work between front-end and back-ends.
- Created both desktop and mobile sites
- Completed a slew of sites for mitsubishi: mitsubishielectricengineer.com, mitsubishielectricarchitect.com and mitsubishielectricairwave.com. These sites all have mobile versions. If you browse to them on your mobile device you will be served the mobile version.
- Conversion of an old classic asp site to .NET 4.0: verticalatv.com and implementing this using Umbraco, an open source .NET CMS framework.
- Just Right Auto Sales private instant messenger and chat application: This is similar to the private instant messengers you may come across in sites like BankOfAmerica.com where you can chat with a customer care representative. I built this by extending Blab which is an open source chat software. It is written in PHP and heavy on ajax.
Confidential
Software Engineer
Responsibilities:
- My responsibilities where End-user training and support, Server Administration and Programming
- I created a user management wizard that serves as an extension of a previous C# web application: using EXTJS on the frontend and .NET on the backend. I created asmx web service web methods that performed CRUD operations on a database
- I customized EXTJS wizard control to work with the required styling
- I wrote SQL server 2008 stored procedures accessed by server-side web methods
- I was involved in testing, documentation, systems analysis and support of SharePoint 2007, SharePoint 2010, Vignette and CES (independent vendor’s CMS)
- I created a deployment test plan for SharePoint 2010
- I tested vendor software and upgrades for CES
- I was on-call support for SharePoint, Vignette and CES
- I was the primary site administrator to clients/teams who required a new SharePoint, Vignette, and or CES site. As such I was responsible for the training of site collection administrators for SharePoint and secondary site administrators for Vignette and CES.
- Sharepoint development experience creating a custom navigation bar with the Content Editor web-part in JQuery. This was a side project. I gained valuable JavaScript, CSS experience here
- I wrote the test cases, test conditions and execution steps for Microsoft SharePoint 2010 site administrators
- Customization of Vignette CMS using JSP, HTML, CSS and JavaScript (jQuery).