Designer who builds.
Engineer who designs.
I'm Janukshan, a UI/UX designer and software engineer based in Sri Lanka. I work at the intersection of design and code — from the interface to the API.

I started designing because I was frustrated with interfaces that felt unintuitive. I learned to code because I wanted to build the things I was designing, exactly as I designed them — and I kept going until I could ship the whole product, front to back.
As a Product Engineer at Ascentis Technology (a France-based startup, remote), I build features across the stack — from UI implementation to backend logic, automated PDF and asset-generation pipelines in Python, and AI-assisted development workflows. Alongside that I work as a freelance full-stack developer, shipping MERN and Next.js applications for clients.
My work spans e-commerce, marketplaces, deals platforms, and internal tooling. I'm most energised by projects with real constraints — a complex workflow to simplify, an integration to get right, or ambiguous requirements to turn into working software. Recent projects include Offeritz, a production deals platform on a custom domain, and a bilingual voice-to-voice research system built with deep learning.
I'm finishing a BSc (Hons) in Computer Science & Technology at Uva Wellassa University, and outside of work I think and write about accessible design, design systems, and clean, maintainable code.
Design and engineering, across the stack
Design & UI/UX
Languages
Frontend
Backend & Data
Cloud & Tools
Integrations & AI
Principles that guide every project
Clarity over complexity
Good design isn't about adding things, it's about removing everything that doesn't need to be there. I always ask: can this be simpler?
Shipped is better than perfect
I value momentum. A polished product that reaches users beats a perfect prototype that never ships.
Design is a technical discipline
Understanding how interfaces are built changes how you design them. Knowing the constraints makes the designs better, not worse.
Systems thinking
Individual screens are symptoms. I design the system, the components, tokens, and rules, that makes every screen coherent.
Ready to work together?
Open to software engineering roles and freelance projects. Let's talk.