About me
Full stack web developer with over 15 years of experience, 5 of which spent leading teams.
Good at communicating technical details to both tech and non-tech stakeholders. Always striving to apply the best approach for the job at hand, minimizing technical complexity to ensure expedient delivery and ease of maintenance, while leaving enough room for future development.
I build software and websites
Custom business applications & SaaS platforms
- Automating and tracking various business processes.
- Automating communication and notifications inside your organization or with partners and clients.
- Generating reports that can help you, your partners and clients track progress and make informed decisions.
- Integration with partner or 3rd party applications. For example, booking services or shipping gateways.
- Integration with special equipment. For example, special label printers or pill dispensing machines for pharmacies.
Websites & webshops
- Presentational websites
- Single purchase & subscription based webshops
- Booking sites
I can also help you with rescuing applications stranded in development hell
If you have an application that's partially done, but your development team has stopped making progress, I can help you reach the finish line and get your app ready for real use.
Complex rescue projects get a discounted rate for the first month, until I get a good grasp on everything and start delivering at full speed.
Get in touch
If you have an idea you'd like to realize, need an opinion on the feasibility of a project or would like to have something estimated, book a free consultation and let's get this show on the road!
As a team lead
Improving processes and pipelines and in order to make a predictable environment where programmers can do what they’re best at, all the while maintaining transparency so that all interested parties can clearly see and understand what’s going on in development.
I don't like "one size fits all" solutions, and will always strive to apply the best approach for the job at hand, minimizing technical complexity to ensure expedient delivery and ease of maintenance, while leaving enough room for future development.
When something complex needs to be made, I organize and moderate discussion with all involved personnel, so that the entire team or teams exchange and challenge ideas and come up with the best possible solution.
On a day-to-day basis, besides writing a lot of code, I'm involved in planning and estimating work that needs to be done, help junior members of the team improve their skills and make sure everyone has something to do. I'm the first line of tech support in the team, helping out with anything, from issues in the development environment to clearing up vague or missing specifications in the assigned tasks. I also conduct and participate in technical interviews.
Technical skills
Obviously not design. But is that even a technical skill?
Architecture / infrastructure / devops
- Application architecture
- Database architecture
- Linux web servers administration
- Amazon web services
- Digital ocean
- Docker
- Vagrant
- GIT
Software development
- PHP
- Symfony
- Laravel
- WordPress
- JavaScript
- Node.js
- Vue.js
- React
- CSS
- SASS
- HTML
- Build tools: Webpack, Gulp, Grunt
Interesting projects
Crowdsearch for Roskilde festival 2016.
Crowdsearch was a mobile app used by tens of thousands of Roskilde attendees to find their friends in the crowded spaces of festival's many concerts. Folkmatic made Crowdsearch app for Roskilde 2015, which was well received but got overwhelmed by the huge number of users during the festival's peak hours. Our goal for 2016. was to improve the backend so that it can handle the load we learned to expect. Using New Relic profiling data from the previous year, we identified the database as the main bottleneck and decided to put Redis in front of it as a layer of persistent cache. RabbitMQ was used to asynchronously update the database with the latest data from Redis. The backend was deployed on a dozen servers behind a load balancer on AWS. We used New Relic to monitor the servers and make sure everything was working smoothly.
That year we got everything right, which won us a Danish Digital Award, and I got to really fall in love with the flexibility offered by AWS.
Tech stack: Symfony, Apache, SQL, Redis, RabbitMQ, AWS, New Relic
ch-aviation
A subscription-based platform for providing news and intelligence - fleet data, ownership details, market analysis, and industry trends on the global aviation industry.
Their services are often used by aviation professionals, including airline operators, travel agencies, and analysts, to make informed decisions. They collect and curate data from various sources, providing real-time updates and historical information on the aviation market. Their clients include industry leaders such as Airbus, AerCap, Delta Airlines, and others.
Tech stack: PHP, SQL, React
medialabel
An influencer marketing platform that brings together brands and influencers for running performance-based marketing campaigns on various social networks. Implemented as a set of mobile and web applications for influencers, brands, and management.
Tech stack: PHP, Laravel, Vue.js, Redis, MongoDB, Elasticsearch, MySql, Docker, AWS
Playtype
A webshop for fonts made by Playtype design agency. Due to the complexity of font licensing and many criteria for discount application, WooCommerce was not used. Instead, WordPress was chosen as the storefront because of ease of maintenance for Playtype staff, while the store itself was developed as a small custom Symfony web application. Those two sites were integrated via API, so that the customer only sees a single store.
Tech stack: PHP, WordPress, Symfony, Vue.js, MySql, AWS, Stripe
Zentabox
Website for Zentabox - a startup in the dietary supplements industry. Their idea was to create a truly customized supplements subscription for each customer, on scale. In order to do that, Zentabox team devised a questionnaire that goes trough important dietary and lifestyle habits of potential customers and comes up with a supplements package suited to improving areas where each customer is deficient. We were given the task of making their plan a reality. We coded the many questions and rules of the questionnaire in JavaScript, making the core of the site. All that was packed in a mobile-first, sharply designed package, integrated with Stripe for handling payments, a Danish online shipping gateway and Intercom for communication customized for each customer.
Tech stack: Symfony, Apache, SQL, AWS, Stripe, Intercom
HUBX capital
Web and mobile application for private equity market. A modern platform that's allowing financial advisors to create portfolios of pre-public companies and startups looking for funding tailored to the needs and interests of their investor clientele.
I was leading one of three web teams involved in development of the application. We were developing REST APIs on the backend, for use by our Vue.js frontend as well as mobile applications. About 90% of backend was covered by unit tests. We also forced good practices like code review and automatic linting with PHPMD and PHPStan. That way we were sure to maintain decent code quality on a project developed over the course of more than two years by a team of varying size and level of seniority.
Scrum was our chosen methodology.
Tech stack: Symfony, Vue.js, NGINX, SQL, AWS simple queues, AWS, Jenkins, web sockets
Housing Denmark
Website for a major real estate agency in Denmark. Developed in three stages, one for each major sections of the site: premium, services and marketplace. Our main challenge was to identify and create flexible content blocks that we could reuse on other sections of the site, in order to cut cost and development time without compromising code quality.
Tech stack: Symfony, Apache, SQL, AWS, Stripe