@tangrammer is also called Juan Antonio Ruz. All the mornings drinks a limon juice to wake up his analytic thinking. He found that playing with functional programming could be so funny like Art, thus he changed the mutable objects by pure functions. Nowadays is difficult talk to him without hearing about good clojure references. Currently is 38 years old and lives in Sevilla (Spain), this is his very summarised experience until 2006, thanks for reading!2015-03 / 2016-05
Last year I teleworked with DEEP-IMPACT-AG a swiss company based in Winterthur that defines itself as a web passionate.
Following are some of the clojure libs that we fortunately used:flowgic
Definitely, I enjoyed a lot this company, the great team and its web philosophy focused in user experience and performance.2014-06 / 2014-12
I had the chance to telework with JUXT (one of the most important european clojurian companies based in London). During this time I worked with one of the founders Malcolm Sparks making contributions to:
- juxt/cylon: designing and developing the TOTP two-factor authentication support, conducting the background research and co-authoring the OAuth2 support.
- juxt/modular: adding less module and solving co-dependency pattern in stuartsierra/component library to help in some communication issues as, for example, bidi.Router < - - > bidi.WebService relation
Working in customizing systems I was also interested in getting real time visualization of component system calls. As a result of this research I wrote:
- milesian/BigBang decomplect your stuartsierra customization system from component/start
- milesian/identity component self reflection
- milesian/aop uses AOP in stuartsierra/component systems
- milesian/system-diagrams Web client for real time system visualisations. Here you can see a picture and a video , (I only clicked on opensensors.io login button and after getting the visualisations I sent the login form.) that shows the final result of real time visualization of component system calls
Some of the libraries that I had to work with in my juxt job were: stuartsierra/component, postgresql/postgresql, clojurewerkz/cassaforte, clj-time, liberator, prismatic/schema, prismatic/plumbing, core.async, bidi, clostache, cylon, joplin, clojurescript, om
2014-06 / 2014-12
2012 / 2013
On this time I worked with core.async, core.logic, and swannodette/om. I attach some video examples to show superficially my interest on clojurescript and client side development.
This video shows my own solution to achieve brepl live editing behavior, the same as clojurescriptone, using the React/OM framework. The pattern used here communicates the components, in a core.async/CSP manner, putting a map of channels into the component channel. Using this pattern, the developer can mix mock with real data and move between the different states of the app, only reevaluating the code on emacs (brepl + cemerick/austin)
And this other video shows a previous js experiment project that was built thinking on async compose processes (pipelines), events and aspects. This framework lets swap coding (hot reloading code without browser reload) in dev mode. This feature is built on top of requirejs, socket.io and nodemon. The AOP/EOP orientation of this framework lets you easy filter the internal processes(pipelines) to make logging on the terminal, profiling or doing d3 process visualisations (static image)
2011 / 2013
2012 / now
2006 / 2012
During this time I was highly focused in JEE, working on companies (Hewlett Packard - Senior Programmer) and as a freelance developer and consultant. I worked with patterns as MVC, ORM and DI implemented on different ways (Struts, JSF, EJB3, Hibernate, Spring, Seam, ...). From my java beginning, I always tried to develop with TDD and XP methodologies and was very passionate in Event and Aspect Oriented Programming. I worked as JavaEE teacher too, on private and public companies (+ 1500 Hours)
Here you can find full details: linked-in
And my 4clojure profile, still in progress