Ben Rayfield – Software Engineer 408.334.7214 ben@humanai.net Charlotte NC USA, near SC GA TN KY WV VA, or CA SUMMARY I specialize in Core Java (7 years), Internet, Math, and Creative thinking. MS degree in computer science. Large scale systems design, debugging, and development. Self directed, just give me a prioritized list of goals, tools, and docs. I live by Occams Razor, simplest design/theory that explains well is usually best. Variety of contracting projects, mostly server side Java. 3 years developed Ziplip server in Java expand from email only to file archiving. Opensource Java research intelligent tools to represent thoughts in new ways. I work equal amounts of overtime and undertime, or would prefer 30 hours/week. I document and only work on systems with nearly accurate docs how they work. SKILLS Programming languages: Java, JSP, Javascript, C++, Ruby, Lisp, SQL/JDBC Threads: Java Synchronized, Java Volatile, immutable datastructs, deadlock cycles Debuggers: Eclipse, Netbeans, Visual C++ Build tools: Ant, Maven, Java classloading PacketSniffers: Microsoft Network Monitor, WireShark, ProxySniffer Dynamic Compilers: Javassist, Beanshell, Tomcat for JSP Streaming: Java NIO, Servlets, Ajax Cloud: Development of new cloud products, Amazon EC2 and S3, VMWare Web: Servlets, JSP, Javascript, Ajax, Html5Canvas, webcrawling Servers: Apache Tomcat and HttpCore Search: Apache Lucene, research into data mining Wikipedia Artificial Intelligence: boltzmann bayesian evolve permutate centroid text audio visual Graphics: Java AWT/Swing, OpenGL, Html5Canvas Audio: Java access to spreakers and microphone, musical instrument evolution Communication: Explain complex ideas to nontechnical people EDUCATION - MS (3.2) and BS (3.6), Computer Science, NC State university. Tata Consultancy Services / Dexmedia - 2014-9 - 2015-1 Extended map system to search variable distance based on business rules, which required changing order of caching steps. Explored contents of Lucene search indexes using Luke. Filled in missing steps in tech docs. Environment: Java, Eclipse, Lucene Left Infosys 2013/3 to focus on my independent research described further below. Infosys (projects below) 2010/11 – 2013/3 Infosys / Apple Loadtested: iPhone, JMS, Amazon EC2 and S3, Azure, C++ graphics Up to 400 fast virtual computers at once Tracked down memory leaks in C++ Development of middleware database that calls into multiple databases. Twitter-like sys for object oriented communication. Environment: Java, Eclipse, ProxySniffer, VMWare, EC2, S3, Azure, JMS, SVN , Ant Infosys / Bank Of America Created prototype competing to be new photo billpay algorithm. This became a combinatorial problem when matching labels and values. Developed and debugged back end of mobile app Responded oncall to production website emergencies Environment: Java,, Eclipse, SQL, C++, Tesseract OCR, Maven, TODO Infosys / Cisco Design of IO testing system. Large room with thousands of phones Environment: Java, Eclipse, byte streams Infosys internal project Run any Java commands on many computers and get back a merged response. Automates repetitive setup on clouds Environment: Java, Eclipse, Serializable, Beanshell ZL Technologies 2006/12 – 2009/9 Expanded Ziplip server from email to also file archiving into cloud. Designed file archiving client including network protocols Deep debugging in Eclipse – once traced a network call for 2 hours Developed file, email, and case management search Designed Ruby testing framework for whole Ziplip software Found cause of bug which “randomly” crashes whole server by Keyview getting into the video memory. From then on, shielded system in separate processes. Designed statistical algorithm to identify simultaneous top few languages of Unicode text of up to 30 languages based on curved ngram statistics and sorting. Verified Unicode upgrade of thousands of files after translation team. Verified database and timezones after change to daylight savings math Made task scheduling intuitive and fast Added importer of bloomberg xml files Cleaned up Windows bat and Linux sh files which had duplicated code Tested a bit level optimization of a Lucene plugin for searching faster by date Environment: Java, Eclipse, JSP, Javascript, Tomcat, JavaScript, SQL (and other databases), Ruby, RMI, Windows 2003, Linux, VMWare, Jira, VSS, Ant, ExtJS, JfreeChart, Apache Lucene, Perl Bat and Linux Sh scripts, and C++ Opensource independent research (projects below) 2005 – present Audivolv http://sf.net/projects/audivolv Evolution of Java code. Musical instruments are high dimensional vector functions which read/write scalars in array, guaranteed by the evolution building blocks to keep those scalars in range -1 to 1 if all started in that range. Environment: Java JSoundCard http://sf.net/projects/jsoundcard Stream wave amplitudes, given incoming amplitudes, like in musical instruments. Minimalist way to sync between speakers/microphone Uses continuous statistics adjusting ratio of producing/consuming interpolated buffer to keep delay small and smooth. Environment: Java (in progress) Boltzmann machine research My minimalist implementation of Contrastive Divergence neuralnet algorithm Using MNIST OCR data, less accurately reproduces some of whats in this video: https://www.youtube.com/watch?v=KuPai0ogiHk “Neural Networks for Machine Learning with Geoffrey Hinton” Environment: Java Bayesian network research http://sf.net/projects/bayesiancortex Not as scalable as boltzmann machines, I eventually learned. Play with timed prediction on screen using bayes nodes size 3 with 8 weights. Environment: Java (in progress) Cellular Automata http://sf.net/projects/physicsmata exactly version 0.9 API for any cellular automata that works the same from any angle Different pixels can have different automata rules, using the shared datastruct of the 2d space tree optimized averaging of brightness at various size circles. These kind of automata can be Turing Complete My plan is to use this as lowest layer of a massively multiplayer game, and use boltzmann statistics to learn from and influence the high level patterns. Example: similar to SmoothLife which is a variation of Conways Game Of Life: https://www.youtube.com/watch?v=KJe9H6qS82I Environment: Java Visual Integer Factor http://visualinteger.com Each base2 digit is bright for 1 or dark for 0. New kind of visual digit carrying in 2 dimensions handles unary counting, plus, multiply, and integer factoring in the same grid by a single rule local to 3 cells. Environment: Javascript MouseSearch3d http://sf.net/projects/natlangmouse code and http://MouseSearch3d.com Explore this network of Wikipedia page names using mouse on combinations. Data mined links between 1.3 million Wikipedia pages, using my very simple algorithm which gets surprisingly accurate results. In each cycle, keeps only pages which have more incoming than outgoing links in the remaining set and also have at least 5 incoming and 5 outgoing links. Centroids remaining after second last cycle: Albert_Einstein Ancient_Greece China Christianity Earth Government Islam Latin Mathematics Metre Middle_Ages Molecule Unicode United_Nations World_War_I World_War_II Centroids remaining after last cycle: World_War_I, United_Nations Environment: Javascript, Ajax WaveTree http://sf.net/projects/wavetree Log time for these ops in any combinations up to size 2^63 bitstrings or waves: concat, substring, count 1 bits or sum of scalars Bitstring can be used as a wave by summing 1 bits minus 0 bits over large ranges. Environment: Java GigaLineCompile http://sf.net/projects/gigalinecompile Is an optimization for many permutations of code evolved by AI. Optimized for many permutations of the variable indexs on its stack (2 parallel arrays of Object[] and double[]) of the same code objects which can be combined in ways their variable indexs overlap and in different orders and permutations. Combined Java compiler (Javassist) and interpreter (Beanshell), similar to a Just In Time compiler (JIT). Uses same interface to run code instantly and optionally compile it while its running in stateless objects so they start running faster. Environment: Java Recursive Asteroids 3d http://sf.net/projects/asteroidrecurse The explosions are so fun it motivates people to crash their ship on purpose. fire and debris is made of colored spinning shrinking asteroids Environment: OpenGL, C++