Filipe Rica
Senior Software Engineer Angular Full Stack
Phone : +55-699********
Email : ************@*****.***
Address : Porto Velho, Rondônia, Brazil
Linkedin : https://www.linkedin.com/in/filipe-rica-898baa3b0 SUMMARY
Senior Software Engineer with 8 years of experience building reliable software, solving practical problems, and continuously improving systems over time. Brings clear thinking, strong ownership, and a dependable mindset focused on delivering meaningful results. SKILLS
Angular, RxJS, Javascript, TypeScript, Node.js, React, Next.js, HTML, CSS, Tailwind, Git, Python, MySQL, MongoDB, Azure, WebSocket, gRPC, GraphQL, GitHub, Gitlab, CI/CD, Docker, Kubernetes, Jenkins, Jira, Linux, Kafka, Prometheus, Grafana, Scrum EXPERIENCE
Aorton Inc
Senior Software Engineer 05/2023 – 02/2026
Rebuilt the wallet dashboard in Angular by switching all data-heavy components to OnPush change detection and splitting payment flows into lazy-loaded feature modules, cutting the initial bundle from 2.4 MB to 740 KB and reducing first contentful paint by 61% for customers on mobile networks.
Tightened the wallet API client layer by modelling all transfer-response shapes as TypeScript discriminated unions so every error branch was exhaustively handled at compile time, and extracted reusable request-builder logic into generic utility types that several other feature teams adopted within a few sprints.
Replaced a waterfall of REST calls in the transaction-history feed with an Apollo Client GraphQL query backed by normalized cache policies, so revisiting the same date range returned instantly from cache rather than hitting the network a second time.
Fixed a race condition in the live balance refresh flow by replacing nested subscriptions with an RxJS switchMap chain that cancelled in-flight requests on each new trigger and sharing current account state through a BehaviorSubject, dropping duplicate API calls by 78% during high-frequency user interactions.
Eliminated copy-paste boilerplate across the wallet feature modules by authoring a custom Angular CLI schematic invoked through ng generate, scaffolding a consistent component, service, and spec file set with the team's naming conventions and import paths already wired in.
Designed the multi-recipient bulk-transfer form in Angular reactive forms using a dynamic FormArray to handle a variable number of payee rows, with cross-field validators that caught mismatched currency codes before the user even attempted to submit the transfer.
Kept the real-time balance ticker alive through flaky mobile connections by wrapping the server push channel in an RxJS WebSocketSubject and layering exponential-backoff reconnection logic on top, so the displayed balance stayed fresh without the user having to manually refresh the wallet screen.
Hardened the wallet form model against runtime null surprises by enabling TypeScript strict null checks project-wide and introducing mapped types to derive optional read-only variants of core transfer interfaces, catching a class of undefined-access bugs that had previously only surfaced in production logs.
Set up Angular CLI build optimizer with tree-shaking flags and configured bundle budgets as CI gate checks, failing the pipeline automatically when any lazy chunk exceeded its size threshold and keeping the wallet app's JS payload under control as the feature count grew past 40 modules.
Solved the slow-render problem in the transaction-history list by swapping a plain *ngFor over thousands of rows for Angular CDK virtual scroll and pairing it with an Intersection Observer to defer loading statement-detail panels until they actually entered the viewport.
Turned the wallet web app into an installable PWA by running the Angular CLI PWA builder schematic and fine-tuning the service worker manifest cache strategies per asset type, achieving an offline-capable shell that scored 94 on Lighthouse PWA audit and reduced bounce rate by 23% on low-bandwidth devices.
Centralised the wallet app's multi-environment API base URLs and feature flags inside Angular CLI environment config files consumed via ng build --configuration, removing hardcoded strings that had caused the wrong payment gateway to be hit in staging on more than one occasion.
Flexton Inc.
Senior Software Engineer 03/2020 - 03/2023
Modernised the product catalog shell by migrating shared state from a service-with-Subject pattern to Angular Signals and converting the top-level layout components to standalone, shrinking the AppModule declaration list to near zero and cutting change-detection cycles on the category-tree panel by 54%.
Standardised the catalog API response contracts across twelve endpoints by deriving request and response shapes from a single source-of-truth interface using TypeScript utility types and template literal types for dynamic field name generation, eliminating a recurring pattern of hand-maintained duplicate type definitions across feature modules.
Containerised the catalog frontend build pipeline using Docker multi-stage builds to separate the Node compile step from the Nginx serving layer and defined health-check probes so the reverse proxy only routed traffic once the app shell was fully warmed and ready to respond.
Wired the catalog search bar and category filter panel together with an RxJS combineLatest stream gated by debounceTime, collapsing rapid user interactions into a single API call per settled input and cutting search-endpoint request volume by 67% during peak catalog- browse sessions.
Automated the catalog app's design-token generation step by writing a custom Angular CLI builder through the Architect API that ran the token-transform script as part of the standard ng build invocation, removing a manual pre-build step that developers had been forgetting roughly once per sprint and causing CSS inconsistencies in staging.
Built the product-variant quick-edit panel as a reusable Angular Material dialog backed by CDK overlays with configurable entry animations, so the merchandising team could preview and save variant changes without leaving the catalog grid, reducing the average edit workflow from seven navigation steps down to two.
Exposed frontend performance metrics from the catalog app by shipping a custom PromQL- compatible endpoint for Core Web Vitals and wiring Grafana dashboards to surface per-page LCP and CLS trends, giving the team concrete data to prioritise rendering improvements rather than relying on anecdotal user feedback.
Standardised the catalog app's unit test setup by migrating from a manually maintained Karma config to the Angular CLI test runner with a shared test bed factory, reducing per- spec boilerplate and making it straightforward for engineers unfamiliar with Angular testing to write meaningful component specs without copying stale setup code.
Shipped the catalog UI in Portuguese and Spanish by wiring Angular CLI i18n extraction into the CI pipeline and configuring per-locale build targets, delivering fully translated bundles at deploy time rather than runtime and cutting first-load translation-flicker complaints from QA by 88% across both regional storefronts.
Backed the catalog's real-time stock-badge updates with a Kafka consumer group that streamed inventory-change events to the UI layer and routed unprocessable messages to a dead-letter topic, stopping silent stock-level mismatches that had been causing add-to-cart failures during flash-sale traffic peaks.
Nurse.org
Software Engineer 05/2018 – 01/2020
Secured the patient-result portal by adding role-based Angular route guards that redirected unauthorised clinic staff before any data loaded and prefetching specimen details through resolvers so the detail screen appeared instantly rather than showing a loading spinner, reducing complaint tickets about slow navigation by 71%.
Formalised the lab form's dynamic field configuration by defining a custom TypeScript decorator to attach validation metadata to class properties and used index signatures to type the runtime field registry, making it possible to add a new lab parameter with a single annotated line rather than updating three separate configuration objects.
Processed high-frequency sample-status pings from lab hardware by parsing WebSocket binary frames directly in the browser and applying backpressure handling to drain the inbound queue at the render rate, preventing the tracking timeline from freezing under bursts of simultaneous instrument readings.
Parallelised the lab result dashboard's three independent data fetches using an RxJS forkJoin with per-source catchError fallbacks so a slow vendor API never blocked the other panels from rendering, cutting the dashboard's perceived load time from 4.3 s to 1.1 s on the slowest clinic workstations tested.
Unblocked local development against the hospital's CORS-restricted lab API by configuring an Angular CLI proxy file consumed by ng serve --proxy-config, letting engineers iterate on REST integration without needing a backend environment change or browser security flag toggled on their machines.
Added clinical-grade visual feedback to the sample workflow by wiring the Angular animations API to specimen-status state transitions, so technicians got clear motion cues when a sample moved from collection to analysis to reported rather than having to read status-label text under time pressure.
Unified two separate lab-vendor data contracts into one result-reporting query by stitching their GraphQL schemas at the gateway layer and adding DataLoader batching per vendor, so the frontend consumed a single predictable interface regardless of which reference laboratory ran the specimen test.
Plugged end-to-end test coverage gaps in the sample-tracking workflow by wiring the Angular CLI Cypress builder into the pipeline and generating baseline e2e specs for all critical patient-record interactions, catching a regression in the audit-trail submission flow that unit tests had entirely missed and preventing it from reaching the clinical environment.
Enforced consistent code style across a six-person frontend team by configuring Angular CLI ESLint with healthcare-domain-specific rules including mandatory accessibility attributes on interactive elements, reducing lint violations in PRs by 82% within two sprints and surfacing three WCAG-compliance gaps that manual review had overlooked.
Supported the lab report download feature by contributing a Node.js Express middleware that streamed PDF generation through Node streams directly to the response, keeping memory usage flat even when clinicians requested batch exports covering hundreds of patient records simultaneously.
Voolt
Associate 08/2016 - 02/2018
Sped up the carrier-portal's initial load for dispatch managers in low-bandwidth depots by adding Angular Universal server-side rendering and using the TransferState API to hydrate component data on the client without a second network round trip, improving Time to Interactive from 6.8 s to 2.1 s on 3G connections.
Automated the shipment-portal release process by authoring an Angular CLI deployment builder with a Firebase hosting target so the full build, environment swap, and CDN push ran from a single ng deploy command, cutting manual release steps from eleven to two and eliminating the wrong-environment deploys that had occurred twice in the prior quarter.
Kept the live shipment-map feed reliable over carrier depot Wi-Fi by implementing WebSocket heartbeat frames with server-side timeout detection and client-side reconnection retry logic, preventing dispatchers from watching frozen location pins during the brief signal drops that occurred in large warehouse environments.
Extracted carrier-response parsing into a type-safe utility by building a TypeScript conditional type that used the infer keyword to pull the success payload shape out of each carrier's union response type automatically, removing the manual type assertions that had been hiding null-reference errors in the shipment status display.
Structured the tracking portal as an Angular CLI multi-project workspace by configuring separate angular.json project entries for the dispatcher app, the carrier-facing mobile view, and the shared component library, allowing each surface to have its own build targets and style budgets without diverging into separate repositories.
Standardised the local dev environment across three junior engineers by writing a Docker Compose stack with volume mounts for live-reload on the Angular dev server, ending the environment-mismatch friction that had made carrier-integration testing inconsistent across team members' laptops.
Smoothed out the high-frequency GPS location stream on the shipment map by throttling position emissions with RxJS auditTime and multicasting the settled coordinates to both the map marker and the ETA-countdown panel through shareReplay, cutting redundant marker- redraw operations that had been causing visible jank on lower-end depot machines.
Tracked down a 600 KB mystery chunk in the tracking portal by running source map explorer through the Angular CLI bundle analyzer output, identifying a moment.js locale payload that no feature actually needed and replacing it with a lightweight date-fns import that shaved 38% off the vendor bundle size.
Backed the real-time shipment-status badge updates by consuming a Kafka topic keyed on carrier identifier and managing consumer offsets explicitly, preventing the UI from showing stale delivery states after brief consumer restarts during peak morning dispatch windows. EDUCATION
University of Toronto
Bachelor’s degree of Computer Science 2012–2016