Kofi Sarfo is a software developer currently based in Basel, Switzerland. Mostly, Sarfo work on the Microsoft stack. Previously, He would been working as a contractor in the UK since 2008, having graduated in Computer Science & Business from the University of Warwick, 1998.
Here I interview Kofi Sarfo.
What is the reason why you decided to go to Switzerland?
Hmm, this is largely why I’d not replied sooner. I wasn’t sure how best to put this or whether to tell the whole story.
In April 2015, I’d just finished a project for the Royal Bank of Scotland, working with quants within Market Risk. As I do, when between contracts, I’d take a look on Jobserve to see whether there was any interesting work in and around London. My wife was working in London also, and we’d just bought a flat across the Thames from Canary Wharf, thinking perhaps my next job might be with another investment bank based nearby.
During that last role, however, I received an email and then a call from a recruiter at the Bank of England. As a developer with a decade plus of experience with various companies I receive quite a lot of email from recruiters. This is quite typical, I think, for most people who’ve worked a few years in software. What was different about this job was that it would be working within the public sector and acting as a coach. In Agile I guess this would be the Scrum Master.
I’ve worked in the public sector previously, having spent some time at Transport for London to help deliver the Contactless Payment solution. I liked the culture. There was noticeably a greater emphasis on quality, transparency and testing than I’d found in many of the places I’d worked. I suppose a system potentially serving 3.5 million passengers a day needs to be more robust than most.
That interest from the Bank of England had arrived quite some time before I’d finished with RBS, however, and the idea of working there remained even though the vacancy did not. I’ve had a vague interest in Economics, Economic policy and the like since before university and I thought that this might be one way to nurture that interest and in a setting that placed more value on care than rapid delivery. The closest thing I could find during the time in which I was available was a contract with the VOA, an executive agency with roots in HMRC.
It took a couple more months to find something I really wanted to do. Rather, it found me. A recruitment agent based in Zurich found my details and gave me a call. The work was in Basel though. I agreed to an interview and in due course I’d found out that the hiring manager was a Christian, which is a little unusual. The client, in this case, was another bank. This was more like a Central Bank than an Investment Bank.
Ordinarily, this is where the story would end. Thankfully, my previous manager (at RBS) provided me with a solid reference and I was offered a three month contract. It took a little time to decide that accepting the offer was the right thing to do – it took some prayer and quite a few conversations to determine whether I should take steps towards moving country. I asked virtually everyone I spoke with and the answer was always the same. Go!
What does in your company do, and what is your role?
My current client, an international organisation, is theBank for International Settlements. In words taken from the about page of the website, “the bank’s mission is to serve central banks in their pursuit of monetary and financial stability, to foster international cooperation in those areas and to act as a bank for central banks.” Bank Indonesia and Bank Negara Malaysia, for example, are both clients.
In the bank, I am part of a software development team which is itself within the department for Information Management Systems. Our team writes and maintains applications that support business processes. I guess you could call that Operations. Typically, I write code, review pull requests, help with testing, give feedback on design decisions and sometimes I’m asked to provide support for production issues.
What is different culture between in UK and Switzerland? in term Software Development.
I’m not sure I’m well placed to properly dissect the difference in culture between the UK and Switzerland at least when it comes to Software Development. This is only the second time I’ve worked in Switzerland and in each case it hasn’t been for a Swiss company.
I can, however, contrast working styles and note observations I’ve made from a very small sample size. This will be hugely swayed, as is the nature of just a first-hand account, by my own experience and biases, subconscious and otherwise.
With that caveat out the way I’d say that the difference can be summarised as follows:
Please note again that I draw these opinions from quite a narrow set of experiences, having worked in Switzerland for less than two years. And the unique nature of my current client is likely to have a significant bearing on this opinion.
Consensus (and Communication)
It appears to me that the preferred means for working in Switzerland is one based increasingly on consensus. Typically, a large number of people will meet to discuss some business matter and the various perspectives will be put forward with arguments and counter arguments offered at length. There appears to be no limit to the level of detail being discussed so meetings can seem to preempt further meetings.
Not to be confused with BDUF (Big Design Up Front), mostly this seems to be a means for helping make sure that nothing is overlooked in terms of requirements gathering. What does happen here as well though is that many people will have an opinion on the approach to take in terms of how the system should behave. Some UI suggestions are put forward and non-technical members of staff may even offer advice on implementation.
I think a greater effort is made during the analysis phase which might result in a reduced opportunity for a greater number of iterations towards a solution. I’d say that usually transparency is very high in terms of expectation and delivery. Communication is direct and polite. In London, it’s definitely more sweary.
In the UK I’ve tended to communicate with fewer non-technical colleagues. I would have access to a Product Owner, a business analyst or two. In the UK the focus has tended to be on product whereas now it’s service. It’s hard to say whether this is merely due to the nature of the current work I’m doing.
I’d say that there’s increased levels of communication generally here than I found in London. Certainly, there’s a greater focus / attempt here with many more meetings as a result. To complete this answer I’d add that in the last six months we’ve moved to a CI/CD style that requires code reviews from at least two colleagues before anything committed is allowed into a build. This thought might also just be the result of the culture change in Software Development generally where the Github style of working increasingly seeps into the Enterprise.
Rigour (and Professionalism)
Of the various teams I’ve worked in I’d say that the Swiss colleagues were, in each case, more careful and considered developers. In my opinion the expectation they set themselves and the rest of the team is somewhat higher than I’ve found generally in London. Again, I’m comparing two individuals in Switzerland against dozens of developers I’ve worked with in the UK. The preparation of IT professionals in Switzerland generally does appear to be more thorough. In the UK it’s easier to walk into writing software given aptitude whereas study, examination and certification is the likely route in Switzerland.
In the UK I’d say that greater risk-taking is more the norm. Previous managers and colleagues have been more comfortable with new and/or untried/untested approaches for the potential of better results (for various definitions of “better”). The irony being that health & safety is virtually a national obsession in the UK.
Respect (and Reward)
It’s been noted (mostly by previous generations) that class seemed to permeate most facets of life in the UK. This appears to be lessening at least to some degree so that the distinction between what one does and one’s station (‘level’ in society) matters less. Engineering was looked down upon for so long by those in the Arts & Humanities chiefly because if you were doing the former it meant that you might not have the luxury of doing the latter. So, historically, I don’t believe those working with machines might have received the sort of dues that they might have received otherwise.
On the flip side, people writing software in the UK now are very well paid. So much so that it’s spawned a very ‘healthy’ IT recruitment industry. With the emergence of Unicorns and the appeal of start-ups spilling over from Silicon Valley, some developers in the UK, as in the US, are granted the title Ninja or Rockstar. Thankfully, I believe this is on the wane. Point being that in the UK I think Software Developer might now carry more kudos than it does in Switzerland where engineers have always been appreciated.
Programmers in Switzerland, meanwhile, used to be paid much, much more relative to many other professions. Increasingly, however, as a function that’s being commoditised, Software Consultancy pays less well here than used to be the case. You can still easily earn more in Switzerland writing software than if you were doing the same work in the UK but the cost of living is higher too. All told a typical developer is better off in Switzerland.
Are you busy Software engineer?
Indeed. I don’t know many who can say they are not. There always seems to be less time available than work requires. I think the combination between the time/labour intensive nature of writing code and the fact that tools, techniques and industry keep changing means that it’s perpetually a race. That almost necessitates busy.
My own case is complicated by the fact that I work best in the evening. My preferred time for working is 6pm to 2am so I’m often unproductive until colleagues start going home at the end of the day. This doesn’t leave much time between when I get going and when I need to get home myself. Too often I end up having dinner at work and/or carry on working at home until sometime past midnight.
Apart from that I’m trying to keep up with the rest of the world. That means Twitter, Hacker News, Pluralsight, Reddit. In the mornings I try to run between 5km and 10km before work. I listen to various podcasts too otherwise those runs would be beautiful but dull. Those I like most for Software include the Cognicast, .Net Rocks and Functional Geekery. I try to keep an eye on what the Software Craftsmanship people are up to and I try to attend a conference or two each year. Currently, I’m helping to review a book being written by a former colleague for Manning.
All this leaves not much time for side projects or OSS contribution. This is almost certainly what I’m missing most in terms of personal development but I’ve not yet been able to carve out enough time to make it happen.
Why did you decide to take the Microsoft Stack?
Well, here’s a confession. Visual Basic 5. It was popular because it allowed emphasis on the business problem through drag & drop to create UIs rather than on the technical implementation. This later became the problem as well and earned VB programmers that reputation.
I then stayed with this stack because of the great care Microsoft takes not to break existing code as they release new versions of the .NET framework. The companies and clients where I’ve worked have themselves picked this stack because it’s helped/allowed them to be successful. A virtuous cycle of sorts.
What kinds of problems do you work on (and solve!) as a software engineer?
Ultimately I think all the problems I’ve worked on have been to do with either Money or Communication. Well, it’s all been about money if you follow the trail but I mean in terms of industry.
Right now, it’s about trying to optimise business process. Another answer, tongue in cheek, would be to say that I’m helping the Swiss become more efficient. It isn’t strictly true but it works as a joke. Mostly.
The solutions I work on at the moment involve translating ideal work practices and interactions between individuals and teams into automated workflows that capture all the relevant information about various parts of the business, presenting that information to those involved at the right time so that they can contribute / participate as required. It’s about trying to make routine business smoother, taking away the manual steps that are time-consuming, uninteresting or error-prone.
Anything else you’d love to share?
It’s no false modesty to say that I’ve definitely no talent for writing software. Luckily, there are aspects of the work where I’m sufficiently capable and I’m interested in continually improving generally. For now that seems to be enough to keep me doing what I love.