/** * @author Marios D. Staikopoulos * @email [email protected] * @site http://staik.net * @github https://github.com/marstaik/ * @date-modified October 15, 2019 */
Enthusiastic programmer that loves solving problems; always trying to get the most efficient or most maintainable solution possible. Experienced developer utilizing a broad spectrum of programming languages, always striving for more knowledge and self-improvement. Exceptional skills in team management and Object-Oriented Design. High preference to compiled languages such as C & C++, but always flexible to use others as well, such as C# and Java - Language is not a barrier. Enjoys learning new technologies and ideas when the opportunity presents itself.
- Experience in the Agile software development process.
- Worked with a large team of engineers to successfuly deliver multiple projects to critical stakeholders on time and with excellent results.
- Development of new algorithms and techniques to enhance both data alignment and updating of various input sources.
- Key role in implementing new algorithms to drastically reduce user-involvement in the generation of 3D maps for autonomous vehicles. Resulted in a reduction of direct user involvement in certain areas of the map by 70%.
- Successful in leading efforts to modernize and secure a large and old codebase. Efforts entailed things such as bringing the codebase to more modern C++ compilers, compiling on multiple newer Linux operating systems, improvements to SWIG JNI bindings for exposed C++ code to external consumers, and quality of life improvements such as enforcement of a clang-formatting policy to be used by over 30 software engineers.
- Critical role in the both creation of new Products and in the continued long-term Support of Products.
- Development of advanced user tooling in proprietary UI software using C#/C++.
- Development of software automation techniques for rapid deployment.
- Extensive use of the GoogleTest suite for both C++ and Java Unit Tests.
- Modular Game Engine written in C++ and OpenGL
- Extensive use of C++ and Windows API's to create a multithreaded engine for fast scene-based and physics updates across multiple threads incorporating these features: Collision detection with tight bounding boxes, Collision detection with arbitrary geometry, Procedurally generated terrain (diamond-square algorithm), Procedurally generated plants with L-systems, and a Simple Physics Engine.
- GLSL shaders written from scratch supporting features such as: Per-pixel illumination of texture-mapped polygons, Toon shading, Skyboxes, and Generic Object shading.
- Created and implemented various data structures in C and C++ such as Binary Trees, Hash Tables, Linked Lists, Polymorphic Generic Containers, Red Black Trees, Priority Queues, etc.
- Created an encoder/decoder application using Huffman encoding.
- Implemented various advanced graphics technices such as skeletal animation systems, particle based systems for cloth physics, and fluid dynamics.
- Prototyped in Python, written in C.
- Multi-processing with communication queues to separate modules of the server and allow certain areas of the application to resize their process and thread counts to better handle server load.
- C classes written to manage specialized hash table of user and connection data in shared memory (System V IPC) for multi-processed server applications.
- Nginx for serving static content.
- MySQL used to store client data for persistent sessions and information.
- Tested to handle 150k concurrent users on a single quad-core Xeon 3.0 Ghz machine with 8Gb of RAM and 1Gb NIC.
- Use of Python, C, Bash, MySQL, PHP, JS, HTML5, CSS/SCSS
- Created a custom reusable PHP Framework with central registry, namespaces, class autoloading, and link handling, to name a few (same as rawranime).
- Highly customized VideoJS HTML5 Player, compiled with Google Closure compiler and modularized for specific functionality that Arkvid provided.
- MySQL data backend, setup and optimized to support hundreds of requests per second across multiple processes.
- Python was used with bash and C to create a centralized server console that would distribute commands, updates, and auto-deploy new servers with minimal effort. Heavy use of multithreading for server handling and SSH connectivity. Specific algorithm developed in C to handle the server stress and distribute load between the network of servers.
- Git was used to create quick and easy distributions of back end server code to new servers and updates, with bash configuration scripts.
- Use of FFMPEG to re-encode videos optimized for streaming with the file atom placed at the head. Also used to generate a 10x10 grid of thumbnails for each video.
- Extremely fine-tuned and optimized Nginx to service large amounts of MP4 H.264 video streaming, as well as static thumbnail strips.
- Specialized server backend incorporating a mix of servers ideally built to run specific tasks, such as storage, streaming, and archiving.
- Lead a team of 6+ people who would facilitate monitoring services and social aspects.
- Used Piwik analytics software to monitor site traffic.
- Use of PHP, MySQL, Python, JS, HTML5, CSS/SCSS
- Created a custom reusable PHP Framework with central registry, namespaces, class autoloading, and link handling, to name a few.
- MySQL data backend with PHP class wrappers to keep data organized and efficient. Allowed for consistent database reading/writing and prevention of "dirty-data" (orphaned rows, etc).
- Python web socket server used to send live-push notifications to users, as an alternative to AJAX Long Polling.
- Responsive HTML5 design for every screen size, with modular components that would appear and disappear reactively according to device type.
- Use of CSS/SCSS to compile stylesheets together and use of other applications such as Autoprefixer to automate browser compatibility.
- Finely-tuned Nginx, PHP7, and MySQL used to serve pages. Nginx tuned for PHP7-fpm and for static content serve. PHP7-fpm configured to use extensive opcache and output buffering. MySQL configured to use proper indexing and UTF-8 data types.
- Lead a team of 10+ people who managed the community aspects of the site.
- Used Piwik analytics software to monitor site traffic.
- Used heavy amounts of OOP to emulate the game server written in Java.
- Excessive quantities of Network Client handling and optimizations.
- Contributed in small amounts to the Open Source Project.
B.S. in Mathematics-Computer Science - 2018