/* Modernizing legacy software, one clean commit at a time. */

const developer = "Marko Andersson";|

Marko Andersson
Java Spring Azure JavaScript C# .NET Core SQL Server

About Me & Expertise

Building Web Applications

Java/Spring, C#/.NET Core, JavaScript

Cloud native solutions

Azure, AWS

Modern Software Development

Clean code, Constant feedback, TDD, DevOps, CI/CD

Caring about the Legacy

Appreciating, improving, and evolving existing systems

Pragmatic Agile Methodologies

Focus on principles instead of practices

Leveling Up the Team

Mentoring, knowledge sharing, pairing, code reviews

AI in Software Development

Exploring and utilizing AI tools

My Journey

As a senior developer with over 18 years of experience, I've learned to focus on what really matters: understanding the business context, working closely with teams, and creating sustainable solutions. I connect technology with business needs through clean code that speaks the language of the business domain. This makes communication clearer between technical and non-technical people. For me, Test-Driven Development is a practical tool for designing maintainable software that works as expected.

My biggest lesson over the years is simple: the best solutions are usually the simplest ones. I deliver value in small, frequent iterations with constant feedback, so we can adjust quickly to changing requirements without creating unnecessary complexity. Since every problem exists in its own unique context, I don't believe in one-size-fits-all approaches. Instead, I try different solutions and pick the one that works best for the specific situation.

Let's connect and discuss how I can contribute to your next project.

18+
Years Experience
10+
Projects Delivered
80+
Books read

How I Can Help?

With over 18 years of experience in software development, I bring a pragmatic and sustainable approach to solving complex technical challenges. Here's how I might be able to help you:

My Manifesto

I'm uncovering better ways of developing modern software by doing it and helping others do it. Through this work I have come to value:

  • Sustainable solutions over quick fixes

  • Context-driven problem solving over universal methodologies

  • Adapting to new insights over following the initial plan

  • System thinking over isolated optimizations

  • Customer-centric problem solving over implementing feature lists

  • People collaboration over siloed expertise

  • Understanding root causes over treating symptoms

  • Iterative evolution of legacy systems over immediate, high-risk rewrites

That is, while many think there is value in the items on the right, I only value the items on the left.

I follow these principles:

  • I aim to create code that is not only technically sound but also readable and maintainable for the long term.

  • I write code for humans first, computers second. Clarity and maintainability outweigh clever optimizations.

  • I believe in "leaving the campground cleaner than you found it," consistently producing clean, well-tested code.

  • I understand knowledge sharing multiplies the impact of good solutions. Documentation and mentoring are essential parts of the process.

  • I understand that technical challenges are often symptoms of underlying organizational patterns.

  • I focus on investigating the underlying needs and the "why" behind the "what" when solving problems.

  • I aim to create a shared understanding between developers and business stakeholders where the code reflects real-world actions and concepts.

  • I understand that each system and its organizational context is unique, and "ready recipes" for improvement rarely succeed.

  • I recognize that significant change is a team effort requiring buy-in and collaboration from other developers, business stakeholders, and those skilled in navigating organizational dynamics.

  • I view TDD primarily as a tool for designing software that precisely meets requirements and exhibits good internal structure.

  • I prioritize a pragmatic approach to delivering working software that truly meets user needs.

  • I recognize the inherent business value in systems that have served their purpose over years instead of calling them legacy.

  • I focus on strategic, iterative evolution rather than immediate, high-risk rewrites.

  • I leverage techniques for safely refactoring and introducing tests into systems lacking adequate test harnesses.

  • I believe that true value comes from deeply understanding the problems customers are trying to solve.

  • I think business value is the ultimate measure of technical success. Technology serves people, not the other way around.

What People Say

Featured Projects

Digital Media Platform Modernization

Media company | Lead/Senior Developer | 10+ people | 3 years
C#.NET CoreAzureJavaScriptSQL Server

As a senior developer, I contributed to modernizing a legacy self-service platform in the media industry. I implemented CI/CD pipelines and helped establish domain-aligned architecture principles. My role included designing and implementing integration between the legacy database system and a modern third-party SaaS service platform, which enabled new capabilities while maintaining system stability. I created robust test harnesses that supported confident feature development in a complex environment where multiple applications shared a single database.

I set up automated CI/CD pipelines for the legacy application using Azure DevOps, helping transform the process from manual to automated deployments and enabling more frequent, smaller releases. I suggested practical improvements to team dynamics, such as establishing shared sprint goals and limiting work-in-progress within my areas of influence.

I participated in planning sessions with stakeholders to better align priorities before development began when possible. I provided technical guidance to team members, demonstrating clean code practices and domain-driven design principles through practical examples in my contributions.

I focused on deeply understanding the business domain to ensure my technical solutions aligned with real user needs and business objectives. I balanced addressing technical debt with new feature development in my work areas, ensuring continuous delivery of business value despite the challenges of a large-scale rewrite. This project demonstrates my commitment to creating sustainable value through quality engineering practices, even when working within constraints of broader project decisions.

I iteratively reimplemented old stored procedure logic as C# code by incrementally moving the SQL to the C# project and then refactoring it to EF Core queries and C# logic, all while maintaining the working system. The partial rewrite was secured with extensive blackbox and integration tests to ensure reliability and business continuity.

Product Lifecycle Management System

Multinational electric engineering company | Lead Developer & Mentor | 4+ people | 1 year
JavaSpringAzureAzure SQL

Developed a product lifecycle management system that streamlined the entire process of product changes, including Bill of Materials (BOM) management and structured review workflows. Created a Java/Spring backend and web UI, while also developing a companion mobile client that enabled field technicians to document investigations of damaged products with photos and evidence, significantly improving report quality.

Implemented a detailed investigation module for damaged or malfunctioning products, allowing engineers to document findings and track resolution progress. The mobile client significantly improved the quality of field reports by providing real-time data collection capabilities.

Designed an web UI for the main system that streamlined the review and approval workflows, making it easier for stakeholders to collaborate on product changes. Integrated document management capabilities to ensure all product specifications and change documentation were properly versioned and accessible.

Mentored junior developers on the project, providing guidance on best practices in software development, code reviews, and architectural decisions. Established coding standards and documentation practices that improved overall code quality and team productivity.

High Security Government Project

Finnish government | Senior Developer | 5+ people | 6 months
JavaSpringPython

Enhanced a high-security system for the Finnish government that involved complex integrations with various government systems and third-party platforms. Established a more effective workflow for demoing the software directly to end-customers, which significantly improved feedback cycles and stakeholder satisfaction. Improved feature design using UI sketches and mocking to design UI features with stakeholders.

Sharepoint Application Modernization

Multinational electric engineering company | Lead Developer | 3+ people | 1 year
C#.NET CoreReactAzure,Sharepoint

Led the successful modernization of a legacy Sharepoint application by reimplementing outdated views with modern React components while porting selected C# code to .NET Core. This transformation improved user experience, application responsiveness, and overall performance. Designed a clean architecture that separated frontend and backend concerns, making the system more maintainable and easier to extend while establishing automated testing practices to ensure feature parity.

Carefully analyzed the existing codebase to identify components that could be reused and those that needed to be rebuilt, ensuring an efficient modernization process that preserved valuable legacy functionality while eliminating technical debt.

Completely reimplemented the outdated Sharepoint views with modern React components, improving the user experience and application responsiveness. The new architecture made the system more maintainable and easier to extend.

Established automated testing practices that ensured the modernized application maintained feature parity with the legacy system while enabling safer future enhancements. Worked closely with the client to prioritize features and deliver incremental value throughout the modernization process.

Order Tracking System

Multinational electric engineering company | Lead Developer & Scrum Master | 3+ people | 2+ years
JavaSpringAzureAzure SQL

Led the end-to-end development of a cloud-native order tracking system with worldwide usage, from initial sales and requirements gathering to final delivery. The system allowed customers to track orders in real-time and receive status notifications through a responsive UI. As scrum master, implemented an approach where customers directly tried the software in test environments during weekly demos, creating high trust and earning recognition from the client.

Created a integration layer to pull data from the legacy internal order management system that previously couldn't provide data to external users. Architected the solution to run entirely in Azure, leveraging cloud services for scalability, reliability, and global accessibility.

Implemented a secure data synchronization mechanism that protected sensitive information while providing customers with the details they needed. Advocated for and implemented DevOps practices, setting up continuous integration and delivery pipelines that enabled frequent, reliable deployments.

Collaborated with UX designers to create an intuitive interface that received positive feedback from international users. The weekly demo approach where customers directly tried the software in the test environment, instead of us presenting finished features, created high trust between the client and the team and resulted in recognition for this project management approach.

PIM to Webshop Integration

Finnish retail company | Senior Developer | 9+ people | 6 months
JavaScriptAWS LambdaNode.jsAWS

Helped to implement a serverless, cloud-native integration between a legacy Product Information Management (PIM) system and a new webshop frontend using JavaScript and AWS Lambda. Created robust data transformation services that normalized and enriched product data while implementing optimized caching strategies to ensure fast response times and efficient resource utilization in the cloud environment.

Developed a seamless data flow between the systems that enabled the modern webshop to access and display product information from the legacy PIM system without requiring major changes to either system. The serverless architecture provided cost-effective scaling to handle varying loads.

Collaborated closely with both the PIM team and frontend developers to ensure the integration met all requirements and provided a consistent user experience. Established monitoring and alerting for the serverless functions to ensure reliability and quick response to any issues in the production environment.

Transportation Management System

Technology and services company | Senior Developer | 8+ people | 3+ years
JavaSpringJavaScriptSQL ServerAzure

Participated in the development and improvement of established transportation management system. Successfully established API specifications and coordinated development efforts between two companies, ensuring seamless integration and data flow while maintaining data integrity and functionality. Implemented highly praised features that significantly improved user experience and operational efficiency in the logistics domain.

Applied clean code practices and test-driven development to ensure high-quality, maintainable code. Collaborated closely with stakeholders to understand business requirements and translate them into technical solutions that addressed real user needs in the logistics domain.

Participated in planning steps to modernize and simplify the existing system that had become too complex over time. The system had accumulated numerous features over the years without removing unused ones, leading to maintenance challenges and decreased development velocity. Our team analyzed usage patterns, identified obsolete features, and created a phased approach to streamline the system while maintaining critical functionality. This modernization initiative improved system performance, reduced maintenance costs, and enhanced the overall user experience.

Multiplayer Game Communication Servers

Finnish game studio | Senior Developer | 3+ people | 2+ years
JavaSpringJMSCassandraVaadinREST

Participated architecting and building pioneering high-performance communication servers for multiplayer mobile games that enabled real-time interaction between game clients. This custom solution, developed before such functionality became commonplace via Unity and cloud services, included a complete ecosystem with CMS for game developers, JMS-based messaging, clustered Cassandra databases for scalability, and comprehensive monitoring systems that maintained 99.9% uptime for mission-critical gaming infrastructure.

Created a CMS system for game developers to modify, synchronize, and publish game-related data to test and production databases. This significantly streamlined the game development workflow and reduced time-to-market for new game features and updates.

Implemented an enterprise communication system based on JMS (Java Message Service) to ensure reliable message delivery between system components. Developed server monitoring and controlling systems to maintain high availability and performance.

Built data collection mechanisms and visualization tools to present historical performance data, enabling proactive system optimization. Designed and implemented various REST interfaces for client applications, optimizing data access with clustered Cassandra databases for high scalability.

Created user interfaces using Vaadin framework for internal tools and administration panels. Introduced strong unit and integration testing practices to the team, significantly improving code quality and reducing errors in the mission-critical back-end servers. Led project teams and mentored other developers in best practices for high-performance server development.

Test Data Generation Utility

Energy meter manufacturer | Development Consultant | 1+ people | 1+ years
SQL

Developed a sophisticated test data generation framework for energy meter systems that significantly reduced test setup time and improved test coverage by simulating diverse energy consumption patterns, meter readings, and customer scenarios. As the first consultant on the project, delivered such exceptional value that the client expanded their consulting engagement. The solution maintained complex referential integrity and business rules while creating realistic test scenarios that helped identify critical issues before production deployment.

Designed the framework with flexibility in mind, allowing testers to easily configure different test scenarios without requiring deep technical knowledge of the underlying database structure. This democratized testing and enabled more thorough validation of system behavior under diverse conditions.

Developed utilities to clean up generated test data after test execution, ensuring the test environment remained in a consistent state between test runs. Created documentation and training materials to help the testing team effectively utilize the data generation tools.

Worked closely with quality assurance teams to understand their testing requirements and continuously improved the data generation utility based on their feedback. The solution significantly reduced the time required to set up test scenarios and improved test coverage across the application.

Certificate Management System

Nordic telecom company | Software Developer | 4+ people | 4+ years
JavaSpringMicrosoft Active Directory

Participated of developing a secure certificate management system for a Finnish telecom company that simplified complex PKI operations while maintaining security standards. The system handled the complete lifecycle of CA certificates—managing, signing, revoking, and listing—with Microsoft Active Directory integration and comprehensive audit logging for compliance. Created intuitive interfaces that made certificate management accessible to non-technical users while automating workflows to reduce manual errors.

Enhanced an existing custom configuration management system before participating in creating a completely new system based on the existing platform. The new system significantly improved security compliance and operational efficiency for the telecom company's certificate management processes.

Developed robust integration with Microsoft Active Directory for secure user authentication and authorization, ensuring that only authorized personnel could access sensitive certificate operations. Implemented comprehensive logging and audit trails to maintain security compliance and traceability of all certificate-related actions.

Collaborated closely with security experts to ensure the system adhered to industry standards and best practices for public key infrastructure (PKI). Participated in code reviews and security audits to maintain the highest level of security throughout the development lifecycle.

Books That Influenced Me