Samuel Plumppu

Swedish orienteer and developer

Navigation arrow

Hey there!


Samuel Plumppu

I'm Samuel, a 21-year-old orienteer, software developer and open source enthusiast, currently living in Gothenburg, Sweden.

I'm a creator who enjoys solving problems, learning and constantly challenging my abilities. Another thing I really love is to share my knowledge and help others. In fact, I think we're better off by sharing our creations. This allows others to learn from our experience, and give a starting point for new creations. Just look at the impact of open source software in the past twenty years.

I currently focus on full stack JavaScript development, but I'm also open to using other technology stacks. By programming regularly since late 2013 and working with various technologies, I've come to a point where I can take my general programming knowledge and apply it to several different languages and environments. It all depends on what is a good solution for the problem.

Since the late summer 2015, I've been involved in the learning community freeCodeCamp, volunteering as a programming mentor, course content creator and developer. This has not only taught me about software development or managing large-scale projects, but also about how to effectively communicate and work as a team. Because of this, I care about creating a good team environment where people are encouraged to help each other learn and grow.

As you might have guessed from the background image, another big part of my life is orienteering. This is a sport that gives challenging problem solving, good exercise and sometimes even adventures! I practice regularly and like to explore how different it can be to navigate in new terrain.

Projects



Iso Conquest

Technologies

  • JavaScript
  • CSS
  • HTML

2016 - present

In this minimalistic, turn based strategy game, your task is to seize control over the battlefield. It features gamemodes for PvP as well as experimental Player vs AI.

The technology behind this project makes heavy use of new features of the web platform. For example, I experimented with advanced CSS Transforms to achieve the isometric UI. I also used native CSS variables, something that greatly increases the usability of vanilla CSS. And of course, I used modern JavaScript.

Initially, this project was about creating a game with a nice UI and UX. But as things progressed, this turned out to be a great playing ground for learning about artificial intelligence.

Play the latest version!


Tab Typer

Technologies

  • JavaScript
  • localForage.js
  • FileSaver.js
  • CSS
  • HTML

2018

As the web platform matures and standardize over time, it's interesting to see what can be done without common libraries or frameworks. Even though modern tooling provides good structure and solutions for larger projects, they all rely on the fundamental web platform features.

Therefore, I like to keep up with the limits of the platform itself. It helps me better understand why the modern tools work the way they do, and what constraints they are built around.

Designed and implemented in a few days, this project was created so I could edit temporary notes in a focused environment, without leaving the browser. It's pretty convenient to just open a new tab and start typing in less than three seconds.

Try it in your next tab!


The Responsible

Technologies

  • JavaScript
  • CSS
  • HTML

2018

At one point, I wanted to be an author. At another, I wanted to be a developer. So I figured, why not just do both?

This is an exploration of interactive storytelling. How to make characters and environments come alive, without using much more than a vivid language. Instead of fancy graphics, this game uses one of the best rendering engines available; the human imagination.

Since this game is built from the ground up, it's also a game engine. Several parts of this project could theoretically be reused for another text game with a completely different setting and story. This was not intentional during development, but rather a consequence of how the (at the time) most sane design choices ended up creating a modular project, where the content itself can be replaced.

Another fun part of this project is that ideas, planning and progress all were tracked in Git, making it easy to see design thoughts at a given time.

Experience the first chapter of the story


Prime or Not?

Technologies

  • JavaScript
  • CSS
  • HTML

2017

Starting as a joke about how it would be to learn prime numbers in an app with a two button interface similar to Tinder, this idea turned into an actual prototype.

To work on older phones, I only used well supported web technologies. Of course, a proper build tool setup with transpiling, polyfills and vendor-prefixing is ideal for a serious project where you want to use new, improved web platform features. But skipping all distractions allowed me to focus on core features and create most of this prototype in an evening. Then I could get almost instant user feedback.

Even though I put some thought into the UX and designed the UI on paper before I wrote any code, this prototype has some issues that would be fixed in a full version. But after all, this was a really fun design project, thanks to the fast release and iteration. I'm especially happy with the UI design for the bottom section.

Do you know your primes?


Chronos

Technologies

  • Python 3
  • JavaScript
  • Flask
  • Docker
  • Docker Compose
  • PostgreSQL
  • Bootstrap
  • jQuery

2016

The most ambitious project up until this point. To wrap up the courses Programming 2, User Interface and User Experience design 1 and Web Server Programming 1, me and my classmates wanted to give back to our school while at the same time get experience with a project that would involve the whole development process - all the way from figuring out a real world problem and gather information from users to testing potential solutions and compile even more feedback to finally implement, deploy and prepare the system for future maintenance.

A really fun and stimulating project that taught me new technologies, a lot about project management using GitHub and how to collaborate better using Git. For example, I became familiar with Git features like stash, rebase and working with branches specific for each feature/bugfix. However, the most important experience from this project was to communicate with users and figure out what they actually needed through various tests and inverviews. We documented our notes from this process (Swedish).


Goa Space Survival

Technologies

  • JavaScript
  • Meteor
  • Phaser
  • Mongo DB

2015

A space-survival game created with Phaser as the game engine and Meteor for the real-time highscores. My main goal with this game was to spend a weekend to create a simple game with Phaser and then publish it to my friends. Since the development went so smooth, I decided to also implement the highscores to make the game more interesting.

This project taught me about publishing apps and gave me insights to some of the security issues that arises if you trust clients too much. Knowledge like this will be useful in the future!

A final warning: The simplistic gameplay proved to be quite addictive, so be careful if you try it... ☺


Achtung Panzer

Technologies

  • Python 3
  • PyGame

2015

An intense 2D tank battle for two players on the same computer. Including two different ammo-types (long-range/low damage main cannon and short-range/high damage grenade launcher) which together with the randomly generated terrain, slowing world-objects like water and destroyable world-objects like stones results in a pretty neat little action-game where strategy and timing is crucial to crush your opponent.

This was a project I did together with some friends for a programming class in school. It was my first real project using Git and even though we used a Git-GUI, I learned pretty much about soure control.


The not so Busy Business

Technologies

  • Python 3

2014

A challenging text strategy game about a taxi/delivery-service. Including features like highscores, car-upgrades and character development. Really fun to create and loads of good practice to get fundamental programming concepts in place.

My biggest challenge with this project was to format the text-interface to fit the console. Especially the highscores were tricky. This was my last serious project built without a version control system as I realized it was hard to keep track of changes in a file 1000+ lines long. This project also taught me why modular code beat long functions that does multiple things... ☺


Meteor Tic Tac Toe

Technologies

  • JavaScript
  • Meteor
  • Mongo DB

2015

A simple game built together with Szymon to learn the basics of the Meteor Platform. An interesting feature we implemented was the Room-system that enables several players to play at the same time and join simply by entering a room's number


Kontaktz-CLI

Technologies

  • Python
  • Redis
  • redis-py
  • PrettyTable

2015

A small school project where I learned how to use the Redis database in python progams. Features of this CLI include creation, deletion and search of contacts.

Skills


JavaScript

HTML

CSS

Git

Angular

React

Node.js

C#

Python

Mongo DB

PHP

Docker

Contact


Interested in working with me? Don't hesitate to get in touch!