CV (EN)

  • Sept. 1995 - Sept. 1996, M.Sc. in Information Technology at UCL (University College London) Project Title: “An Object Oriented ftp Program”. Lessons included Database Systems, Computer Graphics, Functional Programming and Project Management.
  • Sept. 1989 - Dec. 1994 B.Sc., Mathematics Department of University of Patras Last year project title: “The network of the Mathematics Department”. Computer Science related lessons: Applications of CS, Operating Systems, Software Engineering, MicroComputers, Computational Theory, Compilers, Algorithms, Introduction to Computer Science.

Apart from studying individually, I have also attended the following seminars:

  • 27 September - 01 October 1999, SA 349 Sun enterprise Cluster HA Admin, Sun Hellas
  • 15 May - 19 May 2000, Enterprise DBA Part 1A, Architecture and Administration, Oracle Hellas
  • 12 June - 15 June 2000, Enterprise DBA Part 1B, Backup and Recovery, Oracle Hellas
  • 25 June - 26 June 2002, Implementing a Microsoft Windows 2000 Professional & Server, ITEC Consultancy

Books Link to heading

  • I am the author of Mastering Go, 4th edition published by Packt Publishing.

  • I am the author of Time Series Indexing published by Packt Publishing.

  • I am the author of Mastering Go, 3rd edition published by Packt Publishing.

  • I am the author of the Mastering Go, 2nd edition book published by Packt Publishing. The book has been translated to Russian, Korean and Serbian.

  • I am the author of the Mastering Go book published by Packt Publishing. It also has a Korean translation!

  • I am the author of the Go Systems Programming book published by Packt Publishing.

  • Self-published a book called “Programming Dashboard Widgets”. Based on standard HTML, CSS, and JavaScript, Dashboard Widgets are simple to build and easy to extend. The “Programming Dashboard Widgets” book contains all that your need to know in order to create and program your own Apple Dashboard Widgets. The book also contains techniques that help you fine-tune, extend and explore existing Widgets.

  • I am the Technical Editor of the MongoDB in Action, Second Edition book that is published by Manning Publications.

Publications Link to heading

  • Linux Format magazine, issue 301, article titled “eBPF: Observability of the kernel and containers”.
  • Linux Format magazine, issue 300, article titled “Create your first WebSocket service”.
  • Linux Format magazine, issue 299, article titled “eBPF: How to trace code directly with eBPF”.
  • Linux Format magazine, issue 298, article titled “Monitor your TCP/IP networks with eBPF”.
  • Linux Format magazine, issue 297, article titled “Using eBPF to monitor filesystems”.
  • Linux Format magazine, issue 296, article titled “Using eBPF to trace disk transfer actions”.
  • Linux Format magazine, issue 295, article titled “eBPF: Use eBPF to keep tabs on your CPU”.
  • Linux Format magazine, issue 294, article titled “eBPF: Getting started with the powerful eBPF”.
  • Linux Format magazine, issue 293, article titled “Rust: Develop TCP/IP servers and clients”.
  • Linux Format magazine, issue 292, article titled “Rust: How to develop multi-threaded code”.
  • Linux Format magazine, issue 291, article titled “Controlling processes and using UNIX signals”.
  • Linux Format magazine, issue 290, article titled “File I/O in Rust”.
  • Linux Format magazine, issue 289, article titled “Develop Linux filesystem tools in Rust”.
  • Linux Format magazine, issue 288, article titled “Discover the all new V language”.
  • Linux Format magazine, issue 288, article titled “Coding secure Rust system tools”.
  • Linux Format magazine, issue 287, article titled “Working with binary tree data structures”.
  • Linux Format magazine, issue 286, article titled “Use Python to get more from Dropbox”.
  • Linux Format magazine, issue 285, article titled “Get the most from the Gin HTTP framework”.
  • Linux Format magazine, issue 284, article titled “Recreate the famous Game of Life”.
  • Linux Format magazine, issue 283, article titled “Develop a RESTful client in Go”.
  • Linux Format magazine, issue 282, article titled “Create a RESTful server in Go”.
  • Linux Format magazine, issue 279, article titled “Manipulate data like a pro with Pandas”.
  • Linux Format magazine, issue 278, article titled “Asyncio: Create asynchronous code with Python”.
  • Linux Format magazine, issue 278, article titled “RabbitMQ: Exchange messages between tasks”.
  • Linux Format magazine, issue 277, article titled “Comparing time series like a Pro”.
  • Linux Format magazine, issue 276, article titled “Collect and graph metrics with Python”.
  • Linux Format magazine, issue 275, article titled “Monitoring cycles in directory trees”.
  • Linux Format magazine, issue 274, article titled “Mermaid: How to code diagrams, graphs and pie charts”.
  • Linux Format magazine, issue 270, article titled “Metrics & visuals in Go”.
  • Linux Format magazine, issue 265, article titled “Turn your data plots into visual information using D3.js”.
  • Linux Format magazine, issue 265, article titled “Monitor Systems and Docker deployments with Netdata”.
  • Linux Format magazine, issue 263, article titled “How to solve mazes using Go and Maths”.
  • Linux Format magazine, issue 261, article titled “ElasticSearch: Build a search and analytic engine”.
  • Linux Format magazine, issue 260, article titled “R Calendars”.
  • Linux Format magazine, issue 259, article titled “Grafana: Create visualizations and cool dashboards”.
  • Linux Format magazine, issue 254, article titled “Hashicorp Vault”.
  • Linux Format magazine, issue 253, article titled “Inside Parsing - how Go handles the code”.
  • Linux Format magazine, issue 252, article titled “Build utilities with the Kafka server”.
  • Linux Format magazine, issue 251, article titled “Semaphore 2.0: Create pipelines and automate development”.
  • Linux Format magazine, issue 250, article titled “InfluxDB: Use Python and Go for series monitoring”.
  • Linux Format magazine, issue 249, article titled “Speed your web apps with WebAssembly”.
  • Linux Journal magazine, March 2019, article titled “Text Processing in Rust”.
  • Linux Format magazine, issue 247, article titled “Viper and Cobra: Explore command line tools in Go”.
  • Linux Format magazine, issue 246, article titled “Middleman: Develop secure and static websites”.
  • Linux Format magazine, issue 245, article titled “Go: Build, solve and benchmark Sudoku”.
  • Linux Format magazine, issue 244, article titled “Use certificates to secure an HTTP site”.
  • Linux Format magazine, issue 243, article titled “FoundationDB”.
  • Linux Journal magazine, October 2018, article titled “Getting Started with Rust: Working with Files and Doing File I/O”.
  • Linux Journal magazine, October 2018, article titled “Creating Linux Command-Line Tools in Clojure”.
  • Linux Format magazine, issue 241, article titled “Swift 4: A high-speed tour of the newest features”.
  • Linux Format magazine, issue 237, article titled “Hugo: Build a static site with support for themes”.
  • Linux Format magazine, issue 236, article titled “Machine learning: quick tips and tricks”.
  • Linux Format magazine, issue 234, article titled “CMake: Get the best build tools”.
  • Linux Format magazine, issue 233, article titled “Kotlin: Program some functions”.
  • Linux Format magazine, issue 232, article titled “Kotlin: Objects and classes”.
  • Linux Format magazine, issue 231, article titled “Kotlin: Systems programming”.
  • Linux Format magazine, issue 230, article titled “eBPF: Kernel level monitor”.
  • Linux Format magazine, issue 230, article titled “Kotlin: Control data and flow”.
  • Linux Format magazine, issue 229, article titled “Kotlin: Creating commands”.
  • Linux Format magazine, issue 228, article titled “The LXF Puzzle: Low-mem sort”.
  • Linux Format magazine, issue 227, article titled “ZFS: How to get started”.
  • Linux Format magazine, issue 227, article titled “The LXF puzzle: Computing pi”.
  • Linux Format magazine, issue 227, article titled “Copy: A cp to call your own”.
  • Linux Format magazine, issue 226, article titled “The LXF Puzzle: Passwords”.
  • Linux Format magazine, issue 226, article titled “Pi: Plot in lots of languages”.
  • Linux User & Developer magazine, issue 181, article titled “Program in Erlang: Start developing web apps”.
  • Linux Format magazine, issue 225, article titled “Swift 3: A guide to what’s new”.
  • Linux User & Developer magazine, issue 180, article titled “Program in Erlang: Mnesia modules”.
  • Linux Format magazine, issue 224, article titled “HAProxy: TCP load balancer”.
  • Linux User & Developer magazine, issue 179, article titled “Part 2: Erlang and OTP”.
  • Linux Format magazine, issue 223, article titled “Varnish: The reverse proxy”.
  • Linux Format magazine, issue 223, article titled “Python: Write your own find”.
  • Linux User & Developer magazine, issue 178, article titled “Program in Erlang: Erlang and OTP”.
  • Linux User & Developer magazine, issue 178, article titled “MySQL 8”.
  • Linux Format magazine, issue 222, article titled “Nginx: Set up a web server”.
  • Linux Format magazine, issue 222, article titled “Python: Code a system tool”.
  • Linux User & Developer magazine, issue 177, article titled “Program in Erlang: Network programming”.
  • Linux Format magazine, issue 221, article titled “psutil: A guide for sysadmins”.
  • Linux User & Developer magazine, issue 176, article titled “Program in Erlang: File I/O”.
  • Linux Format magazine, issue 220, article titled “Drupal 8: Create a website”.
  • Linux Format magazine, issue 220, article titled “D3.js: Create fancy charts”.
  • Linux Format magazine, issue 220, article titled “Processing text with Python”.
  • Linux User & Developer magazine, issue 175, article titled “Program in Erlang: Strings, data structures and messages”.
  • Linux Format magazine, issue 219, article titled “Graphviz: Make beautiful graphs”.
  • Linux Format magazine, issue 219, article titled “Fractals: Plot beautiful images”.
  • Linux Format magazine, issue 219, article titled “Python: Set up an SQLite 3 DB”.
  • Linux User & Developer magazine, issue 174, article titled “Program in Erlang: Functions”.
  • Linux Format magazine, issue 218, article titled “Wireshark: Analyse traffic”.
  • Linux Format magazine, issue 218, article titled “R: Statistical learning part 2”.
  • Linux User & Developer magazine, issue 173, article titled “Program in Erlang: Introduction”.
  • Linux Format magazine, issue 217, article titled “R: Statistical learning primer”.
  • Linux User & Developer magazine, issue 172, article titled “Learn how to test your Go software”.
  • Linux Format magazine, issue 216, article titled “Cassandra: Processing data”.
  • Linux Format magazine, issue 216, article titled “Phoenix: how to build a blog”.
  • Linux User & Developer magazine, issue 171, article titled “Concurrent Programming in Go – Part2”.
  • Linux Format magazine, issue 215, article titled “LTTng: Tracing apps in Linux”.
  • Linux Format magazine, issue 215, article titled “Python: Using Threads”.
  • Linux Format magazine, issue 215, article titled “Redis: NoSQL data stores”.
  • Linux User & Developer magazine, issue 170, article titled “Learn Concurrent Programming in Go”.
  • Linux User & Developer magazine, issue 169, article titled “Develop Go programs that read and write to files”.
  • Linux Voice magazine, issue 30, article titled “Process and Visualize Apache Log Files”.
  • Linux Format magazine, issue 214, article titled “ggplot2: Make stylish plots”.
  • Linux Format magazine, issue 214, article titled “Rust: A guide to concurrency”.
  • Linux User & Developer magazine, issue 168, article titled “Explore, create and use Go packages”.
  • Linux User & Developer magazine, issue 167, article titled “Learn Go: Explore Go functions”.
  • Linux User & Developer magazine, issue 167, article titled “Networking and traffic control with iproute2”.
  • Linux Format magazine, issue 213, article titled “Python: Plotting and drawing”.
  • Linux Format magazine, issue 213, article titled “Rust: Network Programming”.
  • Linux Voice magazine, issue 29, article titled “Use Elixir to Develop a Web Application”.
  • Linux Format magazine, issue 212, article titled “Rust: File I/O”.
  • ;login magazine, Summer 2016, article titled “MongoDB Database Administration”.
  • Linux User & Developer magazine, issue 166, article titled “Investigate network sockets with ss”.
  • Linux User & Developer magazine, issue 166, article titled “Learn Go Data Types”.
  • Linux Format magazine, issue 211, article titled “Rust: Functions and Modules”.
  • Linux User & Developer magazine, issue 165, article titled “An Introduction to the Go Programming Language”.
  • Linux User & Developer magazine, issue 165, article titled “Systems programming: Interprocess Communication”.
  • Linux User & Developer magazine, issue 165, The Coding Column.
  • MacTech magazine, issue 353, article titled “An introduction to Julia”.
  • MacTech magazine, issue 353, article titled “An Introduction to WebGL”.
  • Linux Format magazine, issue 210, article titled “Rust: Modules and Cargo”.
  • Linux User & Developer magazine, issue 164, article titled “Computer science: Create a programming language”.
  • Linux User & Developer magazine, issue 164, article titled “Systems programming: Advanced File I/O”.
  • Linux User & Developer magazine, issue 164, The Coding Column.
  • Linux Voice magazine, issue 25, article titled “GNU Make: Manage your Software Builds”.
  • Linux Format magazine, issue 209, article titled “MongoDB: Build a blog”.
  • Linux User & Developer magazine, issue 163, article titled “Systems programming: Developing server processes”.
  • Linux User & Developer magazine, issue 163, article titled “Computer Science: Creating and using binary trees”.
  • Linux User & Developer magazine, issue 163, The Coding Column.
  • Linux Format magazine, issue 208, article titled “Swift: An essential guide”.
  • Linux Format magazine, issue 208, article titled “MongoDB Admin”.
  • Linux User & Developer magazine, issue 162, article titled “Systems programming: Creating and Using Threads”.
  • Linux User & Developer magazine, issue 162, article titled “Computer Science: Random Number Generation”.
  • Linux User & Developer magazine, issue 162, The Coding Column.
  • Linux Format magazine, issue 207, article titled “MongoDB: Using native drivers”.
  • Linux User & Developer magazine, issue 161, article titled “Computer Science: Dealing with linked lists”.
  • Linux User & Developer magazine, issue 161, article titled “Systems programming: Dealing with processes”.
  • Linux User & Developer magazine, issue 161, The Coding Column.
  • Linux User & Developer magazine, issue 160, article titled “Systems programming: Data files and information”.
  • Linux User & Developer magazine, issue 160, The Coding Column.
  • Linux Format magazine, issue 206, article titled “Perl 6: Discover its new features”.
  • Linux Format magazine, issue 205, article titled “Lua and Conky”.
  • Linux User & Developer magazine, issue 159, article titled “Computer Science: Find strings with hash tables”.
  • Linux User & Developer magazine, issue 159, article titled “Systems Programming: Files and directories”.
  • Linux User & Developer magazine, issue 159, The Coding Column.
  • MacTech magazine, issue 352, article titled “Using the Go Programming Language.”.
  • Linux User & Developer magazine, issue 158, article titled “Systems Programming: File I/O”.
  • Linux User & Developer magazine, issue 158, article titled “Computer Science: Learn to use Regular Expressions”.
  • Linux User & Developer magazine, issue 158, The Coding Column.
  • Linux User & Developer magazine, issue 158, article titled “Visualise your data using D3.js, part 2”.
  • Linux User & Developer magazine, issue 157, article titled “Systems programming: Build your own system tools”.
  • Linux User & Developer magazine, issue 157, article titled “Visualise your data using D3.js”.
  • Linux User & Developer magazine, issue 157, article titled “Manipulate and convert data in R”.
  • Linux User & Developer magazine, issue 157, The Coding Column.
  • Linux Format magazine, issue 203, article titled “Elixir: Take a functional swig”.
  • Linux Format magazine, issue 203, article titled “Network troubleshooting using netstat, netcat and lsof”.
  • Linux User & Developer magazine, issue 156, article titled “Intermediate AWK programming”.
  • Linux User & Developer magazine, issue 156, The Coding Column.
  • Linux Format magazine, issue 202, article titled “Networking: The core Linux tools”.
  • Linux Format magazine, issue 201, article titled “Haskell: Build a Yesod web app”.
  • Linux Format magazine, issue 201, article titled “LaTeX: make text beautiful”.
  • Linux User & Developer magazine, issue 155, article titled “Program your own shell”, part 2.
  • Linux User & Developer magazine, issue 155, The Coding Column.
  • MacTech magazine, issue 351, article titled “Using Erlang.”.
  • Linux Journal magazine, August 2015, article titled “Hash Tables: Theory and Practice”.
  • Linux User & Developer magazine, issue 154, article titled “Program your own shell”, part 1.
  • Linux User & Developer magazine, issue 154, The Coding Column.
  • Linux Format magazine, issue 199, article titled “Perf_events: Kernel traces”.
  • Linux User & Developer magazine, issue 153, article titled “Draw and plot graphs using Julia”.
  • Linux User & Developer magazine, issue 153, The Coding Column.
  • Linux Journal magazine, June 2015, article titled “Using tshark to Watch and Inspect Network Traffic”.
  • Linux Format magazine, issue 198, article titled “SystemTap: Get monitoring”.
  • Linux Format magazine, issue 198, article titled “Scala: Easing into functional”.
  • Linux User & Developer magazine, issue 152, The Coding Column.
  • Linux User & Developer magazine, issue 152, article titled “Build network clients, servers and more with Netcat”.
  • MacTech magazine, issue 350, article titled “Using Caching to improve performance.”.
  • Linux Format magazine, issue 197, article titled “Haskell: The Functional Way”.
  • Linux User & Developer magazine, issue 151, The Coding Column.
  • Linux User & Developer magazine, issue 151, article titled “Troubleshoot your network with netstat”.
  • Linux User & Developer magazine, issue 150, article titled “Write a book in LaTeX”.
  • Linux User & Developer magazine, issue 150, article titled “Get your network information using lsof”.
  • Linux Format magazine, issue 195, article titled “Riak and NoSQL”.
  • Linux Format magazine, issue 195, article titled “Dynamic Programming using the Julia Programming Language”.
  • Linux User & Developer magazine, issue 149, article titled “Build a Cacti plugin to display active TCP/UDP connections”.
  • Linux User & Developer magazine, issue 149, article titled “Generate complex graphics with R and ggplot2”.
  • MacTech magazine, issue 348, article titled “An introduction to Regular Expressions”.
  • MacTech magazine, issue 348, article titled “Introduction to Swift - Part 3”.
  • MacTech magazine, issue 348, article titled “The Xcodebuild command line tool”.
  • Linux Format magazine, issue 194, article titled “DTrace: A hands-on guide”.
  • Linux Format magazine, issue 194, article titled “Erlang: A hands-on guide”.
  • Linux User & Developer magazine, issue 148, article titled “Monitor network traffic with Cacti”.
  • Linux Format magazine, issue 193, article titled “Programming in R”.
  • Linux User & Developer magazine, issue 147, article titled “Create a caching DNS server using BIND”.
  • MacTech magazine, issue 347, article titled “Getting started with Open GL ES”.
  • MacTech magazine, issue 347, article titled “An Introduction to Swift, part 2”.
  • Linux Format magazine, issue 192, article titled “Linux Monitoring”.
  • Linux User & Developer magazine, issue 146, article titled “How to Handle UNIX Signals”.
  • Linux User & Developer magazine, issue 146, article titled “3D Rendering with WebGL”.
  • Linux Format magazine, issue 191, article titled “WireShark: Analyse Traffic”.
  • Linux User & Developer magazine, issue 145, article titled “Monitor a Cisco router using MRTG”.
  • MacTech magazine, issue 346, article titled “An Introduction to Swift, part 1”.
  • Linux User & Developer magazine, issue 144, article titled “Serve a Joomla! website using Nginx”.
  • Linux User & Developer magazine, issue 144, article titled “Process text faster with AWK and Sed”.
  • Linux User & Developer magazine, issue 143, article titled “Plot Scientific Data with NumPy”.
  • MacTech magazine, issue 345, article titled “Exploiting the power of R”.
  • Linux Journal magazine, August 2014, article titled “An Introduction to OpenGL Programming”.
  • Linux User & Developer magazine, issue 142, article titled “Run Drupal sites with Drush”.
  • Linux User & Developer magazine, issue 141, article titled “Programming in Rust”.
  • MacTech magazine, issue 344, article titled “Using Nginx on Mac OS X”.
  • Linux User & Developer magazine, issue 140, article titled “Program Octave”.
  • Linux User & Developer magazine, issue 139, article titled “How to become a Linux System Administrator”.
  • Linux User & Developer magazine, issue 138, article titled “Secure your network with Nmap”.
  • Linux User & Developer magazine, issue 137, article titled “Program with Erlang”.
  • ;login magazine, March 2014, article titled “Using the R Software for Log File Analysis”.
  • MacTech magazine, issue 342, article titled “An Introduction to Routing”.
  • Linux User & Developer magazine, issue 136, article titled “Build a blog with Django”.
  • ;login magazine, February 2014, article titled “Using a Database to Store Data Captured with tcpdump”.
  • Linux Journal magazine, February 2014, article titled “Using Django and MongoDB to Build a Blog”.
  • Linux User & Developer magazine, issue 135, article titled “Monitor your network traffic with tshark”.
  • Linux User & Developer magazine, issue 134, article titled “Draw with GNUplot”.
  • MacTech magazine, December 2013, article titled “Programming a Drupal Module”.
  • MacTech magazine, November 2013, article titled “Creating a Preference Pane for a Mac app”.
  • MacTech magazine, October 2013, article titled “Using Drush”.
  • Linux User & Developer magazine, issue 132, article titled “Visualize Data with Graphviz”.
  • Linux User & Developer magazine, issue 131, article titled “Sync your files with Unison”.
  • Linux User & Developer magazine, issue 130, article titled “Send Cisco logs to a remote PC”.
  • MacTech magazine, August 2013, article titled “Creating a simple iOS chat client”.
  • MacTech magazine, August 2013, article titled “An Introduction to TCP/IP”.
  • Linux Journal magazine, August 2013, article titled “Using the R Advanced Statistical Package”.
  • Linux User & Developer magazine, issue 129, article titled “Create and save data with a MongoDB database”.
  • Open Source For You magazine, August 2013, article titled “Begin your Programming Journey with Go”.
  • MacTech magazine, July 2013, article titled “Using telnet to troubleshoot TCP/IP services”.
  • MacTech magazine, July 2013, article titled “An Introduction to Drupal”.
  • MacTech magazine, July 2013, article titled “Using VirtueMart for Web Payments”.
  • MacTech magazine, July 2013, article titled “The Mac OS X 10.8 Log Files”.
  • Linux For You magazine, July 2013, article titled “Leverage Your Programming Skills with Erlang”.
  • Linux For You magazine, June 2013, article titled “An Introduction to Graphviz”.
  • MacTech magazine, May 2013, article titled “An introduction to sar”.
  • MacTech magazine, May 2013, article titled “Using email to execute a command”.
  • Linux For You magazine, May 2013, article titled “Graphing Network Performance with MRTG”.
  • Linux For You magazine, May 2013, article titled “Monitoring and Graphing your Network with Cacti”.
  • MacTech magazine, April 2013, article titled “Drawing in iOS”.
  • MacTech magazine, April 2013, article titled “Programming iCloud Applications”.
  • MacTech magazine, February 2013, article titled “An introduction to Cacti”.
  • Linux For You magazine, February 2013, article titled “The Best Open Source Security Tools”.
  • MacTech magazine, January 2013, article titled “An introduction to MRTG”.
  • MacTech magazine, January 2013, article titled “Programming a Joomla! Extension” (co-author: Dimitris Tsoukalos).
  • Linux For You magazine, December 2012, article titled “Getting started with WireShark”.
  • MacTech magazine, Fall 2012, article titled “An introduction to Squid”.
  • Linux For You magazine, November 2012, article titled “Getting started with tcpdump”.
  • MacTech magazine, August 2012, article titled “An introduction to gdb”.
  • MacTech magazine, August 2012, article titled “The tcpdump network utility”.
  • MacTech magazine, August 2012, article titled “Installing an SSD drive on an iMac”.
  • MacTech magazine, July 2012, article titled “Running a cache DNS server on Lion”.
  • MacTech magazine, July 2012, article titled “An introduction to Moodle”.
  • MacTech magazine, June 2012, article titled “Selecting photos in iOS”.
  • MacTech magazine, April 2012, article titled “The find UNIX command”.
  • MacTech magazine, April 2012, article titled “An Introduction to WordPress”.
  • MacTech magazine, March 2012, article titled “WireShark Display Filters”.
  • MacTech magazine, December 2011, article titled “An Introduction to GNU Octave”.
  • MacTech magazine, November 2011, article titled “Find Your Current iPhone Location”.
  • MacTech magazine, November 2011, article titled “Typesetting a book on a Mac using LaTeX”.
  • MacTech magazine, September 2011,article titled “WireShark and DHCP” (co-author: Dimitris Tsoukalos).
  • MacTech magazine, July 2011, article titled “Using AppleScript and Perl for Automation”.
  • MacTech magazine, June 2011, article titled “Examining 3 Important Nmap Scans with WireShark” (co-author: Dimitris Tsoukalos).
  • MacTech magazine, May 2011, article titled “The SQLite DB and iOS”.
  • MacTech magazine, April 2011, article titled “Sending Cisco logs to Syslog on your Mac”.
  • MacTech magazine, March 2011, article titled “An Introduction to WireShark”.
  • MacTech magazine, February 2011, article titled “An Introduction to Nmap”.
  • MacTech magazine, September 2010, article titled “Installing Joomla! on a Mac”.
  • MacTech magazine, August 2010, article titled “Creating a Dashboard Widget that Supports Localization”.
  • MacTech magazine, July 2010, article titled “A Dashboard Widget that Supports Copy-and-Paste”.
  • MacTech magazine, February 2010, article titled “An Introduction to Gnuplot”.
  • MacTech magazine, November 2009, article titled “Advanced MySQL Administration”.
  • MacTech magazine, January 2009, article titled “An introduction to GraphViz”.
  • MacTech magazine, December 2008, article titled “A Dashboard Widget that Supports Drag-and-Drop”.
  • MacTech magazine, October 2008, article titled “A Dashboard Widget that Reads and Saves its Preferences”.
  • MacTech magazine, August 2008, article titled “Creating Widgets with Dashcode”.
  • MacTech magazine, July 2008, article titled “Creating a Dashboard Widget that Processes an RSS Feed”.
  • SysAdmin magazine, July 2007, article titled “Network Traffic Visualization”.
  • SysAdmin magazine, June 2007, article titled “Using a MySQL Database to Store Network Data”.
  • SysAdmin magazine, March 2007, article titled “Successfully Creating and Presenting Graphics”.
  • MacTech magazine, January 2007, article titled “Using the R statistics package”.
  • MacTech magazine, December 2006, article titled “Creating a Dashboard Widget that uses a plugin”.
  • SysAdmin magazine, July 2006, article titled “Command Usage Analysis”.
  • MacTech magazine, June 2006, article titled “Installing and Using a Wiki”.
  • Macland magazine, February 2006, article titled “Port Forwarding”.
  • SysAdmin magazine, February 2006, article titled “Unison: A File Synchronization Tool”.
  • C/C++ Users Journal magazine, “Nikos Platis and Mihalis Tsoukalos”, December 2005, article titled “GraphViz and C++”.
  • Macland magazine, December 2005, article titled “Putting a DVD to an Apple iPod 5G”.
  • SysAdmin magazine, December 2005, article titled “Making a Dashboard Widget for Systems Administration Purposes”.
  • Macland magazine, November 2005, article titled “SSH”.
  • SysAdmin magazine, November 2005, article titled “Net::Telnet::Cisco Perl Module”.
  • SysAdmin magazine, July 2005, article titled “Using GraphViz for Database Schema Visualization”.
  • Macland magazine, April 2005, article titled “iMovie HD”.
  • Macland magazine, February 2005, article titled “Open Firmware”.
  • SysAdmin magazine, January 2005, article titled “Using the R System for Systems Administration”.
  • Macland magazine, December 2004, article titled “Basic UNIX commands”.
  • On line article for Linux Journal titled “An Introduction to GraphViz”.
  • Macland, September 2004, article titled “Google: Search, search and you will find it!”.
  • Macland, September 2004, article titled “An introduction to Regular Expressions”.
  • Macland, July 2004, technical article titled “When AirPort met Router”.
  • Macland, May 2004, article titled “fink”.
  • Macland magazine, March 2004, article presenting UNIX books.
  • SysAdmin magazine, March 2004, article titled “Web Polygraph”.
  • Wrote the section for the GD Perl module for the “Elements of Perl Programming” book of Apostolos Syropoulos as well as reviewed the book.
  • Technical reviewer for the “The Linux Operating System” book. Publisher: Papasotiriou, ISBN 960-7510-98-4.
  • Translated in Greek the «Presenting C#» book for B. Giourdas publications.
  • D.i.Li.Ma. magazine, issue 5, article titled “/usr/doc/books”.
  • Computer For Everyone magazine, February 2001, article titled “Solaris 8”.
  • D.i.Li.Ma. magazine, issue 0, article titled “DNS & BIND”.

Working Experience Link to heading

Companies and Organizations I have worked with include the following:

Software Experience Link to heading

I can efficiently use many software packages including the following:

  • Microsoft Word, Microsoft Excel
  • Apple Final Cut Pro, Apple Aperture 3
  • Adobe Acrobat X Professional, Adobe Pagemaker 6.5, Adobe FrameMaker 7, Adobe InDesign, Adobe Illustrator, Adobe Photoshop
  • SGML/XML DTD development and SGML parsing

  • vi, vim, gcc, g++, gdb, GNU make, git, Docker
  • Sendmail (mail server), bind (DNS server), security tools (snort, tcpdump, nmap, WireShark), Apache (HTTP server), Squid (Proxy Server), Web Polygraph
  • mrtg, rrdtool, MySQL, AT&T GraphViz, R, Django, Hugo, Apache Kafka
  • Experience with GitHub Actions, Jenkins, GitLab CI/CD, Semaphore CI, Elasticsearch, Grafana, InfluxDB, Prometheus, etc.

  • Good knowledge of LaTeX/TeX
  • Excellent knowledge of TCP/IP and its protocols
  • Theory and Applications of Computer Graphics
  • Operating Systems: Mac OS X (all versions), Sun Solaris 7,8,9 (SPARC & x86), HP/UXAIX, Linux (Debian), Microsoft Windows 2000 (Pro & Server), Microsoft Windows XP, CISCO IOS, Apple iOS
  • Programming Languages: Go, C/C++, Perl, Python 3, Rust, PL/SQL, SQL, Objective-C, Tcl/Tk, Erlang, Elixir, …