# Kim Topley > Software Engineer at Oculus VR Location: San Jose, California, United States Profile: https://flows.cv/kimtopley C, C++ and Java development. Operating system development (UNIX kernel). File system development. TCP/IP and OSI communication protocol stack implementation. Desktop GUI applications. Mainframe microcode. Writing technical books. GitHub Repository: https://github.com/kimtopley ## Work Experience ### Software Engineer @ Oculus VR Jan 2021 – Present | San Jose, California, United States ### Senior Software Engineer @ Apple Jan 2016 – Jan 2021 | Cupertino, California Member of the Cocoa Appkit team, working on auto layout and also occasionally on Catalyst. Also worked in the Darwin Runtime team, which is responsible for the lowest level system libraries on macOS, iOS, tvOS and watchOS. Worked on libmalloc and libdispatch (in C) and on the Swift overlay for libdispatch. ### Senior Software Engineer @ StreamingEdge Jan 2011 – Jan 2016 | Greater New York City Area Trading system development in Java and C++. Developing and maintaining the client-facing trading application for Tradition's dealing systems. ### Contractor @ Standard Chartered Bank Jan 2009 – Jan 2011 Development of a greenfield FX electronic trading system in Java. Implemented a complete GUI framework based on Java Swing and an IDL, parser and code generator (based on ANTLR) for communication between the client and servers. ### Contractor @ Merrill Lynch Jan 2005 – Jan 2009 Development of a greenfield FX electronic trading system in Java. Implemented a complete GUI framework based on Java Swing and an IDL, parser and code generator (based on ANTLR) for communication between the client and servers. ### Contractor @ Barclays Capital Jan 2004 – Jan 2006 New features for and maintenance of BARX FX trading application in Java. Reimplemented the admin console application from scratch. ### Contractor @ Vicorp Jan 2003 – Jan 2004 Development tools and IDE plugins in Java for Vicorp's products. Using Borland JBuilder. Borland application server and WebLogic application server with servlets and JSPs. ### Contractor @ PAT Systems Jan 2001 – Jan 2002 Rewrite from scratch of an existing Java trading system using the Swing GUI toolkit. ### Contractor @ Lehman Brothers Jan 2000 – Jan 2001 Various electronic trading projects in Java, both front-end and server side. ### Contractor @ JP Morgan Jan 1997 – Jan 2000 Enhancements for Concord Fixed Income system in C and Sybase. New features and a new GUI framework for the Java version of Concord. ### Contractor @ ICL Jan 1995 – Jan 1997 | Basingstoke UK Developed a UNIX STREAMS device driver in ICL's secure UNIX kernel to allow sockets applications to operate over ICL's implementation of the OSI transport layer. C language. Implemented a file system in the secure UNIX kernel (based on System V release 4) that provided local caching of files resident on remote secure servers, with cache consistency managed across clients sharing access to the same files. C language. Ported network time protocol implementation to ICL's secure environment. C language. ### Senior Software Engineer @ Novell Jan 1994 – Jan 1995 | Bracknell UK Part of a team in the USL (UNIX System Laboratories) group working on a port of UNIX SVR4 ES/MP to run on top of the Chorus microkernel. I was responsible for several features, all of them in the UNIX kernel, including: 1. Porting the NFS client and server implementations (kernel-based) from C to C++. 2. Porting of various networking device drivers. 3. System development tools, including kernel support for debugging and a port of the GNU debugger. 4. Implementation of system startup and support for panic dumps. 5. Implementation of device driver autoconfiguration in the kernel, ported from UNIX SVR4 ES/MP ### Senior Programmer @ ICL Jan 1992 – Jan 1994 | Bracknell UK Member of the team responsible for the operating system of the ICL DR6000 mid range server (DRS/NX, derived from UNIX SVR4), hardware based on Sun SPARC chips. Maintenance and enhancement of all base networking software, including the TCP/IP-protocol stack in the kernel, NFS,the Berkeley networking suite (rlogin, telnet, ftp, inetd) in user space and the sockets and XTI libraries. Improved the quality and performance of the TCP/IP product in general and maintained the network subsystems, including the Sun RPC support in both user libraries and in the kernel (for NFS). Improved the performance and robustness of NFS on ICL platforms Implemented the Serial Line Internet Protocol (SLIP) as a STREAMS driver to meet a specific customer requirement. Implemented the telnet and rlogin servers as STREAMS modules in the kernel to reduce CPU load caused by terminal traffic over a network. This work was primarily undertaken to improve the TPC-A and TPC-B benchmark figures for ICL server systems and was later used as a key differentiator in several customer bids. Ported all of the ICL value-added networking facilities from DRS/NX V7 kernel to a multi-threaded version based on SVR4 ES/MP. Multi-threaded the RFS (Remote File Sharing) file system in the kernel so that it scaled well on a multiprocessor SPARC system. ### Software Engineer @ Cray Research Jan 1985 – Jan 1990 Implemented layers 2, 3 and 4 of the OSI protocol stack in Cray assembly language in the COS operating system. Ported the implementation to user space in C for Cray's version of UNIX (UNICOS) and added connectivity for direct connection, NSC Hyperlink and VMEBus devices. Also implemented system management daemon and administration utilities. ### Senior Programmer @ ICL Jan 1979 – Jan 1984 Working on the CME (concurrent machine environments) project, a hypervisor in microcode allowing ICL 29XX systems to transparently run both the 2900 system range and 1900 system range operating systems at the same time. Writing microcode device drivers and maintaining and enhancing the ISA microcode for the 2900 system architecture. Member of the team developing the microcode for the new ICL 3900 range hardware. Implemented part of the ISA microcode and the interface used to connect an external system to the processor for OS-level debugging. Developed the calculator application for the M68K-based ICL OPD product. ## Education ### Master of Arts (M.A.) in Mathematics University of Cambridge ## Contact & Social - LinkedIn: https://linkedin.com/in/kim-topley-470871a --- Source: https://flows.cv/kimtopley JSON Resume: https://flows.cv/kimtopley/resume.json Last updated: 2026-04-11