Blog

The OCaml Planet RSS

Articles and videos contributed by both experts, companies and passionate developers from the OCaml community. From in-depth technical articles, project highlights, community news, or insights into Open Source projects, the OCaml Planet RSS feed aggregator has something for everyone.

Want your Blog Posts or Videos to Show Here?

To contribute a blog post, or add your RSS feed, check out the Contributing Guide on GitHub.

Dude, Where Are My Files? Reverse Engineering Ransomware

Presented by: Michael Sikorski Join Michael Sikorski, author of "Practical Malware Analysis", as he introduces you to malware analysis and reverse engineering by dissecting Ransomware. Mike will review some of the most famous ransomware attacks in recent memory such as WannaCry and Petya. In multiple demonstrations, he’ll show exactly how to reverse engineer malware using real-world samples. Michael Sikorski is an expert in reverse engineering and malware analysis. He is the Senior Director and Founder of the FireEye Labs Advanced Reverse Engineering (FLARE) Team. Mike provides oversight to research projects and manages the analysis process used by the team. He created a series of courses in malware analysis and teaches them to a variety of audiences including the FBI, NSA, and Black Hat. Mike is the co-author of the book "Practical Malware Analysis," which is published by No Starch Press. He came to FireEye through its acquisition of Mandiant, where he worked for seven years. Prior to Mandiant, he worked for MIT Lincoln Laboratory and the National Security Agency. Mike is also an Adjunct Assistant Professor at Columbia University's Department of Computer Science.

09 Dec 2019

Jane Street - Tech Talks

View Video
Unboxed Types for OCaml

OCaml has a well-deserved reputation for compiling quickly. This is thanks in part to its uniform representation: all values have the same memory layout, so generic code does not need to be specialized and recompiled for each use. This uniformity has a downside: some programs waste a lot of time converting back and forth to this uniform representation. In this talk, I’ll describe some work-in-progress to remove this overhead, by extending OCaml’s type system to allow other memory layouts, giving the programmer more fine-grained control over how code is compiled. Stephen is a programming languages researcher and OCaml core developer on Jane Street's Tools and Compilers team. Prior to that, he worked at OCaml Labs, did a PhD on subtyping, and wrote jq. His hobbies include hiking, cooking, and writing about himself in the third person.

24 Oct 2019

Jane Street - Tech Talks

View Video
Unboxed Types for OCaml

OCaml has a well-deserved reputation for compiling quickly. This is thanks in part to its uniform representation: all values have the same memory layout, so generic code does not need to be specialized and recompiled for each use. This uniformity has a downside: some programs waste a lot of time converting back and forth to this uniform representation. In this talk, I’ll describe some work-in-progress to remove this overhead, by extending OCaml’s type system to allow other memory layouts, giving the programmer more fine-grained control over how code is compiled. Stephen is a programming languages researcher and OCaml core developer on Jane Street's Tools and Compilers team. Prior to that, he worked at OCaml Labs, did a PhD on subtyping, and wrote jq. His hobbies include hiking, cooking, and writing about himself in the third person.

24 Oct 2019

Jane Street - Tech Talks

View Video
Playing Atari Games in OCaml

At Jane Street, we enjoy using OCaml for lots of different things, from FPGA designs to web development. When it comes to Machine Learning, Python is one of the most commonly used languages. Machine learning frameworks such as TensorFlow or PyTorch wrap some highly efficient C++ and GPU implementations of tensor operations in easy to use Python apis. These frameworks also provide automatic differentiation functionalities which are commonly used to train deep learning models. In this talk we see how we can leverage TensorFlow or PyTorch directly from OCaml so that we can use our favorite programming language to build deep learning models and train them on GPUs. We will consider the Reinforcement Learning setting where an agent is trained to play Atari video games such as Space Invaders or Breakout. Our agents will be based on the Deep Q-Learning approach introduced in 2014. Laurent Mazare Laurent first joined Jane Street as a developer in the London office back in 2013 working on trading systems. After a short stint at DeepMind in 2017/2018, he is now back at Jane Street as a researcher working on the equities desk in London. Laurent holds a PhD in theoretical computer science from Institut National Polytechnique de Grenoble.

13 Aug 2019

Jane Street - Tech Talks

View Video
Playing Atari Games in OCaml

At Jane Street, we enjoy using OCaml for lots of different things, from FPGA designs to web development. When it comes to Machine Learning, Python is one of the most commonly used languages. Machine learning frameworks such as TensorFlow or PyTorch wrap some highly efficient C++ and GPU implementations of tensor operations in easy to use Python apis. These frameworks also provide automatic differentiation functionalities which are commonly used to train deep learning models. In this talk we see how we can leverage TensorFlow or PyTorch directly from OCaml so that we can use our favorite programming language to build deep learning models and train them on GPUs. We will consider the Reinforcement Learning setting where an agent is trained to play Atari video games such as Space Invaders or Breakout. Our agents will be based on the Deep Q-Learning approach introduced in 2014. Laurent Mazare Laurent first joined Jane Street as a developer in the London office back in 2013 working on trading systems. After a short stint at DeepMind in 2017/2018, he is now back at Jane Street as a researcher working on the equities desk in London. Laurent holds a PhD in theoretical computer science from Institut National Polytechnique de Grenoble.

13 Aug 2019

Jane Street - Tech Talks

View Video
13 Years in a Shell: Lessons, Practices, and Achievements in PowerShell

Do something for long enough and you’re bound to make a lot of the mistakes that can be made. If you can learn from those, and share them with others, then you’re on the right path. So that’s what this session is about: the technical best practices and lessons Don’s learned in 13 years of working with PowerShell, his observations on making DevOps “actually work” in business environments, and his own personal life lessons and career achievements that have come along the way. You’ll learn the write way to design a PowerShell advanced function, what a truly functional DevOps team actually looks like, and the biggest “unlocks” Don’s cobbled together in over two decades in the IT industry. In-person attendees will also get a free collection of Don’s most popular ebooks. — Don Jones is the co-founder of The DevOps Collective, which runs PowerShell.org, PowerShell + DevOps Global Summit, and provides technology education funding to underprivileged and underrepresented individuals throughout the US. Don has been a Microsoft MVP Award recipient for 15 years, and has worked with PowerShell since before its launch in 2006. PowerShell’s inventor, Jeffrey Snover, named Don the “First Follower” of PowerShell. Today, Don is a Vice President in the Content organization at Pluralsight, the technology skills platform. Over his 25-year career, Don has authored literally dozens of IT books, including the first-published book on PowerShell and the bestselling Learn Windows PowerShell in a Month of Lunches. Don’s current projects include fiction and other genre novels, and can be found at http://leanpub.com/u/donjones. Don also posts regularly to his site, DonJones.com, and holds occasional workshops around Be the Master, his book on achieving success and helping others do the same (BeTheMaster.com).

27 Jun 2019

Jane Street - Tech Talks

View Video
Safe at Any Speed: Building a Performant, Safe, Maintainable Packet Processor

Presented by: Sebastian Funk At Jane Street, we’ve been building systems to trade electronically for over a decade. As technology advances and the scale of the markets grows, we need our systems to be able to process ever growing amounts of data in ever shorter time windows. In this talk, we explore how to build a highly optimized single-core packet processing system that is capable of processing millions of messages per second. We see how to bridge the gap between the high-level abstractions we’ve come to love when structuring code, and efficient machine-level execution necessary to process messages at line-rate.

08 May 2019

Jane Street - Tech Talks

View Video
A Language-Oriented System Design

This talk explores the design of Ontology, a permissions management service developed at Jane Street. The design of the system is language-oriented in two different ways: Internally, the state of the system is represented as a sequence of declarations in a dependently-typed language lifted straight out of type theory. This language is the unifying principle behind a deductive database, its query language, and the representation of requested state changes that together form the core of the system. Externally, in the user interface for the system, the internal language is hidden everywhere, having been rendered in natural language (English). Because of this rendering strategy, key elements of the user interface are at once structure-editors for the internal language as well as natural language forms that allow even technically unsophisticated users to construct permissions requests and queries. Presented by: Nathan Linger Nathan has been a developer at Jane Street since 2008, working on a variety of software projects. He holds a PhD in Computer Science from Portland State University.

08 Mar 2019

Jane Street - Tech Talks

View Video
Abstractions for Expressive, Efficient Parallel and Distributed Computing

Presented by: Lindsey Kuper Parallel and distributed systems are notoriously difficult to build correctly or efficiently. In parallel systems, the manipulation of shared state can cause unintended behavior in the presence of unpredictable task scheduling, while in distributed systems, the manipulation of replicated state can cause unintended behavior in the presence of an unreliable network. Meanwhile, decades of research have not yet produced a general solution to the problem of automatic program parallelization. In this talk, I discuss how my research addresses these challenges from both theoretical and applied points of view. My work on lattice-based data structures, or LVars, proposes new foundations for expressive deterministic-by-construction parallel and distributed programming models. My work on non-invasive domain-specific languages for parallelism gives programmers language-based tools for safe, deterministic parallelization. The guiding principle and goal of both of these lines of work is to find the right high-level abstractions to express computation in a way that not only does not compromise efficiency, but actually enables it. I conclude by discussing the role that this principle of finding the right efficiency-enabling abstractions can play in my ongoing investigation into SMT-based verification of neural networks. Lindsey Kuper Lindsey Kuper (https://users.soe.ucsc.edu/~lkuper/) is an Assistant Professor of Computer Science and Engineering at the University of California, Santa Cruz, where she works on language-based approaches to building software systems that are correct and efficient. She holds a Ph.D. in computer science from Indiana University and a BA in computer science and music from Grinnell College. Prior to joining UC Santa Cruz, she was a Research Scientist in the Parallel Computing Lab at Intel Labs. During her Ph.D. years, she contributed to the Rust programming language at Mozilla Research, served several residencies at the Recurse Center, and co-founded !!Con (http://bangbangcon.com), the annual conference of ten-minute talks about the joy, excitement, and surprise of computing.

11 Feb 2019

Jane Street - Tech Talks

View Video
The OCaml Platform 1.0 - Reason ML

Presented by Anil Madhavapeddy (@avsm) We keep being told ReasonML can compile to native and do interop with OCaml, and that there's a wealth of existing code and tools we can draw into our applications - but how do we get there? This video will ...

11 Dec 2018

Watch OCaml

View Video