|
Github avatar

Andrii Maglovanyi

Front-end Web Developer


Profile

Seasoned Web Developer with a modular and component-driven mindset, adept in bringing forth expertise in design, development, testing, and maintenance of software solutions.

On my way down the road, I evolved from a Web & UI/UX designer, through a Back-end developer role to the point where I am willing to develop myself as a Full-stack Web Engineer.

I'm able to effectively self-manage on independent projects, as well as collaborate in a productive team to create the most productive result.

Read more

I believe in the advantage of a T-shaped specialist who is willing to extend his versatility with a broader range of technologies and disciplines.

I worked a lot with PHP and a little with Java and Python. Today, I'm passionate about ubiquity and flexibility of the Javascript ecosystem.

Participation in all stages of product development - from the prototyping of accessible UIs, building rich cross-platform frontend applications, to the stage of implementation of high-load solutions and application backend architecture drives me strongly.

Executive Summary

  • Over twelve years of experience as Full-stack and Front-end Web Developer;
  • Extensive experience of development with JavaScript (Node.js, Angular/React and TypeScript);
  • Worked with relational (MySQL) and NoSQL (MongoDB, Redis) databases;
  • Hands-on experience in creating complex SQL queries, indexing and (de-)normalization data, replication, stored procedures, and triggers;
  • Good understanding of the concepts of functional programming principles.
  • Knowing the basic principles of object-oriented programming and design (OOP, OOD).
  • Understanding of ideas behind the domain-driven design (DDD);
  • Around one year of experience as a BigData software engineer (Java and GCP);
  • Good working knowledge on Agile methodologies like Scrum/Kanban for software development;
  • Understanding of CI/CD flow, PR/CR approach, Git/GitHub/Trunk Based Development flows. Code analysis, test coverage reporting, coding standards, and quality checking.
Read more About what I am looking for in a job
  • I believe that great projects are created by teams with a high level of mutual trust.
  • Each member of the team must understand "why" behind their "what".
  • Inner motivation is crucial. Ideally, working on the edge of my abilities, keeping the balance between what challenging and boring.
  • Autonomy is just as important. The need to feel confident and in control, an external stimulus should not create pressure.
Read more About my usual role on a team

I am comfortable working either independently (including remotely) or in team projects. I had such an opportunity on my job at Speakap and liked the variety.

A highly productive approach to me is to start a project as a team, brainstorming our ideas, building our deadlines and individual responsibilities before going off to work independently on assigned tasks.

I appreciate the possibility to discuss non-trivial decisions along the way. Knowledge and decision sharing is the key, although I prefer having multiple short (up to 30 minutes) and focused meetings to longer ones since I found them to be more fruitful and fairly short to break the work context.

When working remotely, it's crucial to be able to reach out to a team and it demands a habitual time boxing and a good preparation. I have recent experience with such and have built my procedures and tools which work best for me.

I prefer timeboxing and walling projects to a certain timeframe to make myself more effective instead of allocating the entire day for it.

Read more About a situation where I failed and what I learned from this

A well-remembered failure was the development of a greenfield project at InSkin Media without early delivering of an MVP to the customers. Moreover, it had not enough coverage with automated tests.

As a result, the product turned out to not quite meet certain expectations and required expensive refactoring.

It was complicated because of the absence of sufficient quality control at the initial stages and resulted in extra time and reduced cost efficiency.

Fail fast when it's justified. Extensive testing and incremental development to determine whether an idea has value are important to cut losses and adapt to changes.

Employment History

Full-stack Developer at Vonage

July 2021 - Present vonage.com London, UK

A platform over voice, messaging, scheduling and other APIs for building use cases such as voice and message notifications, IVRs, and chatbots.

  • Created a platform for distributing read-to-use applications and solution templates by developers with reviewing and version control.
  • Developed from scratch a monitoring and analytics dashboard for Vonage cloud runtime.
  • Created a monorepo of micro-frontend applicatons with reusable components.

React (Next.js, Turborepo), TypeScript, GraphQL (Hasura), Jest, Cypress

Senior Fullstack Engineer at Speakap B.V

June 2018 - July 2021 speakap.com Amsterdam, The Netherlands

A social network for organizations.

  • Developed a UI with high-quality design and emphasis on accessibility.
  • Created an applications market with an integration framework, a collection of 7 applications and a library of over 30 components.
  • Automated build and deployment process through Webpack and Jenkins CI solution.
  • Migrated the main platform to TypeScript, resulting in decrease of reported bugs.
  • Harvested a framework for the application development (DB connector, i18n support, authorization module, etc.)
Read more

An interesting challenge was the improvement of an applications market of the main platform. The applications were communicating with third-party services to provide a seamless single-entry experience for the customer.

Security concerns and storage of users' external data were paramount, as well as the ability to maintain and modify the collection of applications.

Applications worked in separate containers, consisting of common functional modules but having their own configuration, own database and development cycle.

JavaScript, React, TypeScript, Node.js, GraphQL, Jest, Cypress, Jenkins, GitHub Actions, Docker

Front-end Developer at Backbase B.V

April 2017 - June 2018 backbase.com Amsterdam, The Netherlands

A digital banking platform for financial institutions.

  • Developed a configurable and extendable banking widgets collection.
  • Controlled reusability and maintainability of applications, performed security checks.
  • Involved in developing of a test automation tool, leading to a reduction in testing time.
  • Migrated widgets to Angular 2+ with refactoring of repetitive code, reducing total lines of code.

JavaScript, TypeScript, Angular, Ramda, RxJs, SASS, Jenkins

Senior Fullstack Engineer at InSkin Media

November 2015 - April 2017 inskinmedia.com Kyiv, Ukraine

An online advertising service, specializing in high-impact advertising formats (Page Skin).

  • Designed and built cloud-based scalable Telemetry service based on GCP to collect and aggregate data of ~2000 RPS.
  • Developed and maintained a microservice architecture for managing advertising campaigns.
  • Developed a test automation tool and CI/CD for multiple environments.
  • Performed an architect role and managed a team of 6 people.
Read more

The problem was the development and parallel run on old and new solutions for collecting and processing a large number of HTTP requests (~2000 RPS) for online advertising campaigns and comparing two implementations.

The verification required not only that new implementation gives the same results, but also it operates in acceptable nonfunctional limits, as the number of timeouts and latency.

The R&D team of which I was a member, created a Telemetry service based on CGP service. It was able to accept (App Engine), enqueue and transport (Pub/Sub), log (BigQuery), process (Dataflow), and aggregate (Cloud SQL) incoming data, turning it into a detailed nearly real-time statistics for ad companies.

The two solutions ran side by side and carried out daily reconciliations on the results. The verification process also made sure that calls to the new service are made on time with an acceptable failure rate.

After a few months of parallel run, the Telemetry service was switched over GCP based solution and the old system was retired.

Java, GCP, JavaScript, TypeScript, Node.js, React, Webpack, MySQL, Redis, Jenkins

Fullstack Web Developer at Otravo B.V

August 2011 - November 2015 otravo.com Kyiv, Ukraine

The air travel sales platform.

  • Developed a flight/hotel booking engine.
  • Implemented advanced statistics management system.
  • Developed airline reviews and rating service based on customer surveys.
  • Performed a key role in a team managing and a work process.

PHP, JavaScript, Lodash, MySQL, SASS, Jenkins

UI/UX Designer, Front-end Developer at PIFWorld

September 2010 - August 2011 pifworld.com Kyiv, Ukraine

An online charity platform.

  • Developed an SAP with JavaScript (jQuery).
  • Carried out A/B testing.
  • Redesigned the website and improved UI/UX.

JavaScript, ActionScript, Google Analytics

UI/UX Designer, Junior Web Developer at All-Biz Ltd

July 2008 - September 2010 all.biz Kyiv, Ukraine

A B2B and B2C eCommerce platform.

  • Designed a corporate style, UI/UX.
  • Developed a homepage CMS and search engine.
  • Developed a translations management tool for 18 languages.

PHP, JavaScript, MySQL, ActionScript

Education

Igor Sikorsky Kyiv Polytechnic Institute

September 2002 - February 2008 Kyiv, Ukraine

Master's degree in Electromechanical Engineering. Faculty of electric power engineering and automation.

Details

London, United Kingdom

+(44) 7375 774567
+(380) 66 2924562
andrii.maglovanyi@gmail.com

Links

LinkedIn
GitHub
StackOverflow
Medium

Skillset

Javascript React/Redux TypeScript Node.js GraphQL Jest/Cypress MongoDB/MySQL Docker Jenkins/GitHub Actions Lodash/Ramda/RxJS AWS/GCP Python Rust

Principles

No silver bullets
Off-the-shelf solutions deliver quick value but add inertia and accidental complexity.

Reduce inertia
Make decisions that favour quick feedback and change while reducing dependencies among teams.

Eliminate accidental complexity
Proactively remove and replace excessively complex processes and solutions so that you can focus on the essential complexity.

Consistent interfaces and data flows
Remove data duplication and create clean systems with consistent integration interfaces

Project Management

Scrum, Kanban

Languages

Ukrainian Russian English Spanish