Posted by on
Engineering at Monsanto The engineers of Monsanto produce code that powers agricultural products that support farmers all around the world. Our goal of sustainable agriculture mirrors the way we present our ideas and code to the world. http://engineering.monsanto.com React Hot Loading with Webpack 2 <p>React components, hot loaded? Using the Webpack Hot Module Replacement (HMR) plugin with webpack-dev-middleware, webpack-hot-middleware and react-hot-loader, you can get hot loading of React components the same as regular Javascript modules.</p> Tue, 15 Aug 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/08/15/react-hotloading-with-webpack-2/ http://engineering.monsanto.com/2017/08/15/react-hotloading-with-webpack-2/ So You Want to Create Excel in the Browser? Thu, 29 Jun 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/06/29/so-you-want-to-create-excel/ http://engineering.monsanto.com/2017/06/29/so-you-want-to-create-excel/ Drone Drone Drone Tue, 20 Jun 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/06/20/drone-drone-drone/ http://engineering.monsanto.com/2017/06/20/drone-drone-drone/ Using Client-Side Git Hooks <h1 id="client-side-git-hooks">Client-Side Git Hooks</h1> Wed, 17 May 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/05/17/using-client-side-git-hooks/ http://engineering.monsanto.com/2017/05/17/using-client-side-git-hooks/ Building resilient scalable workflows <h3 id="the-backstory">The backstory</h3> <p>When I first came to Monsanto, our typical tech stack was Java with Spring/Hibernate and a whole slew of common libraries that made our life easier. On my team, we were using many bioinformatics tools to analyze DNA which are CPU and memory intensive. Our workload was mostly idle with random huge spikes of work; so we needed to design systems that could handle large volumes of heavy lifting. Enter the data center and parallel computing.</p> Mon, 15 May 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/05/15/building-resilient-scalable-workflows/ http://engineering.monsanto.com/2017/05/15/building-resilient-scalable-workflows/ Exploring GitHub Enterprise Fri, 13 Jan 2017 00:00:00 +0000 http://engineering.monsanto.com/2017/01/13/github-enterprise-org-explorer/ http://engineering.monsanto.com/2017/01/13/github-enterprise-org-explorer/ Easy Node Authentication With Ping Fri, 11 Mar 2016 00:00:00 +0000 http://engineering.monsanto.com/2016/03/11/passport-ping-oauth2/ http://engineering.monsanto.com/2016/03/11/passport-ping-oauth2/ Cloud Foundry User Administration Fri, 29 Jan 2016 00:00:00 +0000 http://engineering.monsanto.com/2016/01/29/cf-users/ http://engineering.monsanto.com/2016/01/29/cf-users/ Algebraic Data Types <p><a href="https://en.wikipedia.org/wiki/Algebraic_data_type">Algebraic data types</a>, usually abbreviated ADTs, are a useful construct in programming to increase code clarity and reduce the likelihood of errors. Generally speaking, they’re somewhat similar to enums in Java, but Scala lends much more power to the construct. ADTs define a fixed set of all possible values of a given type. The classic example of an ADT in Scala is the <a href="http://www.scala-lang.org/api/current/index.html#scala.Option"><code class="highlighter-rouge">Option</code></a> type. An <code class="highlighter-rouge">Option</code> represents something that may or may not have a value. No value is <code class="highlighter-rouge">None</code> and some value is <code class="highlighter-rouge">Some()</code>. This is the functional version of returning an object or null from a method in Java, and is very useful for Java interoperability to eliminate <code class="highlighter-rouge">NullPointerException</code>’s.</p> Mon, 11 Jan 2016 00:00:00 +0000 http://engineering.monsanto.com/2016/01/11/algebraic-data-types/ http://engineering.monsanto.com/2016/01/11/algebraic-data-types/ Optimized Chinese Restaurant Process <h2 id="tldr">TL;DR</h2> Mon, 23 Nov 2015 00:00:00 +0000 http://engineering.monsanto.com/2015/11/23/chinese-restaurant-process/ http://engineering.monsanto.com/2015/11/23/chinese-restaurant-process/