Anton Kotenko
JavaScript & Java Frontend Developer
Objective
Life, books, neurons and bytes made me an experienced nerd—the one seeking for perfection both in
source code (not to the extremes) and in user delight (to some extremes). That's why I like to participate in
projects where visual part (and user) matters on the same level as the good code. Also, I like projects which are
open to users and other developers to improve. And, I love to code and to solve things in a beautiful
way.
What inspires me is discovering the mathematical nature of things like music and art or just
debates, AIs or humans
What am I looking for? Challenges.
Things I don't like? Absence of
innovation.
Recap
- 20+ years programming experience in business (since April 2003)
- 15+ years in frontend developemnt, among them
- 8 Companies, incl. Nikon & JetBrains affilates
- More than a dozen of open-source projects
- 18 talks at different conferences or meetups, all over the world
- 2 custom GUIs invented and implemented
- Worked in 3 cities: Munich (Germany), Odessa (Ukraine), Saint-Petersburg (Russia)
- Doing visuals for techno-parties in TouchDesigner
- Released one music album with friends (mine are lyrics and I was the singer)
Skills
- Programming Languages
- Java, JavaScript, React, Python, Elm, PureScript, Haskell
- IDE
- VisualStudio Code, IntelliJ IDEA, WebStorm, Eclipse, SublimeText, NeoVim
- UI Frameworks
- Elm, React, React Redux, GWT (Google Web Toolkit), JQuery, Vanilla JS
- Version Control
- Git, Mercurial
- Bugtracking Systems
- EdgeWall Trac, JB YouTrack, org-mode
- Operating Systems
- macOS, Ubuntu
- Databases
- SQLite, PostgreSQL, Cayley, DataScript
- Other
- Animation, Design, UX, HTML5, d3.js, Processing, WebGL, GLSL Language, HTML5 Canvas, functionaλ Programming
- Things I forgot since time passed by
- Assembly Language, C++, Perl, Borland Delphi, Borland C++ Builder, Apache Wicket, Spring for Java EE, Spring +
Hibernate, XSLT, 3D Modelling
- Things I'd like to try
- LLVMs, Unison, Godot, LEAN, RaspeberryPi, Racket (Scheme), Julia, R Language, Blender
Professional Experience
(05/2016 — 08/2024, 9 years)
- Where
- Munich, Germany
- Company Website
- https://jetbrains.com
- Company Specialization
- World-known IDEs for Software Developers and not only.
- Positions
-
- Software Developer, Generative Design
- Frontend-Developer, JetBrains Website & Component System
- Frontend-Developer, WebHelp
- Frontend-Developer, Developer Ecosystem Surveys
- Experience
- In JetBrains, I started as FrontEnd developer and through making interactive charts for web, ended up with
being the technical lead in our own fresh-created team of generative art. It is the way I always wanted to
follow before, and I am glad that it actually happened.
With the help of code, HTML Canvas & WebGL
and, later, neural networks, for more than five years we produced a large part of design materials for the
marketing needs as well as splash screens for the famous IDEs. For sure it required guidance from the design
team before using it in actual business. I used what I learned during pet projects in work and received even
more knowledge.
Here I was also developing Noodle, a visual programming platform for generative
visuals and not only.
Also, a dozen of public talks I did, were told during my work in JetBrains.
- Position:
- Software Developer
- Project Website:
- https://cai.jetbrains.com
- Technologies:
- JavaScript, Elm, HTML5 Canvas, GLSL Shaders, GLSL Language, DHall, Artificial Intelligence
- Tags:
- #generative-art, #animation, #gui, #user-interface, #visual-programming
- Talks:
-
- Projects:
-
- Position:
- Frontend-Developer
- Technologies:
- JavaScript, React, React Redux, CSS
- Position:
- Frontend-Developer
- Project Website:
-
- Technologies:
- JavaScript, d3.js, CSS, SVG
- Tags:
- #datavis
(07/2011 —
05/2016, 5 years)
- Where
-
- Munich, Germany /2012 — 2016/ (JetBrains GmbH)
- Odessa, Ukraine /2011 — 2012/
- Boston, United States, MA
- Company Website
- https://animatron.com
- Company Specialization
- Web Animation Editor and Social Video Editor for the good
- Positions
- GWT/JS Developer, JS Player
- Experience
- In Animatron, we’ve built an innovative (to that time) Animation Editor for the web in GWT and JavaScript,
with a back-thought to replace Macromedia Flash since the latter was going away for good. I was responsible for
developing the HTML5 Canvas player to play those animations, the one that was packaged into with exported files
and allowed to embed it on any web page. It included many 2D graphics techniques I used later in Computational
Arts in JetBrains. Some techniques I learned before, and also applied them.
It was a nice startup
atmosphere where everyone could participate on the same level. I was working remote from Munich for Boston and
we had an office in Lviv where I traveled sometimes too.
- Position:
- GWT/JS Developer
- Project Website:
-
- Technologies:
- HTML5 Canvas, JavaScript, GWT (Google Web Toolkit), Java, SVG
- Tags:
- #animation, #graphics
- Talks:
-
- Projects:
- JS Player for Animatron
(04/2010 — 06/2011, ~1.5 years)
- Where
- Odessa, Ukraine
- Company Website
- Company Specialization
- Useful web portals for the Ukraine & the world
- Positions
-
- Java GWT Front-End Developer, Experika
- Java GWT Front-End Developer, Petonik
- Experience
- In iPark, in Odessa, we were creating web portals to help local people find their favorite job and take care
of their pets. Here I practiced Google Web Toolkit, the framework I was very fond of after getting too used to
Spring & Hibernate.
It is in iPark where the colleagues forced me to give my first public talk and so
I did two at a time, which eventually led me to work in Animatron & JetBrains. Here in Odessa I‘ve met great
people we became close friends with, as well as I met many Ukrainian professionals and leaders along the way.
- Position:
- Java GWT Front-End Developer
- Project Website:
-
- Technologies:
- Java, GWT (Google Web Toolkit), mvp4g GWT Framework, JavaScript, Python, Long Polling (AJAX)
- Talks:
-
- Position:
- Java GWT Front-End Developer
- Project Website:
- https://petonik.com
- Technologies:
- Java, GWT (Google Web Toolkit), JavaScript, Python
(10/2009 — 02/2010, 6 months)
- Where
- St. Petersburg, Russia
- Company Website
- Company Specialization
- -
- Positions
- Java EE / Web Developer, Admin Page for Billing Engine
- Experience
- The ExtJS-based FrontEnd for the Administration Site of a Billing Engine, which communicated to the server
using Java-RPC.
- Position:
- Java EE / Web Developer
- Technologies:
- Java, Java RPC, Spring for Java EE, EJB (Enterprise Java Beans), JavaScript, Ext JS
(06/2007 — 06/2009, 2
years)
- Where
- St. Petersburg, Russia
- Company Website
-
- Company Specialization
- Web portal for managing images & video gallery for Nikon cameras
- Positions
-
- Java EE Developer, myPicturetown (Java EE)
- JavaScript Web UI Developer, myPicturetown (JavaScript)
- Experience
- In FotoNation, we developed photo sharing service for Nikon, one of the very first of its kind. At that time,
Nikon had released their first Photo Cameras with Wi-Fi support. I worked in the UI Team, responsible both for
Java & JavaScript on the FrontEnd, the hardest were the Gallery page and the individual Photo viewer, like
including Drag & Drop of images from the file system while there were almost no solutions for it at the time,
beating Time Zones and other challenges.
Action System for the UI was the idea and implementation of
ours since technologies we used provided no friendly and easy approach. // Development with Apache Wicket +
JavaScript ‐ complex native‐JS+Java components and layouting scripts + action system, UI prototypes using
JQuery. Components/Layouts are dynamically communicate with server‐side/Database.
- Position:
- Java EE Developer
- Technologies:
- Java, Apache Wicket, JSF (Java Server Faces)
- Recommendations:
-
Anton is a
very talented developer who developed a lot
of Ajax-based Web UI as well as server-side Java code
for myPictureTown service. His knowledge of web technologies and languages, such
as Javascript+Ajax, HTML, CSS are on the expert
level. He is a reliable, hard-working professional, and
I recommend him without reservations.
Anton is a honest,
responsible, executive and skilled programmer.
- Position:
- JavaScript Web UI Developer
- Technologies:
- JavaScript, AJAX, CSS
- Recommendations:
-
I know Anton as a brilliant Javascript
programmer with strong understanding of the most advanced concepts of this language. His Java skills are
also allow him to write good Java code. It is a pleasure to work with such talented professional.
(11/2006 — 06/2007, 8 months)
- Where
- St. Petersburg, Russia
- Company Website
- Company Specialization
- No specific specialization
- Positions
- PHP & JavaScript Web Developer, CMS
- Experience
- CMS Project Development in PHP-JS-CSS for Real Estate Industry; Several small AJAX‐related projects.
- Position:
- PHP & JavaScript Web Developer
- Technologies:
- PHP, JavaScript, AJAX, XML
(03/2005 — 10/2006, 1.5 years)
- Where
- St. Petersburg, Russia
- Company Website
- EmDev
- Company Specialization
- Business Project Management products & Web Portals
- Positions
-
- Java EE Spring Developer, UnlockAustin
- Java EE Spring Developer, emForge
- Borland Delphi Developer, BPM Project
- Experience
- Mostly driven by outsourcing, in this company I participated in J2EE Projects ﴾Spring, Hibernate﴿ from the
scratch, writing components, usually trying out and using new technologies
﴾Ajax, JSF, Spring/Hibernate﴿, what used to do before, and keep doing till today
One of the main
projects was UnlockAustin, which was a platform for introducing people the musical and theatrical events (but
not only those) happening in Austin, Texas.
Could be that Austin is a popular city nowadays due to this web portal :D.
I also developed Delphi
Visual Component for Stock monitoring (with realtime/dynamic data visualization support) using TreeMap Algorithm
to be integrated into the client desktop application;
Dealing with threads concurrency and a high rate of updates;
- Position:
- Java EE Spring Developer
- Project Website:
- https://unlockaustin.com
- Technologies:
- Java, Java EE, EJB (Enterprise Java Beans), JSP (Java Server Pages), Spring for Java EE, Spring +
Hibernate
- Position:
- Java EE Spring Developer
- Project Website:
- https://emforge.org
- Technologies:
- Java, Java EE, EJB (Enterprise Java Beans), JSP (Java Server Pages), JSF (Java Server Faces), Spring for
Java EE, Spring + Hibernate
- Position:
- Borland Delphi Developer
- Technologies:
- Java, Java EE, EJB (Enterprise Java Beans), JSP (Java Server Pages), JSF (Java Server Faces), Spring for
Java EE, Spring + Hibernate, Borland Delphi, Python
(03/2003 — 03/2005, ~2
years)
- Where
-
- St. Petersburg, Russia
- Xiao Nang Hai, China
- Privetnoye, Ukraine
- Company Website
-
- Company Specialization
- Geological & Oceanographic Research
- Positions
-
- Software Developer, Geosignal Analysis (Fourier Transform)
- Scientific Researcher, Geosignal Analysis (Receiving Data From Sensor)
- Animation Creator for Conferences, Public Talks for Geophysical Conferences
- Experience
- My first programmer job turned out to be very interesting for the first job: we had expeditions to China and
Ukraine and after these expeditions we’ve processed the collected seismic signals to predict even minor
earthquakes.
Here I used a lot of different tools for the development (I learned coding by myself as
a hobby before), but the main subject for me was learning the Fast Fourier Transform to flatten unwanted noise
in the signal, only later I discovered that it is massively used in graphics and generative music as well, e.g.
to split music in harmonics or to vectorize raster images.
- Position:
- Software Developer
- Technologies:
- Borland C++ Builder, Borland Delphi, Object Pascal, C++
- Position:
- Scientific Researcher
- Technologies:
- C++, Assembly Language
- Position:
- Animation Creator for Conferences
- Technologies:
- Macromedia Flash
Conference/Meetup Talks
- The Basics of Generating Everything for Lambda Meetup'23 @ Munich, video in English
- PureScript with a chance of Free Monads for Lambda
Meetup'23 @ Munich, video in English
- Noodle :
Animation as Ramen for JetBrains Design Talks'22 @ Munich, video in English
- Tron : Minimalist UI for Generative Art for JetBrains Design Conference'20 @ Munich, video in English
- Generative Animation in Elm for f(by)'19 @ Minsk, video in
English
- The Future of Web UI
Development. for FrontEnd Developers
Meetup'18 @ Munich, slides in English
- iElm @ JetBrains'17 @ Munich, video in English
- iElm'17 @ Munich, video in English
- Elm. The language itself and how it brings functional
programming into web for Frontend Developers
Meetup'17 @ Munich, video in English
- About Git. That's easy'17 @ Munich, slides in Russian
- Elm: 2D & 3D Graphics. for Frontend Developers Meetup'17 @ Munich, video in
English
- RPD: Reactive Patch
Development v2.0 for JavaScript
Meetup'17 @ Munich, slides in English
- RPD: Reactive Patch Development for JS Kongress'16 @ Munich, video in English
- Animatron Player API in Details for Ultracode Munich Meetup'13 @
Munich, video in English
- How to Grasp the Functional Way of
Writing JavaScript for e-legion'12 @ St. Petersburg, slides in English
- The Real JavaScript for Web
Standards Days'11 @ Kyiv, video in Russian
- Fluxus for Application
Developer Days (ADD)'11 @ St. Peterburg, video in Russian
- Web-development with GWT & mvp4g for Application Developer Days (ADD)'11 @ St. Peterburg, video in
Russian
Interests
- Generative Art
- Visual Programming
- Japanese Language
- functionaλ Programming
- Animation
- Generative Music
- Theorem Proving
- Touch Designer
Hobbies
- Biking
- Exploring Cities
- Modern Arts / Graffiti
- CG / Typography
- Composing hard-to-listen electronic music
- Geeking geeky things
- Indie (but not always) games
- Japanese language, despite it's banal
- Books & Comix
Personal Qualities
- Accurate
- Responsible
- Honest
- Communicative
- Creative
Languages
- English : C1
- German : B1
- Spanish : B2
- Japanese : A1
- Ukrainian : A2
- Russian : Native
Books, I'm inspired with
- Dune, by Frank Herbert
- All Tomorrow's Parties, by William Gibson
- Land of Lisp, by Conrad Barski
- Designed for Use, by Lukas Mathis
- Advanced 3D Photorealism Techniques, by Bill Fleming
- 3D Graphics & Animation, by Mark Giambruno
- Programming Pearls, by Jon Bentley
- A Type of Programming, by Renzo Carbonara
- Nature of Code, by Daniel Shiffman
- Tricks of the 3D Game Programming Gurus, by Andre LaMothé
- Programming Perl, by Larry Wall, Tom Christiansen, Jon Orwant
- The Element of Typographic Style, by Robert Bringhurst
- The Animator's Survival Kit, by Richard Williams
- Designing with Web Standards, by Jeffrey Zeldman
- Retrocomputing with Clash, by Gergő Érdi
- Synth Secrets, by Gordon Reid
- The Game of Logic & Symbolic Logic, by Lewis Carrol
- Interactives Skizzieren with VVVV, by J.Barth, R.S.Grasy, J.Leinberger, M.Lukas, M.L.Schilling
- The Elements of Euclid, by Oliver Byrne
- Understanding Comics, by Scott McCloud
Recommendations
-
Anton is a very talented developer who developed a lot
of Ajax-based Web UI as well as server-side Java code
for myPictureTown service. His knowledge of web technologies and languages, such
as Javascript+Ajax, HTML, CSS are on the expert
level. He is a reliable, hard-working professional, and
I recommend him without reservations.
Boris Berkman, Senior Software Architect, Piclinq (prior to spin-off - FotoNation)
-
Anton is a honest, responsible, executive and skilled programmer.
Andrey Nikankin, Technical Director, Piclinq Rus (FotoNation Rus)
-
I know Anton as a brilliant Javascript programmer with strong understanding of the most advanced concepts
of this language. His Java skills are also allow him to write good Java code. It is a pleasure to work with such
talented professional.
Sergey Kuznetsov, Software Developer, Piclinq