I focus on application security, exposed data, and AI vendor risk — connecting what an application shows with what it actually exposes.

I’m Tal Forsher, a cyber security specialist with a software engineering background. My work connects application security, data exposure, and AI vendor risk through security-focused products and hands-on investigation.
Investigating the gap between what a public interface displays and what its underlying APIs reveal.
Focusing on access boundaries, data protection, and the difference between public and authenticated access.
Making third-party AI risk easier to understand through the vendor intelligence work behind Forshrr.
Drawing on production software experience to connect security findings with practical changes to applications.
DeltaForsch, Forshrr, and my engineering work on Lunar — followed by the software projects behind my technical foundation.
Security intelligence products that reveal hidden exposure, leaked operational data, and risky disconnects across public digital surfaces
Free AI vendor risk intelligence platform for instantly assessing third-party AI risk
Visit ProjectCyber intelligence platform at Webz.io; my contribution focused on frontend engineering, data visualization, and API integration.
Led complete migration from AngularJS to modern React architecture
The development roles behind my security perspective, including work on Lunar at Webz.io. Historical job titles are preserved below.
Deep expertise in modern frontend technologies with full-stack capabilities
Hover or tap to explore interconnected expertise
Tap a skill node to explore
Real scenarios showing strategic thinking and clean code practices
Component re-rendering too frequently, causing UI lag with large datasets
// Before: Unnecessary re-renders
function DataTable({ data }) {
const [filter, setFilter] = useState('');
const filteredData = data.filter(item =>
item.name.includes(filter)
);
return (
<div>
<input onChange={e => setFilter(e.target.value)} />
{filteredData.map(item => (
<Row key={item.id} data={item} />
))}
</div>
);
}// After: Optimized with memoization
function DataTable({ data }) {
const [filter, setFilter] = useState('');
const filteredData = useMemo(() =>
data.filter(item =>
item.name.toLowerCase().includes(filter.toLowerCase())
), [data, filter]
);
const debouncedFilter = useDeferredValue(filter);
return (
<div>
<input
onChange={e => setFilter(e.target.value)}
value={filter}
/>
<VirtualList items={filteredData} />
</div>
);
}Modern libraries and tools powering this portfolio
Have a question about application security, exposed data, or AI vendor risk? Get in touch to discuss your product, a security-focused role, or a collaboration.
Designed & Built by Tal Forsher • 2026