Hi, I’m Jozef Wagner, an independent contractor, business consultant and a software developer. This page focuses on technical aspects of my services and is quite technology heavy. Please see my homepage for more general and business related information about my consulting services.

Located in Central Europe, I provide consulting and contracting services primarily for the EU region, and remotely. You can contact me at [email protected]. I specialize in the fields of data mining, business intelligence, machine learning and low level programming. My focus is on delivering simple and clean solution to the problem at hand, while keeping the result practical and efficient.

Technical proficiency

I’ve started programming as a kid, hacking BASIC on ZX Spectrum, Pascal under DOS, and have written programs for microcontrollers and PLCs in assembly languages. I’ve started my professional carreer more than 10 years ago and I have a strong professional experience with Clojure, Java, C#, C++ and C.

I’ve implemented and delivered software for several multinational EU funded projects. I was involved in backend and middleware services that handle large amount of data, perform sentiments analysis, data aggregation, event stream processing, pattern discovery, and data mining tasks.

I’ve worked with multiple kind of databases such as traditional SQL ones, graph databases like Neo4j, custom semantically oriented databases that used SPARQL, infamous NoSQL databases like MongoDB and with search oriented data engines such as Elasticsearch.

I have a PhD. in Artificial Intelligence and I’ve hacked on a couple of AI related applications in C/C++, Common Lisp and Prolog, ranging from neural networks with backprop, perceptrons, expert systems, to scheduling and logistic algorithms.

I’m also experienced in a low-level programming and communication with industrial electronic devices. I’ve designed and developed software solutions for the medical and electrochemical industry, directly communicating with respective stakeholders and solving their business problems.

I’m skilled in full stack web development and related technologies. Besides contemporary hip web languages and libraries, I’m not afraid to code in modern Javascript. I’ve also went through a dark age of JSP, SOAP, XSLT and other XML related technologies. I also did a couple of DevOps related stuff on multiple occasions.

I’m a polyglot programmer with a preference to functional programming. I’m a big fan of a Clojure and ClojureScript languages and I’m an active contributor to the language and its surrounding ecosystem. I’m active in the Open Source community and I’m running a low frequency Clojure oriented blog.

Clojure Consulting

I’m particularly interested in a remote work and consulting for Clojure projects. I will help you to deliver, scale and adapt your Clojure projects to your customers' ever changing needs.

I’ve been working with Clojure since 2009. I’m an active Clojure contributor and have delivered multiple tickets and patches to both core Clojure language and its libraries. With a thorough knowledge of Clojure, its internals and the surrounding ecosystem, I’m able to help you in multiple stages of your new or existing Clojure projects:

Design

  • Design and review of overall technical architecture

  • Fleshing out technical and functional requirements

  • Help in choosing the right tool for the job

Migration

Migration of existing Java projects to Clojure safely and without downtime. I will help you to gradually introduce Clojure into your project, working on identifying, designing and implementing modules and libraries with well defined and isolated functionality.

Development

  • Hacking and prototyping in order to find the right approach to a given problem

  • Providing production ready implementation with focus on simplicity and performance

  • Refactoring and optimization of existing Clojure code

  • Manual code audit, finding violations of idioms and best practices, potential sources of bugs or performance bottlenecks

  • Profiling and performance improvements, tracking down and fixing tough bugs

Training and advising

Remote or on-site tutoring, group or one on one training sessions, crafted for the specific needs of your team. I will help your team to keep up with recent and upcoming language additions. Explaining Clojure’s internals, best practices and rationale behind idioms and design choices. Guidance and aid in the process of evaluation and introduction of new language features such as reducers and upcoming transducers.