Osku Salermaosku.firstname.lastname@example.org — www.oskusoft.com/osku/ — github.com/oskusalerma/
Software developer with 15+ years of experience. Python/Golang/C++/Java.
Founded and ran a company during 2004-2006 that sold a program (written in Python) for writing movie screenplays. The program lives on as an open source project (Trelby), with me as the lead developer.
Contributed a patch to GCC adding support for the may_alias attribute, which can be used to bypass the aliasing rules in C/C++ on a per-variable basis, and minor participations in other free software projects (Subversion, Mercurial, etc).
10/2016 - now, Software Developer, FISC. Sheffield, UK.
Worked on web applications used in the car industry (Python).
7/2016 - 09/2016, Contractor, Amadeus IT Group. London, UK.
Worked on airline travel software (C++, /Linux).
11/2014 - 12/2015, Contractor, Bloomberg. London, UK.
12/2012 - 10/2014, Contractor, Bank of America Merrill Lynch. London, UK.
Worked in the Treasury / Corporate Funding team developing QzFunding, an application used by internal traders. (Python / Quartz). Implemented data exchange workflows between existing systems and QzFunding, trade booking functionality, credit limits checking, a web service for submitting trades, access control permissions, multiple different kinds of realtime reports of trading activity, etc.
2/2012 - 10/2012, Senior Software Developer, Eladian Partners. London, UK.
Developed automated quantitative trading systems in collaboration with traders and researchers. (C++, Linux)
- Designed, implemented and deployed a U.S. Treasury futures statistical arbitrage and market making strategy.
- Ported an equity market making strategy from a third-party trading platform to our internal trading platform, and enhanced it to work with European markets in addition to American ones.
- Miscellaneous development work (improved the internal market data API, wrote exchange simulators, implemented conversion of historical raw market data captures into a standardized internal format for research / simulation purposes, etc).
5/2011 - 1/2012, Contractor, Bank of America Merrill Lynch. London, UK.
Worked in the FX Options team developing Concorde, an FX products structuring/pricing tool. (Python / Quartz)
6/2010 - 4/2011, Associate, Morgan Stanley. London, UK.
C++/Linux development and support in the Automated Order Fulfillment team.
- Worked on the Smart Order Routing Technology system: added new features (improved iceberg order handling, etc), fixed bugs, enabled new order flows, etc.
- Developed and deployed an automated order management system that makes it easy to implement new trading strategies for customer orders by describing them in a custom-built scripting language.
9/2007 - 5/2010, Associate, Morgan Stanley. Tokyo, Japan.
C++/Linux development and support in the Equities Trading Infrastructure team. Software development team lead.
- Maintained the codebase that checks FIX orders against internal/external limits and regulations. Especially actively worked on the Japan-specific checks, where a notable achievement was optimizing their runtime performance (the latency the checks add to each order executed in Japan) by 2705%.
- Maintained the internally developed scripting language that is used for matching/modifying FIX messages across the firm. Optimized its runtime performance by 46%. Analyzed common errors people made using the language and implemented validation checks to detect the errors automatically. Designed the next generation of the language and wrote a prototype implementation in Python.
- Maintained/wrote other code like database caching layers, latency analysis tools, testing frameworks, etc.
2/2007 - 8/2007, Senior Consultant, Fusion Systems Japan. Tokyo, Japan.
Team lead on a web-based survey application developed for a marketing company, and on associated applications for managing the surveys and analyzing the results. (Java, OLAP)
Worked on the InnoDB database storage engine (part of MySQL). (C/C++, Unix)
- Designed and partially implemented support for a Full Text Search index.
- Implemented buffering of deletes, speeding them up substantially in some cases.
- Enhanced InnoDB's internal SQL interpreter by adding support for bound variables, function callbacks, BLOB types, lock waits, consistent reads, etc.
- Fixed scalability and memory usage problems.
- Set up and maintained various services: Subversion, wiki, instant messaging, backup, etc.
11/2002 - 7/2005, Software Engineer, Cardinal Systems. Helsinki,
Had a central role in designing, implementing and maintaining a complete digital TV transmission system on a C++/Linux platform that consisted of multiple multi-threaded processes interacting with each other and external software/hardware (PostgreSQL, DVB-ASI output cards, etc.) in soft real-time. Other items of note:
- Wrote an MPEG-2 I-Frame decoder in Java.
- Wrote MHP EPG (Electronic Program Guide) components for Cardinal Studio in Java.
- Implemented build infrastructure and automated testing frameworks in Python.
M.S. Computer Science, University of Helsinki