I am Braden Walters, professionally a computer scientist. I also have an interest for language, culture, and much more. Here you can read about both my professional skills (probably the reason you’re here), and a little bit about me in general.

A Picture of Me

Picture of Braden Walters

CV

Software Development

Check me out at GitHub, where I upload all of my free and open source personal projects.

Web Development

At the time of writing this page, all of my professional experience has been in web development. Therefore I decided to include an entire section for web development, including sub-sections.

Back-End

Yesod / Snap / Haskell: I have experience with two different Haskell web frameworks through personal projects. I have used the macro-framework Yesod to write an example application for my Haskell PayPal REST client library. I experimented with the Snap micro-framework while writing a toy project serving as a quotation database.

Ruby on Rails: I have hobby and professional experience with Ruby on Rails. I used it professionally from Summer of 2013 until Autumn of 2015 while working with The Learning Egg. I’ve also used it in my personal project KKSystem since Spring of 2014. I have experience with quite a few Gems (libraries) including Devise, Squeel, CarrierWave, and Capybara. I also have experience with internationalisation in Rails.

Django / Python: I used the Django web framework from Summer of 2011 until Spring of 2014 in my personal project KKSystem before it was migrated to Ruby on Rails. I have experience with core elements of the framework, as well as form models, internationalisation, and migrations through South.

PHP: Most of my PHP experience is through professional work. While working with The Learning Egg I used the Yii Framework from Autumn of 2011 until Summer of 2013. Since Summer of 2015 I have used the Zend Framework 1 and 2 while working with Unister.

Microsoft MVC: During some independent professional work I used Microsoft MVC with Mono. In addition I have experience with Entity Framework and NHibernate for database connectivity, although I am interested in other types of database connectivity libraries for C#.

Front-End

JavaScript: In essentially every project where I’ve worked on back-end code, I’ve also written front-end code where necessary. Naturally this includes HTML and CSS, but also includes JavaScript client code. Although I have a preference for back-end code, I have no problem moving code to the front-end when it is more practical to do so.

CoffeeScript: When writing JavaScript, I tend to accomplish this indirectly by writing CoffeeScript, a language which is semantically the same as JavaScript but offers syntactical qualities which, in my opinion, make the code easier to write and more readable.

jQuery: jQuery belongs to my personal JavaScript “Prelude”, or standard library. By this I mean I use jQuery in essentially every project I use which has JavaScript or CoffeeScript. I prefer to use jQuery where possible for easier access to many of the browser’s features, such as DOM selection and AJAX.

Underscore.js: Another library belonging to my JavaScript “Prelude” is Underscore. Underscore provides many abstract higher order functions to JavaScriptwhich are very useful and reduce code duplication. In addition, Underscore offers a powerful templating system which I frequently use.

Miscellaneous Web-Dev

Hakyll: I have written multiple websites, including this one, with the static site generator Hakyll. The frameworks simplifies building static websites and can convert various source resources to their publish format.

Game Development

OpenGL: Although my OpenGL experience is not extremely advanced, I have experience with many of the core features, such as geometry rendering, materials, lighting, and vertex buffer objects. I have some experience with GLSL vertex shaders as well. I generally use OpenGL 2.1, but the majority of the features I use were already available at OpenGL 1.0. All of my OpenGL work has been in hobby projects.

Artificial Intelligence: Through a course that I took during my Bachelor’s studies and through development of the game Thugaim, I have developed an understanding of elementary game AI, including path finding with the A* algorithm, finite and fuzzy state machines, and influence maps.

OpenAL: I have used OpenAL in personal projects to provide cross-platform audio in 3D applications. I have not used the 3D audio features that the API offers, but I have used it to play background music, specifically from OGG Vorbis files. Like with OpenGL, my OpenAL experience is only in hobby projects.

Bullet Physics: I have some experience with Bullet through experimenting to create simple simulations with rigid bodies, gravity, force, and torque.

Mobile Development

Android: Through my personal project Thugaim, I’ve developed experience with the Android API. Because this project is a game, much of my Android experience is with the canvas API. In addition, I use multiple activities and intents to traverse between them. I have also accessed the devices hardware (primarily to determine device rotation), the media API to play background music, and bundles to fetch resources used at runtime. Although I have much more of the API to explore, this one project has introduced me to quite a lot of it.

Language

I have an interest in foreign languages. In my free-time I learned several European languages and have reached different skill levels with each.

English: English is my native language. There’s not much to say here. I can use it fairly well, although I’m sometimes surprised at the difficulty I have recalling words which I remember in foreign languages.

German: I began learning German in December of 2010. Through studying and both written and spoken use of the language, I have achieved approximately a C1 proficiency.

Swedish: I began learning Swedish around Autumn of 2011 and have studied it intermittently since. My knowledge of Swedish can be useful at times, but it is very limited due to difficulty finding opportunities to use the language. My proficiency is approximately A1.

Hobbies

Culture: As a trilingual person, it seems to me fairly natural that I enjoy foreign culture. Although my language skills are limited to European languages, I enjoy cultures from all around the world. I also love to meet new people from around the world. I am actively involved in (and help organise) an international group in Dresden which meets regularly. It is very fun to meet new people from many places and do things together with them.

Travel: As a natural result of my love of culture, I love travel. But even if I’m not experiencing a new culture, I like to travel to new places. I love seeing new things, whether that be a new city or some place in nature.