Skip to content

Open to Senior Frontend roles

Freddy Daniel

Senior Frontend Engineer · Vue & Nuxt

Nine years building real-time web applications at one company. Video conferencing, telehealth, and virtual classrooms, almost entirely in Vue and Nuxt.

I work on the hard end of the browser: WebRTC sessions, canvas tooling, Electron desktop builds, and dashboards that have to stay fast with a lot of data on screen. I am looking for a product-focused team where frontend architecture actually matters.

9+
Years shipping

Enterprise web and desktop, one company, 2017 to now

~60%
Less feature time

After standardising device selection into one shared library

20s → 3s
Dashboard load

Analytics rebuild on large datasets, Vuetify and Chart.js

7 yrs
Vue and Nuxt

Continuous frontend specialisation, Vue 2 through Nuxt 4

Live demos

Not screenshots. Running code.

Each of these rebuilds a piece of something I shipped at work, cut down to the part worth looking at. They run entirely in your browser: nothing is uploaded, and nothing here talks to a server.

The reusable camera and microphone picker, rebuilt. Permission states, hidden labels, hot-plug and persisted selection.

From the device selection library, VConsol

Loading demo…

Case studies

Work, with the reasoning attached

Six things I built, why they were built that way, and what I would do differently. The trade-off note on each one is the part I would want to talk through in an interview.

The problem

Camera and microphone pickers had been rewritten by hand in every surface of the product: the web client, the admin console, the Electron desktop app and the pre-call test page. Each one handled permissions, device labels and hot-plug slightly differently, so a bug fixed in one place stayed broken in three others.

Outcome

One implementation behind a small API, adopted across every surface. Feature work that touched device handling dropped by roughly 60%, and a fix now lands everywhere at once.

Trade-off

It is deliberately not a UI component. Each product surface still owns its own markup, which was the right call for white-labelling but means the library cannot enforce consistent UX on its own.

How it was built

  1. 01Pulled device enumeration, permission state and selection persistence out of the UI layer and into one framework-agnostic module.
  2. 02Handled the case most implementations miss: device labels are empty strings until permission is granted, so enumeration has to be re-run after the first getUserMedia call.
  3. 03Subscribed to the devicechange event so plugging in a headset mid-call updates the list and the active track without a page reload.
  4. 04Persisted the chosen deviceId and fell back cleanly when that device disappears between sessions, instead of throwing OverconstrainedError at the user.

Experience

Nine years, one company

Techgentsia is a startup-shaped company with no formal mentoring structure, so most of what is below I worked out and shipped on my own.

  1. Feb 2020 — Present · Infopark Kochi, remote

    Senior Software Engineer, Web Team Lead

    Techgentsia Software Technologies Pvt Ltd

    • Lead a team of five to six engineers on the web client and admin console for VConsol, the company's video conferencing product, while staying roughly 80% hands-on in the code.
    • Built a reusable device selection library in JavaScript, cutting feature development time by around 60% through standardisation and reuse.
    • Developed real-time co-watch, synchronising playback of YouTube, Vimeo, Dailymotion and local video inside live conferencing sessions.
    • Engineered a canvas-based alarm calibration tool with Fabric.js, combining video segmentation with ML action detection to define bed, chair and floor zones for fall and inactivity alerts.
    • Modernised the analytics dashboard with Vuetify and Chart.js, improving chart rendering by about 30% and cutting initial load from 20s to 3s on large datasets.
    • Architected and delivered a cross-platform Electron.js client with multi-tenant white-labelling, dynamic branding and build automation.
    • Designed a Node.js backend (Express, MongoDB, Socket.io) for an education conferencing platform, handling real-time chat and signalling for high-concurrency classroom sessions.
    • Led the migration of a large dashboard from Vue 2 to Vue 3 with the Composition API.
  2. Feb 2017 — Feb 2020 · Cherthala, Kerala

    Software Engineer

    Techgentsia Software Technologies Pvt Ltd

    • Built and maintained RESTful APIs with PHP, CodeIgniter and MySQL for scalable web applications.
    • Optimised MySQL queries and schema design, improving API response times by up to 30%.
    • Implemented real-time video conferencing, live chat and notifications with WebRTC and Socket.io for multi-user collaboration at low latency.
    • Created cross-platform desktop apps with NW.js, email and calendar add-ins, and responsive admin panels.
    • Delivered interactive interfaces with jQuery, Bootstrap and Knockout.js on a virtual classroom platform.

Skills

Sorted by how well I actually know them

A flat list of thirty logos tells you nothing. This is tiered, and the bottom tier is the honest one: things I have shipped with but would need to warm up before being tested on.

Core

Daily, for years. Ask me anything here.

  • Vue 3
  • Nuxt 3 / 4
  • TypeScript
  • JavaScript (ES6+)
  • Composition API
  • Pinia
  • Vuetify
  • Tailwind CSS
  • HTML5 / CSS3

Shipped in production

Built and maintained real features with these.

  • WebRTC
  • WebSocket / Socket.io
  • Electron.js
  • Fabric.js / Canvas
  • Chart.js
  • Node.js / Express
  • MongoDB
  • MySQL
  • REST APIs
  • Vite
  • Git

Prior, now rusty

Used it, would need to warm up before interviewing on it.

  • PHP / CodeIgniter
  • jQuery
  • Knockout.js
  • NW.js
  • Java / Spring Boot
  • Vue 2 / Vuex

Contact

Open to Senior Frontend roles

Vue and Nuxt roles first, senior frontend on any modern JavaScript stack second. Remote, hybrid or onsite in India, and open to relocating. Email is the fastest way to reach me.