About Me (Simon St James)


The current version (as of 2020) of my CV can be found here.


I don't contribute to stackoverflow all that often, but my profile is here.


All my projects are developed under Linux, which I've been using full-time since 2004, and usually involve C++ and the Qt toolkit, which I enjoy working with :)

Konqueror and Dolphin (KDE File Manager(s))(C++; Qt)

My very first open source contributions were to the KDE project, where I re-implemented several features in the KDE File Manager that had gotten lost during the massively-disruptive KDE4 porting effort. The work was featured in the Commit Digest - you can read the details/ see screenshots here!

Kate (KDE Advanced Text Editor) (C++; Qt; TDD)

Mainly worked on the "Vim" emulation mode. Blogs:

Commit logs (click on the commit links to see the actual code changes and complete commit description): (before Kate <-> KTextEditor split) ; (after Kate <-> KTextEditor split) .

NB: I've since adopted a "short first-line summary; detailed description in body" approach to git log messages, so my log messages are a lot neater nowadays :)

Emscripten-Qt (C++; Qt)

A port of Qt running in a browser courtesy of Emscripten. The port of the "Kate" KDE app (and the required KDE libraries) was sponsored by Mozilla, as was a proof-of-concept HTML5-based rendering backend for QPaintEngine. Getting Kate running in a browser required me to analyse and port ~1M lines of C++ code.

Project Page


News Coverage:

Competitive Programming (C++; Algorithms & Data Structures; Problem-Solving)


I'm in the 99th Percentile (i.e. top 1 percent) for Algorithms (Practice), though perhaps that's not that impressive, what with Sturgeon's Law and all :) I have 100% for each challenge I've taken (so no "partial credit" "solutions"), though I do tend to pick my battles carefully!

My profile is here. At the time of writing, I am ranked #2 in the UK, somehow, and in the top 100 worldwide.

I've only taken part in three contests and am already in the top 0.41% for Algorithms contests worldwide.

ContestStart DateEnd DateNumber of ChallengesNumber solved perfectlyRankingPercentileAwardComments
Week of Code 3513/11/201720/11/20176661/944199.35Gold Not bad for a first attempt :)
World Codesprint 1214/12/201716/12/201774231/704096.71Gold Ouch - pretty tough one, as you can see from the fact that correctly solving just 4 questions out of 7 was enough to get Gold!
Week of Code 365/2/201812/2/20186555/1275299.56Gold More like it! The Expert-rated question really required a specific piece of knowledge which I hadn't encountered before, alas.


I've taken part in four Codechef Long Challenges so far, and have already attained the rank of 6★. My profile is here. I also enjoy helping people on the Codechef Discuss forums and am often the Monthly Top Contributor. My Codechef Discuss profile is here.

ContestDivisionStart DateEnd DateAwardComments
August '19 Long202/08/201912/08/2019+221 PointsBrought me up to 1721 Rating and
3★ Rank
September '19 Long206/09/201916/09/2019+186 PointsBrought me up to 1907 Rating and
4★ Rank
October '19 Long104/10/201914/10/2019+137 PointsBrought me up to 2044 Rating and
5★ Rank
November '19 Long101/11/201911/11/2019+156 PointsBrought me up to 2000 Rating and
6★ Rank

I've also had a few Problems accepted for official Contests:

ProblemContestDivision# Successful SubmissionsSubmission AccuracyComments
CHGORAM2February 20 LongDiv 1 Exclusive663.25%My first-ever accepted Problem, which had a pleasingly low Success & Accuracy Rate :)
MOVCOIN2September 20 LongDiv 1 and 2212.2%To my surprise and delight, this turned out to be the hardest Problem in the Contest! My Editorial solution - with nifty animations - can be found here.
MVCN2TSTSeptember 20 LongDiv 1 Exclusive723.46%People found this easier than I (and the rest of the Contest board!) expected, but still a decently-low Success Rate. My Editorial solution can be found here.