Victor Fernandes
BuildingPerformantFrontends atScale
I'm a software engineer with 12+ years of experience building secure, reliable, and high-performance web applications. Across roles at Media.net, CleverTap, and Upwork, I've developed a product mindset centered on scale, accessibility, and resilience.
Having worked with
- Real-time messaging and collaboration tools impacting 20M+ users.
- Scaled cross-team development via micro-frontends.
- Open-source SDK with 25k+ weekly downloads.
- Built Vue-based SaaS dashboards for real-time user behavioral analytics.
- Full-stack push notification system with 100K+ subscribers.
- Dashboard to analyze gigabytes of daily analytics data.
My focus areas include website performance optimization, application hardening, and single-page applications. You can learn more about my career on LinkedIn(opens in a new tab) and explore selected source-available work on Github(opens in a new tab).
Martin Fowler's words have made an impact on the way I write software. In the era of AI enabled programming this is needed more than ever. I ensure my work is clean, maintainable, and easy to understand. I strongly believe that your code is the best documentation and it should be understandable by both experienced and new developers.
My AI first Production Pipeline
We are living in fascinating times with AI getting better with time. While AI has not replaced the need for engineering it has left me with more time to architect rather write syntax. The secret to moving from AI generated slop to production ready code is setting the right context. You could ask for a react component that does something but you should feed the model your design tokens, component hierarchy, and specific library versions. By treating the LLM as a high-speed junior with an infinite memory but zero intuition, you ensure the output aligns with your existing architectural patterns rather than drifting into "hallucinated" APIs or deprecated methods.
Build a "Source of Truth" Context Layer
I maintain a .cursorrules or a dedicated agents.md that defines our internal design system, specific Zod schemas, and "do-not-use" anti-patterns. This ensures the AI doesn't just write "good code," but our code.
Embrace Agentic Orchestration.
Instead of manually propagating changes across the codebase, define the high-level architectural intent. Let the agent manage the file system, execute CLI tools, and resolve compiler/linter errors through autonomous feedback loops. Your value shifts from writing lines to auditing logic and approving the diff.
Enforce Logic Transparency.
If an agent generates high-density logic (such as complex useEffects or RxJS streams), demand a step-by-step breakdown. If the AI cannot justify its implementation within your specific constraints, it is technical debt. Do not commit it.
Mandate Red-Team Validation.
AI is inherently biased toward its own logic. Use an Adversarial Approach: one agent builds the feature, while a fresh, isolated session attempts to break it, hunt for edge cases, and write the test suite.