
Hire me!
I'm Daniel and I'm a fullstack developer specialised in web applications. I've programmed for twenty years, the last ten professionally and founded startups. I help companies explore and realise new revenue streams by delivering proof of concepts and minimally viable products. I'm also available as a freelance developer. Contact me!
TL;DR
I’m a tech lead that enjoys delivering top-notch software quickly. Founding a start-up gave me some tough lessons on how not to run a business. I enjoy teaching; seeing people learn and grow is one of the best experiences in life. Programming is fun.
To get in touch with me see my contact page.
Principles
These are the principles that guides my work. Though, in fairness, I don’t follow them as often as I would like to.
It pays to be kind.
Working smart beats working hard almost every time, 10x developers don’t necessarily work more hours.
To reap you must first sow. In tech that means you need to invest in production capability if you want to reliably produce anything of value.
People fail, and must be allowed to fail. That’s why quality assurance should be automated. A flaw in quality is a flaw in the process, not in the people.
Always reduce work in progress and batch size.
The best way to delegate is by fostering leaders to do your job.
Collaboration, including pair and mob programming, works.
Current ambitions
In the next months I will be available as a freelancer/consultant. I see myself providing most value in leadership positions. In such positions I would help the move the company further along the “DevOps journey”. More specifically that would mean delivering more work, faster, and with lower rates of failure. I also see myself mentoring junior team members and helping the team as a whole develop their craft. Lastly, I imagine that in my role I would often interface with customers, or sales, to deliver value.
Skills
Skill | Proficiency |
---|---|
Javascript/Typescript | 5 |
Vue | 5 |
DevOps practices | 4 |
SQL (MySQL/PostrgreSQL) | 4 |
Elixir | 4 |
Java | 4 |
AngularJS/Angular 2+ | 3 |
Go | 3 |
Ionic | 3 |
AWS | 3 |
Kafka/KSQL | 3 |
CubeJS | 3 |
Python | 3 |
Linux | 2 |
MongoDB | 2 |
Git | 2 |
Bash | 1 |
The scale is 1-5 where 5 is “back of my hand” and 1 is “passable”.
I like to think of myself as an aspiring polymath which means I might know one or two things not on this list. For example I consider myself to be an advanced beginner in topics relating to marketing, sales and business development. I’ve written some kind of code in at least Racket, Clojure, Elixir, C, C++, Python, Java, Scala, Typescript, Coffescript, Objective-C, PHP, Ruby, Go, Bash, Swift, Haskell, Prolog, Assembly, Elm and quite possible some other languages I’ve forgotten. I’ve done deploys using Terraform, Ansible and Puppet both on bare metal and on Docker via Jenkins, Github Actions and CircleCi.
Tech Lead (2020-2025)
At Flinker I’m leading a fullstack team that started out as three members, counting myself, that has grown to five members, and then contracted due to circumstances outside my control.
What I’m most proud of is how my colleagues have grown since I joined and I believed I’ve mentored, taught and empowered our junior developers to be productive and bold.
One of my greatest tasks have been to migrate our frontend from PHP + jQuery to Vue.
We started out as a frontend team but during the last year we have, under my leadership, transitioned to become a fullstack team as a way to remove blockers in our development flow. Since then we have delivered new functionality, and improved old, while keeping an uptime of more than 99.99%.
I’m proud of moving our release schedule from once every other month to deploying 3-5 times per week, and we’ve done it with a change fail rate below 5%. Running blameless post mortems after each production incident has been key in achieving a low change fail rate. Our lead time from starting work on a task to having delivered it to production is usually below 48 hours.
I’ve deployed and maintained our Kafka cluster, which in combination with CubeJS, gives our customers powerful tools for analysing their data.
Intermezzo (2019-2020)
After I left peerCast I worked for about a year as a consultant. First at Nectima and then at Rebel & Bird after they acquired Nectima. Shortly after that, in April 2020, I joined Flinker as frontend lead.
Startup Founder (2015-2019)
While at school I dropped out and co-founded a startup named peerCast that I worked at for four years. We’ve done two pivots, Fliffr and EagleDial, but our focus has always been on combining live video with pay-per-minute transactions. Since founding the company I have grown tremendously as a programmer. I’ve been a jack of all trades and have worked with marketing, sales, accounting (oh, the horror!), and of course development.
Staying with the same product that you’ve helped build for four years really let’s you see all the mistakes you’ve done and I’ve taken to heart how to build simple and maintainable software. YAGNI, and thus reducing scope, has become a personal mantra of mine. Together with my co-founders I have designed, architected, implemented and maintained both backend and frontend software. I pride myself on being able to independently solve most problems that come my way, but I also know when to ask for help because I’ve seen my “solutions” backfire when deployed to prod. I’ve become a firm believer in process. For me this means rigorous testing, routines for deployment and the least amount of manual work involved in all steps of testing and deploying software.
As a founder I’ve been in charged of, and executing on, everything from running AdWords campaigns, to editing video, copy writing and sales calls. That means that while I’m a really good developer I also knows what it takes to make a business work. I know that revenue trumps everything and that product development never happens in a vacuum. I enjoy talking to users and closing a deal is exhilarating.
Intro (1990 - 2016)
I’ve been a programmer at heart since I first installed Linux when I was fourteen and I fondly remember spending the first month figuring out how to configure the network and get X up and running. I also picked up some Python and since then I’ve been obsessed with problem solving using computers. I’ve had quite a lot of different jobs: tubaist, teacher (high school and university) and IT support.
Being a musician taught me unwavering dedication to performance. As a musician you have to perform every time you take to the stage, no excuses. You also internalise a mentality of constant improvement, every performance can and must be improved upon. Working as a teacher I got comfortable speaking in public and learned how to explain technical stuff in a way that most, if not all, people will understand.
In IT support I worked at an internal call center for Stockholm’s hospitals (“landsting” in Swedish) and got to see first hand how almost any bad experience can be turned to something positive by hearing, and actually listening, to the user. Even if I couldn’t solve a case I could almost always end the call on a positive note. I prided myself on closing 90% of my cases without needing to escalate and many days managed to be number one in answered calls. Through all these gigs I continued hacking away on evenings and weekends. I dabbled in web development, genetic algorithms and stock trading, and robotics to name a few.
Having done that I started studying for my Bachelor and Masters in Computer Science at the Royal Institute of Technology and stayed there for two years. I learned enough computer science to have a theoretical foundation for all the evening and weekend hacking I had been doing.