About Me

My name is Elliott Draper, and I'm a freelance senior software developer residing in Hampshire in the United Kingdom with my wonderful wife, and my three amazing kids. I mainly code with Ruby and JavaScript/TypeScript; for the most part using Ruby on Rails, React and React Native. I love coding, and I deliver quality work in a timely manner for clients, as well as running my own app and game development company, KickCode.
I first started tinkering with programming at the age of six with the help of my father, building a times table program using BASIC on an Amstrad computer. Since then I have always had an interest in the inner workings of computers, and the software that makes them tick. Moving from BASIC on to QBasic, and then on to Visual Basic, I then went on to learning Pascal, Delphi and Perl while in school, and C/C++ in my own time. I then progressed to working with .NET, both Visual Basic, and C#, and eventually ended up working full-time with .NET once I left school, for a national ISP here in the UK. I then taught myself Ruby, and switched to using it full-time over 15 years ago, for web applications using Rails, and for iOS, Android and macOS apps using RubyMotion. I've also been working with JavaScript for the majority of that time, alongside both .NET and RoR, and after utilising AJAX & jQuery for a number of years, have been using Vue.js and React for web frontends, and React Native for mobile apps. I've also re-visited my C# experience when working on games using the Unity game engine, recently moving to Godot for game dev. Additionally, I've been playing with Rust and Lua more recently.
Professional Experience
- 21 years of professional software development experience (since 2003)
Web development
- Worked with Microsoft .NET, and specifically C# for over four and a half years (September 2003 to May 2008)
- Have been using Ruby and Ruby on Rails for 18 years now, firstly doing part-time contract work, then moving on to full-time work with it
- Great experience with core web technologies such as HTML, CSS and JavaScript, and also with leveraging AJAX, and SPA frameworks to create rich user interfaces on web applications (since 2003)
- In the last few years, have been working more with TypeScript, and React.js / Vue.js on web frontends
Mobile development
- Have done iOS development since the initial SDK release
- Extensive experience using RubyMotion, firstly on iOS apps, and then on Android and macOS apps (since May 2012), going on to write a book about using RubyMotion to build Mac desktop apps (Building macOS apps with RubyMotion)
- Moved on to building mobile apps for iOS with both React Native, and Swift/SwiftUI
Game development
- Have used my experience with C# and interest in game development to build games with the Unity game engine, alongside also using RubyMotion to build and deliver mobile games
Senior leadership experience
- Experience working for myself, firstly as a freelancer doing web development work (since March 2009), and then running my own limited company, KickCode (since September 2010)
- Have been described as "a freelance CTO" by clients for whom I have managed entire projects, often running and coordinating an entire team of developers, and managing interactions between developers, designers, and other business stakeholders
- Shipped milestone releases ahead of important demos for many clients that has helped win them contracts or secure additional funding on the path to full launches
- Conducted technical interviews on behalf of clients to bring on board additional team members
Skills
- Experience with a number of different RDBMS systems, with the majority of my work being with PostgreSQL, but have also completed large projects using MySQL and Microsoft SQL Server, and for lighter weight applications, SQLite
- Am experienced with various source control systems as well, using SourceSafe for a number of years, before using Subversion, and then Git
- Have run my own servers for many years, and so have gained a lot of system administration experience. Proficient at using Bash for scripting (although I now prefer Ruby for system admin tasks where possible)
- Have used a multitude of web servers over the years, with IIS, Apache and nginx being the main ones. Used Mongrel, Thin, Passenger, Unicorn and Puma for hosting Ruby web applications; experienced with a wide variety of deployment platforms, including AWS & Heroku
- Experience with performance tweaking and fine tuning to make sure an application can withstand increased load as it scales - I have shipped work for apps and sites that have over 3 million unique visitors a month, where performance is crucial
- Have used and worked with all versions of Windows since Windows 3.1, and have used Ubuntu and Fedora Core Linux distributions extensively. I have a lot of experience with using and developing on macOS
- Besides C#, Ruby and JavaScript/TypeScript, also experienced with a number of other programming languages throughout the years, including ASP, Perl, Java, VB, C/C++, Python, Lua
Besides programming, my other main passion is fitness and martial arts, and specifically karate. Alongside my wife and kids, we've been budding karateka for 8+ years, and in late 2019 I successfully graded for my 1st Dan black belt in karate, and then successfully graded for my 2nd Dan in 2021, as well as achieving my black belt in kickboxing in 2022. I have been an instructor also now for a number of years, planning & teaching a few classes a week, as well as continuing my own training, and competing at numerous karate competitions with the rest of the family. My eldest two kids and I have won national titles, and represented our country at international competitions. In my spare time, I also enjoy playing videogames, and occasionally toy with the idea of picking up a guitar again.
