Andrei Sabau

Typescript / SAP CAP Aficionado with 15+ Years FullStack Development Experience

About Me

I've been using typescript for both frontend and backend development for the last 7+ years. It has become my favorite web programming language as a replacement to javascript due to its strongly type nature.

During this time I've switched back and forth between the SAP ecosystem (I'm a certified ABAP developer, lately focusing on SAPUI5/CAP) and regular Node.js one. See SAPUI5 CV variant for more info.

On frontend I mainly work within the React ecosystem with or without Next being proficient with both class based and functional components. Depending on the nature of the project I've used either React.Context, Redux or Zustand for state management and classic REST APIs or GraphQL (Apollo implementation) for data fetching. I turn to Rxjs for advanced asynchronous or callback-based code.

On backend I'm using Node.js with Prisma or Knex for interacting with the database, Express for REST APIs and Server Side Events, Passport for authentication using mostly JSON Web Token strategies, Nest for advanced authorization and complex logic requiring multiple modules, controllers and services.

Throughout the stack I'm using:

  • Eslint and Prettier for linting and formatting
  • SonarQube for advanced static analysis
  • Jest and Sinon for unit testing and mocking
  • Cypress and Puppeteer for end-to-end testing
  • Npm Audit, Whitesource for 3rd party vulnerabilities scan
  • Webpack, Rollup for CommonJS, ESM format bundling
  • Lerna, Npm workspaces for monorepo management

When automating cloud deployments outside AWS I use Terraform for provisioning server instances plus the necessary infrastructure (VPCs, SSH/PGP keys, etc.). After an instance is created, using the local-exec provisioner, Ansible playbooks are run to configure it. I use Docker, Docker-Compose for local orchestration.

As an AWS Certified Developer I'm most proficient with API Gateway and Lambda (nodejs handlers) using SAM templates to define the infrastructure and SAM CLI to locally test and afterwards deploy all defined resources within a single CloudFormation stack.

To get a feel of my coding style and expertise please take a look at github.com/get-set-fetch/scraper with its accompanying documentation available at getsetfetch.org. This Node.js scraper contains a command line, Docker container, Terraform module and Ansible roles for distributed cloud scraping. It supports multiple SQL databases (SQLite, MySQL, PostgreSQL) and multiple headless clients (Puppeteer, Playwright, Cheerio, JSdom). The static documentation resources are served using Cloudflare CDN.

From time to time I use Python, C++, R for implementing code behind scientific articles I find interesting like Spiking neural P systems or from my own: MaStream, BloomStream. You can find on Google Scholar a full list of articles I've published during my PhD program.

I've been using typescript for both frontend and backend development for the last 7+ years. It has become my favorite web programming language as a replacement to javascript due to its strongly type nature.

During this time I've switched back and forth between the SAP ecosystem (I'm a certified ABAP developer, lately focusing on SAPUI5/CAP) and regular Node.js one. See SAPUI5 CV variant for more info.

On frontend I mainly work within the React ecosystem with or without Next being proficient with both class based and functional components. Depending on the nature of the project I've used either React.Context, Redux or Zustand for state management and classic REST APIs or GraphQL (Apollo implementation) for data fetching. I turn to Rxjs for advanced asynchronous or callback-based code.

On backend I'm using Node.js with Prisma or Knex for interacting with the database, Express for REST APIs and Server Side Events, Passport for authentication using mostly JSON Web Token strategies, Nest for advanced authorization and complex logic requiring multiple modules, controllers and services.

Throughout the stack I'm using:

  • Eslint and Prettier for linting and formatting
  • SonarQube for advanced static analysis
  • Jest and Sinon for unit testing and mocking
  • Cypress and Puppeteer for end-to-end testing
  • Npm Audit, Whitesource for 3rd party vulnerabilities scan
  • Webpack, Rollup for CommonJS, ESM format bundling
  • Lerna, Npm workspaces for monorepo management

When automating cloud deployments outside AWS I use Terraform for provisioning server instances plus the necessary infrastructure (VPCs, SSH/PGP keys, etc.). After an instance is created, using the local-exec provisioner, Ansible playbooks are run to configure it. I use Docker, Docker-Compose for local orchestration.

As an AWS Certified Developer I'm most proficient with API Gateway and Lambda (nodejs handlers) using SAM templates to define the infrastructure and SAM CLI to locally test and afterwards deploy all defined resources within a single CloudFormation stack.

To get a feel of my coding style and expertise please take a look at github.com/get-set-fetch/scraper with its accompanying documentation available at getsetfetch.org. This Node.js scraper contains a command line, Docker container, Terraform module and Ansible roles for distributed cloud scraping. It supports multiple SQL databases (SQLite, MySQL, PostgreSQL) and multiple headless clients (Puppeteer, Playwright, Cheerio, JSdom). The static documentation resources are served using Cloudflare CDN.

From time to time I use Python, C++, R for implementing code behind scientific articles I find interesting like Spiking neural P systems or from my own: MaStream, BloomStream. You can find on Google Scholar a full list of articles I've published during my PhD program.

Experience

SabDev

Software Architect

May 2023 - present

My own development company. Working again as a freelancer. I realised I missed knowing new people and working with different teams.

Companies I've helped so far:

  • Apeiron Insights, May 2023 - September 2023

    Dutch early stage tech leader in the provision of telecommunications market intelligence

    • migrated, refactored existing Node.js javascript modules to typescript
    • developed new Node.js typescript modules
    • upgraded storage to AWS hosted MySQL instances
    • created CI/CD pipelines for building, testing, deploying to test and production environments
    • mentored existing (both junior and senior) developers
    • partially served as an in-between contact between different teams

Axway

Software Architect

January 2022 - March 2023

axway.com

Frontend Responsibilities

  • Led the React typescript development effort of core and common components internally published npm packages
  • Mentored several international plugin teams using the above npm packages
  • Interviewed and screened new candidates

Backend Responsibilities

  • Developed Node.js based REST APIs / GraphQL using Express
  • Developed Java OSGi based REST APIs using Jersey

Achievements

  • More than halved loading times by developing a custom micro frontend framework as an alternative to Webpack Module Federation and Single-Spa.
    Core and plugin projects with separate git repos, separate release lifecycle, separate teams across different time zones are merged into a single screen so that the end-user no longer loads a new tab when switching from core-to-plugin, plugin-to-plugin functionalities.

Axway

Senior Full Stack Web Developer

July 2010 - December 2021

axway.com

Frontend Responsibilities

  • Led the React typescript development effort of core and common components internally published npm packages
  • Mentored several international plugin teams using the above npm packages
  • Developed and later maintained javascript frontends with Require.js and Backbone
  • Interviewed and screened new candidates

Backend Responsibilities

  • Developed Node.js based REST APIs / GraphQL using Express
  • Developed Java OSGi based REST APIs using Jersey

Achievements

  • Significantly increased team(s) development speed by using json-schema definitions for automatic form generations. Think react-jsonschema-form combined with react-hook-form allowing multi-schema and multi-model merge. Custom json-schema properties were added allowing REST APIs based custom async field validation, dynamic population of dropdowns, text input autocomplete suggestions, etc...

Met Accounting

Project Manager

Apr 2009 - Jul 2010

economis.ro

Internal controls management software.

Led the development of a new accounting software product throughout its entire development cycle from defining specifications to final release.

Vsolay / DemosOnDemand

Flex/Actionscript Lead

May 2008 - Apr 2009

demosondemand.com/

Startup serving the communication needs of tech vendors across vertical industries with video-based delivery technology and content production services.

Coordination and development of Flex based admin tools tightly integrated with map based flash video players.

PointMarketing

Actionscript Lead

Feb 2007 - Apr 2008

pointmarketing.net

Software and services company delivering innovative sales and training content via a suite of streaming media platforms.

Coordination and development of run-time generated flash video players.

eMax Media

Owner, Project Manager

Nov 2002 - Jan 2007

flopen.com

My own small development team with some of the projects listed under flopen.com.

Launched a relative successful SaaS - Flash Intro Builder.

Education

UPIT

PhD in Informatics

2013 - 2016

University of Pitesti, Faculty of Informatics

Dissertation: Data Mining Clustering Techniques used in Financial Fraud Audit

A novel alternative to the traditional two phase stream clustering scheme is proposed, introducing sketch-based data structures for assessing both stream density and cluster membership with probabilistic accuracy guarantees. A count-min sketch using a damped window model estimates stream density. Bloom filters employing a variation of active-active buffering estimate cluster membership. Instances of both types of sketches share the same set of hash functions. The resulting stream clustering algorithm is capable of detecting arbitrarily shaped clusters while correctly handling outliers and making no assumption on the total number of clusters.
See Stream Clustering using Probabilistic Data Structures and its R/C++ implementation.

See Google Scholar Account for all publications.

ASE

Professional Master

2010 - 2013

Bucharest University of Economic Studies, Faculty of Economic Cybernetics, Statistics and Informatics

SIMPRE Professional Master Program
in partnership with Oracle, SAP, Microsoft and Deloitte.

Focused on Business Intelligence and Enterprise Resource Planning around SAP and NAVISION development.

ASE

Bachelor of Economics

1998 - 2002

Bucharest University of Economic Studies, Faculty of Marketing

Marketing Research specialization. Dissertation titled “Online Advertising”, 2002.

Certifications

Amazon Web Services

AWS Certified Developer

2023

AWS Certified Developer - Associate

Develop and secure applications by using AWS service APIs, the AWS CLI, and SDKs. Use a CI/CD pipeline to deploy applications on AWS.

Sun Microsystems

Sun Certified Associate

2010

Sun Certified Associate for the Java 2 Platform, SE 6.0

Java Implementation of Object-Oriented Concepts, Algorithm Design and Implementation, Java Development Fundamentals, Java Platforms and Integration Technologies, Java Client Technologies, Java Server Technologies.

Sun Microsystems

Sun Certified Programmer

2010

Sun Certified Associate for the Java 2 Platform, SE 6.0

API Contents, Flow Control, Declarations, Initialization and Scoping, OO Concepts, Concurrency, Collections / Generics.

Oracle

Oracle Database 11g

2010

Oracle Database 11g: SQL Fundamentals I

Restricting and Sorting Data, Single-Row Functions, Conditional Expressions, Reporting Aggregated Data, Subqueries, SET Operators, DML Statements, DDL Statements.

SAP

SAP Certified Development Associate

2009

SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

ABAP Workbench, ABAP Dictionary, Open SQL, Dynpros, ALV Grid Control, Unicode, LUW, ABAP Objects, Runtime Type Services, Web Dynpro, SAP Enhancements and Modifications.

Personal Projects

Written in Typescript. Runs in Node.js.
Contains a command line, Docker container, Terraform module and Ansible roles for distributed cloud scraping.
Supported databases: SQLite, MySQL, PostgreSQL.
Supported headless clients: Puppeteer, Playwright, Cheerio, JSdom.
CI: Github Actions.
Documentation CDN: Cloudflare.

Written in Typescript with class based React components.
Uses Lerna for monorepo management.
Cross-browser extension compatible with Firefox, Chrome, Edge.
Uses IndexedDB browser builtin database for storage.
CI: Github Actions