Résumé
I am a web developer based in Athens, Greece. Web development brings together three things I love: technology, publishing and the web. I focus on making websites that are fast and easy to use for all visitors.
The latest version of this document is available at https://www.kikizas.com/resume/
Personal information
- Name
- Demetris Kikizas
- d@kikizas.com
- Phone
- +30 694 402 6728
Education
- 1993 to 1994
- University of Cambridge, Cambridge, UK. MPhil in Moral and Political Philosophy.
- 1987 to 1991
- Panteion University, Athens, Greece. Degree in Sociology.
Recent projects
Omni Carousel
Carousel library that aims for performance and simplicity by delegating as much as possible to modern platform APIs. Omni Carousel adds features and affordances to carousels and scrollers whose layout and scrolling behavior are set up in pure CSS.
nobot
An experiment to find out how much of lying bots you can detect and block without annoying your visitors with front-end challenges and without adding an extra application to your stack.
Benchmarks of lossless image compression
Two sets of benchmarks to help understand what are the best options now and in the near future for lossless compression of graphics images:
- oxipng and friends: A comparison of PNG optimization tools
- PNG and modern image formats: A comparison of lossless image compression
The comparison of the PNG tools is linked from the homepage of oxipng, the best PNG optimizer these days.
Front-end performance
Front-end performance is one of the parts of web development I enjoy the most. One reason I like exploring modern features of the web platform is the much improved front-end performance they make possible.
CLS and LCP on tanstack.com
A set of minimal changes that eliminated CLS on tanstack.com (the home of the TanStack family of open-source libraries), and brought LCP from 3.7s to about 1.1s on the homepage, and from 4.1s to about 0.5s on the Router page.
Carousel with 16,384 slides that sets up in 1 second
Omni Carousel delegates as much work as possible to platform APIs: IntersectionObserver for visibility, ResizeObserver for size changes, the CSS engine for all scrolling and snapping.
This, along with a few optimizations, makes it possible to have a carousel with 16,384 slides—including 16,384 autogenerated indicator buttons with full accessibility markup—that sets up in about 1 second and scrolls as smoothly as a carousel with 10 slides:
Lean HTML markup with modern CSS
In Lean HTML markup with modern CSS I explain a simple technique (two CSS variables and two declarations) that eliminates the need for non-semantic wrapper elements. No wrappers means, of course, fewer elements, smaller DOM, fewer bytes over the network, and, as important as anything, code that is easier to maintain.
More skills
WordPress
My WordPress skills include:
- Setting up and maintaining WordPress sites
- Optimizing WordPress sites for speed
- Developing themes using the WordPress API and modern HTML, CSS and JavaScript
- Developing custom plugins to meet client needs
- Designing and implementing custom post types and custom post fields
- Customizing the WordPress admin UI to make it friendlier for users
- Configuring, optimizing, hardening and maintaining web servers for WordPress
WordPress plugins
- Omni Contact Form, a basic contact form that uses shortcodes and the WordPress REST API
- Omni Control, a collection of WordPress tweaks
WordPress contributions and related work
- I have contributed more than 100 reports and patches to WordPress: core.trac.wordpress.org/query?reporter=demetris
- I was the main Greek translator of WordPress for versions 2.6 to 2.9. The completeness of the Greek translation went from 50% to 99% during that time.
- I have written a few well-received articles on WordPress. How to make a child theme for WordPress (2008) and The WordPress excerpt (2009) are two.
WordPress and WooCommerce websites (recent)
- In 2021 I took over the maintenance of myLAB Box for XWP. myLAB Box is a WooCommerce site hosted on WordPress VIP. In addition to maintenance and adding features as requested, I have focused on performance and security.
- In 2021 I rebuilt the website of Bohlin Cywinski Jackson, an American architectural firm, based on the existing design and using WordPress, custom post types, custom taxonomies and custom fields. I also built a subsidiary mini-site for Bohlin Cywinski Jackson using Next.js and the GraphQL API.
- In 2019 I completed the new website of NOMIS Foundation, a Swiss private fund for scientific research. The site uses custom post types, custom fields and automatic bi-directional post-to-post relationships, it integrates third-party libraries like Siema, baguetteBox.js, and schema-org and has a members area implemented with BuddyPress. I maintained the NOMIS website on a Linode VPS from 2017 to 2020.
WordPress and Timber
I have built a handful of sites using Timber. Timber is not for all WordPress projects, but I find it a pleasure to work with when it fits the task.
More skills, continued
HTML, CSS and Sass
I use semantic HTML and standards-compliant CSS since 2002, and I always aim to use the latest HTML and CSS features supported by targeted browsers.
Most of the CSS I have written since 2012 is in Sass (SCSS).
JavaScript and TypeScript
I started using TypeScript in 2016. I like it because it helps me understand JavaScript better. Most JavaScript I write these days is in TypeScript. My Omni Carousel is written in TypeScript and is fully typed.
PHP
I follow the developments in PHP and I strive to follow modern practices and to take advantage of modern features available in the PHP ecosystem and in the latest versions of the language.
Astro
Astro has been my static-site generator of choice since 2023. It offers the best developer experience out of all the SSGs I’ve used. A small site I built recently with Astro is the docs and demos of Omni Carousel.
React & Next.js
I have built a few simple WordPress front-ends using Next.js. I also use React for custom Gutenberg blocks in WordPress.
Git
I have used Git since 2009. I also have experience with Subversion and Mercurial.
Gulp, webpack, Vite
Vite is my current bundler and dev server of choice. I also have experience with webpack and Gulp.
Linux administration
I have used Debian and Ubuntu since 2003 both on the command line and through a graphical interface. I also maintain a couple of Debian servers at Linode for hosting, testing and web development.
Work experience
- Dec 2022 to now
- myLAB Box. Front-end developer. See above, More skills.
- Sep 2022 to Oct 2023
- Pastilla. Front-end and WooCommerce developer, front-end performance consultant, SEO. See above, More skills.
- Sep 2021 to Nov 2022
- XWP. Front-end and WooCommerce developer. See above, More skills.
- May 2021 to Nov 2022
- Xfive. Front-end and WordPress developer. See above, More skills.
- 2009 to 2020
- Freelancer. WordPress consultant and developer. See above, More skills.
- 2000 to 2002
- Sotiropoulos Brothers, commercial real estate agency, Athens, Greece. Apprentice mediator and PA to the chief mediator.
- 1995 to 2015
- Freelancer. Translator (mostly English to Greek) and copy editor for several publishers in Greece. Specialized in novels and in technical documents. Authors I have translated include Ursula K. Le Guin, François Châtelet, D. H. Lawrence, Charlotte Brontë and Jane Austen.
- 1994 to 1995
- Greek Army. Mandatory military service.
Other skills & interests
Languages
- Greek. Native tongue.
- English. Fluent.
- French. Basic reading skills (studied to intermediate level, haven’t practiced).
- German. Basic reading skills (studied to intermediate level, haven’t practiced).
Personal computers
I have used personal computers since 1984. My current work setup is a desktop computer with Windows 10 and WSL and a laptop with Debian.
Music
I studied piano with Eleni Hallecker and Efi Agrafioti in Athens, Greece, for eight years (1996–2004).
DIY
I enjoy assembling, disassembling and repairing stuff. I like to know how the things I use work.
Sport
I play and watch football and I used to play basketball and tennis.