View my resumE

advertisement
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++
Download