Fredrik Fornwall's CV
An up-to-date version of this CV can be found at http://fornwall.net/cv/.
- Fredrik Fornwall
- Year of Birth:
- Fredsborgsgatan 2, 117 59 Stockholm, Sweden
- Swedish and English fluently, German and Spanish somewhat
- +46 70-62 73 666
- Email address:
- [email protected]
- Passionate, opinionated and hardworking software developer.
- Interested in both low and high level concepts, with a broad working knowledge and experience of many fields.
- Enthusiastic about open source and how technology can help improve society.
Programming language skills
- Experienced java developer having worked over a decade with backend development. Have worked with refactoring and modernizing massive code bases, with usage of annotation processing and runtime bytecode generation to avoid boilerplate.
- Solid SQL knowledge from working with PostgreSQL, with both massive hand-written SQL queries as well as using Hibernate as an ORM.
- Experienced C developer as part of Linux system programming and working with tools such as make, gdb and valgrind.
- Good knowledge of unix shell scripting, both for writing scripts for automation and working live on remote servers to troubleshoot system performance and stability.
- Experience of working with Python for developing utility scripts both for development utilities and server scripts.
- Good grasp of C++, with experience using the the Qt class library for cross-platform GUI development.
- Passing knowledge of Perl, Ruby and PHP.
- Experience of working with Fortran, Maple and Matlab for numerical computing.
Skills and experiences
- Experience of java and sql load testing and performance optimization.
- Experience of troubleshooting and optimizing java GC performance on large servers.
- Experience of large java frameworks such as Struts, Spring and Hibernate, having investigated and sometimes fixed issues in their internals.
- Experience optimizing PostgreSQL server performance by tuning the instance configuration as well as analyzing and rewriting queries.
- Experience of threaded code design and debugging on both server and client.
- Experience of Android app development including using the NDK for native code.
- Experience of OpenGL ES 2.0 and 3.0 development.
- Good knowledge of algorithms and data structures.
- Knowledge of higher mathematics such as analysis, differential equations, numerical methods, probability theory and statistics as used within applied and theoretical physics.
- Both theoretical knowledge of and practical experience in using design patterns and component-based development.
- Good knowledge of XML modelling and processing and related technologies such as XSLT and XPath.
- Experience of working with open source projects, having merged patches to dozens of notable open source projects.
- 2005 to present: Developer at Ping Pong AB, Stockholm.
- Worked with development and maintenance of a large java server application using PostgreSQL.
- Created technical specifications and XML schemas for integrations with other systems.
- Designed and implemented server side JSON-based API:s to be consumed by external systems.
- Worked with with technologies such as SAML, LTI, SCORM and IMS.
- Worked with FreeBSD server maintenance.
- Assisted in hiring and training of developers.
- Debugged problems with scalability in third party libraries.
- Helped grow the company from a handful employees to 40+, working with the organizational issues along the way.
- Worked as teach lead in a team.
- Have worked through several project management techniques - some working better than others.
- Worked close with customers in several projects for customized development.
- Oversaw the introduction of and continued development using Spring Framework and Hibernate to replace a custom in-house framework.
- Drove and oversaw the migration to java 1.5, 1.6, 1.7 and 1.8.
- Drove and oversaw the migration from cvs to subversion to git.
- Responsible for adding new and updating most third-party library components used in the system.
- Worked as the main developer of an Android and iOS app which accompanied the web app with over 100k swedish users. Developed as a custom hybrid app with native functionality exposed for account handling, push notifications and file access. Implemented the server-side handling of push notifications for both Android and iOS.
- Implemented an ffmpeg backed online conversion from various media formats to formats more easily viewable on various devices.
- Implemented a custom in-house build server, and later assisted in the migration to TeamCity which replaced it.
- 2003 to 2005: Substitute teacher in physics and mathematics at gymnasiums, Stockholm.
Notable side projects
- Have developed Termux, an Android terminal emulator and Linux environment app with over a million of installations. A large number of traditional Linux command-line packages has been ported to run directly on android using the bionic libc, with patches submitted and accepted to upstream projects such as apt, aria2, dpkg, cairo, fish, gstreamer, greenlet, make, neovim, subversion, vim and more.
- Have written EclipseCoder, an Eclipse plug-in to be used while competing or practicing at the TopCoder online algorithm competition.
- Have developed an Android app which applies GLSL-based image filters to a live camera preview, with an embedded http server with a web based UI to edit and submit GLSL with immediate effect used during development.
- Have developed and published a number of minor Android apps (small games and utilities) when Android was new.
- Have written minor utility programs in java using a swing user interface and deployed with java web start.
- Have written a cmd ioslave for use with the Konqueror web browser using the the Qt and KDE C++ class libraries.
- Have written a mouse tracker for X11 using Python and Qt which visualised cursor position statistics with heatmaps.
- Have written a command-line directory event notifier for Linux in C++ using the dnotify kernel mechanism.
- Have constructed a PHP application for querying historical google information using the Google web APIs.
- Have written some J2ME games in the olden days.
- As part of a student project I was the project lead and main developer of open source based tool for managing test cases. The project utilized Apache Derby as embedded SQL database as well as the Jetty embedded servlet engine.
- Social and enthusiastic.
- Passionate and opinionated about software development.
- Quick learner.
- Calm and stress-resistant.