“I have worked with Jeremy on various projects and have come to know him as a versatile UX designer and developer. He has a solid understanding of the design process and is capable of handling design tasks independently. This makes the collaboration between design and development very smooth. He is agile, eager to adopt new technologies, and brings a practical, entrepreneurial approach to problem-solving.”
Software Developer
Located in Tampere, Finland.
Building reliable, accessible software with strong product UI, solid architecture, and long-term maintainability.
I build products that stay clear, scalable, and easy to work with — for both users and developers.
At a Glance
My background and focus areas
6 years of professional experience in software development
In-house, consultant, and freelance experience
Specializing in product systems
Reusable architecture, design systems, and consistent implementation patterns
Building across frontend and backend
Comfortable owning UI implementation, API integration, and data workflows end to end
What I Do Best
The work I tend to own in production software teams
Design to Delivery
Build production applications from concept through launch.
Design Systems
Build and evolve design systems for large applications
Legacy Redesigns
Modernize legacy interfaces without breaking workflows
Scalable Architecture
Structure codebases for long-term maintainability and team scale
Holistic Development
Balance UX, performance, accessibility, and developer experience
End-to-End Ownership
Own features from idea to production and iteration
Tools & Technologies
Tools I’m comfortable owning in production environments
Application Development
- TypeScript & JavaScript
- React for application UIs
- Next.js for full-stack applications and API routes
- Node.js, REST APIs, SQL, and PostgreSQL
- Semantic, responsive HTML & CSS
Product & Interface Design
- Design-to-code workflows
- Design systems & component libraries
- Accessibility-first development (WCAG)
- Collaboration with product and design teams
Quality & Tooling
- Type safety, ESLint, and linting standards
- Pre-commit hooks & CI/CD
- Code reviews & shared standards
- Testing and production-readiness checks
How I Work
What you can expect when working with me
Ownership Mindset
Own features and outcomes, not just assigned tasks
Quality Over Speed
Prioritize quality while making pragmatic trade-offs
Proactive Communication
Surface constraints early and propose solutions
Follow-through
Carry work through QA, edge cases, and production readiness
Collaborative by Default
Work closely with designers, backend developers, and product teams
Maintainable Code
Write code that’s easy to understand, extend, and hand off
As a coworker
What teams can expect when working with me
Strong client communication
I’m comfortable running conversations with stakeholders, asking the right questions, and translating needs into clear next steps.
Reliable teammate
I follow through on commitments, keep people in the loop, and aim to be predictable in the best way.
Approachable and helpful
I enjoy helping others unblock, reviewing work, and sharing context so the team can move faster together.
Client empathy
I listen carefully, confirm what success looks like, and help keep solutions grounded in real user needs.
Clear handoffs
I document decisions, share context, and leave work in a state where others can pick it up without friction.
Low-ego collaboration
I care more about good outcomes than credit, and I’m happy to adapt when the team finds a better path.
Testimonials
How coworkers and clients describe working with me
Let's Build
I’m interested in teams where software quality matters, ideas are heard, and products are built to last. You can learn more in my full CV.
If that sounds like your team, I’d be happy to talk.