Archive for the 'training' Category

What skills does a financial software developer need?

The below network diagram is intended as an outline of the skill set required for a financial software developer.
Note:

  • Most individuals should aim to have a strong core. Think of it like a pyramid, where the height is the strength of a skill. Core skills like general computing principles, probability, communication should be built “tall” and very strong.  peripheral skills such as python/monitoring will be weaker. An individual will typically only learn 1 or 2 niche areas strongly (T shaped)
  • Notice the rough relative sizes of the areas. 55% computing, 10% math, 15% soft skills, 20% finance. This is intended to represent the rough allocation of effort.
    • If you only bring 95% techinical skills, you are going to waste time building the wrong thing, build something no one wants or build something useful but no one will know as you haven’t the soft skills to sell it.
  • The management branch on the bottom left is optional.

Financial Software Developer Skill Mindmap

Computing

Skill Topic Sub-Topic Links Requirement
basics
linux surrey Change Directories, edit config files, kill processes, copy/move files, check disk space.
bash tldp.org Write a script to periodically sync a directory between servers and schedule it using cron.
git git-scm Checkout, branch, commit, push code.
Common Tools: jira/jenkins user-stories Write a good jira, assign owner. Kick off a build on a common CD platform.
Programming Language Knowledge of 2 different programming paradigms.
kdb kdb-tree Write efficient selects for pulling back a subset of data.
python Download data from a REST api, calculate average/mean/median for certain metrics.
java book Write a java program to count the number  of words in a file.
Databases Be aware of the major types of database available and when to use each.
kdb kdb-tree
mysql/postgresql/oracle/ms Know standard SQL.
Software Engineeering peopleware How to grow good software.
Good Software Properties of good software with examples.
Architecture Common Enterprise software patterns.
Distributed Systems Difficulties with distributed systems and common patterns to solve them.
Data Processing Pipelines Common processing Pipeline Patterns
Site Reliability Engineering SRE How reliable should software be?
Metrics Ccommon metrics used to measure reliability and when to use each
Monitoring What monitoring systems/tools are available? What are monitoring best practices?
Releases Accelerate
Support Handling outages. Engaging with users.
Software Concepts Testing Testing Methods and knowledge of one test framework
User Interfaces dont-think What makes a good user interface?
Networking How computers connect. Expected latency/bandwidth.
TCP/IP ports, switches, racks, data centres, windows.
Middleware Messaging midddleware: solace/JMS/kafka/MQ.
Software Development
agile
scrum book Sprints, iterations, standups, restrospectives, story-time.
Lean Development lean-startup When, why and how to develop lean.
Code Reviews pragma Code review best practices.

Soft Skills

Skill Topic Sub-Topic Links Requirement
IT Skills
excel Create a table with conditional formatting, calculate sum/average of column, use vlookup
outlook Filter emails, create meetings.
Communication
Emails How to write an email to users, team mates, managers, senior management.
Meetings atlassian What is a meeting meant to accomplish? How to achieve that.
powerpoint Prepare a presentation for management.
visio Draw an architectural diagram of your system.
Sales
Marketing Traction How to get your software used and appreciate by more users.
Support
Networking Building a network to get things done.
Management Grove
Building a Team Dysfunctions
One to Ones What makes a good one-to-one
Interviews How to evaluate cnadidates effectively.
Quality How to ensure quality of product.
Organizational Structures phoenix Different structures for management.
Project Management
Roadmaps
Decision Making Which approach to decision making to  use when.