Hi there! My name is Istvan (Stephen) and I'm a software developer based in Cluj-Napoca, the historic capital of Transylvania. I have been in the software development industry for 7 years.
My focus area for the past few years has been front-end development with React, but I'm also skilled in test automation and back-end development with either Go or Kotlin.
I work as a contractor and consultant to help companies around the world design and implement their software products.
✨ Blog posts :
How to recover a corrupted BitLocker encryption without the recovery key👨💻 Work experience
Senior Front-End Developer
Responsible for the development of a fleet management solution for gas turbines and power plants, implemented the front-end for asset diagnostics with machine learning and artificial intelligence.
- React with TypeScript
- Monorepo with Nx
- Test-driven development with react-testing-library
- CI/CD with Gitlab (implemented the pipelines with Nx)
- Tailwind with headless components
- Refactoring with Material UI
- Code reviews and front-end coding standard
- Customer support and continuous releases
- Microservices with Kubernetes, Docker and Java w/ Spring
Full Stack Developer
Responsible for the development and testing of features in an Agile team for a global NYSE-listed customer based in San Francisco, California.
- Front-end development with React 16, hooks and Redux with thunks for state management.
- Delivered a feature that will enable Fortune 500 to plan collaboratively inside a game-changing cloud-based solution.
- Mandatory test-driven development:
- Unit tests with Jest, Enzyme and react-testing-library.
- End to end and smoke tests with Cucumber and Puppeteer
- Trunk based development with git with daily pull requests and code reviews (worked directly on develop with 100+ developers)
- Microservices with Kotlin and Spring Framework, Ktor in Docker containers
- Remote Scrum ceremonies, pair programming and development with the help of WebEx/Zoom/Slack in the COVID-19 context
- CI/CD with Jenkins and Github using Kubernetes with Helm Charts
- Contract testing with Pact in Kotlin
- Diagramming with LucidCharts and LucidSpark
QA Automation Engineer
Built automated acceptance test suites for the client's Google Sheet's extension.
- Delivered automation tests for each story at the end of every sprint during development
- Learned about the limitations of the Google Apps Script platform and how to overcome them
- Implemented an automation testing framework for Google Sheets with TypeScript and continuous integration (NodeJS - WebDriverIO, Jenkins, Selenoid, Selenium Box, Docker and Github)
- Implemented complex page objects (inside nested iframes with dynamic elements re-rendered by backend calls)
- Enforced the AAA (Arrange, Act, Assert) pattern in tests
- Integrated the Google Sheets v4 API in the automation framework for manipulating data in a workbook
- Implemented automated tests for a Google Sheets add on according to business requirements (predefined test cases)
- Integrated the TestRail v2 API for publishing test run results
- Deployed, tested and debugged an advanced Google Sheets addon
- Performed pair programming and brainstorming sessions for implementing advanced tests
- Evaluated WebdriverIO, TestCafe, TestNG, Rest Assured and cypress.io for automated testing
- Documented every feature of the automation framework (Markdown, Github, Confluence, LucidCharts and Slack)
- Created and reviewed test cases in the TestRail test case management platform
- Avoided the usage of implicit waits everywhere for more test stability
- Configured Selenium and browser drivers to run on Windows, Mac OS X and Linux (docker)
- Strictly maintained typing, formatting and comments in tests, clients and page objects (JSDoc, Prettier, TSLint)
- Implemented BDD by using 'expect' statements for assertion and links to test cases in the test case management platform. (mocha, chai, testrail)
- Generated and reviewed test data, mostly by data wrangling (JSON, typings, functional programming)
- GDPR and ISO compliance courses
Junior Front-End Developer
I developed my soft skills and technical skills while working on front-end projects with AngularJS and Angular 6
I've learned unit testing, TypeScript, GraphQL, golang, Agile, the importance of teamwork and pair programming, Amazon AWS, canvas and svg drawing, rxJS, three.js and glTF, API documentation with Postman and API Blueprint and most importantly how to perform and ask for code reviews
There are some things you can’t share without ending up liking each other, and knocking out a twelve-foot mountain troll is one of them.
🛠 Skills
💻 Technology
JavaScript & TypeScript ⭐️⭐️⭐️⭐️
My "native" programming language(s), I've worked with JavaScript for over 5-6 years. I've used it in the front-end with React and Redux, in game development with a GTAV mod, in the back-end for APIs with Node, Express, Apollo GraphQL and for testing automation using Mocha, Jasmine with WebDriverIO and later on, Jest. Since 2018 I am working with TypeScript and I would never start a project without type definitions.
Go ⭐️
I've learned Go during my first two projects at Zenitech and found it challenging (in a good way!) I'm not proficient yet but I've worked on some features and fixes on my own. Go has an awesome community and is a valuable resource for fast developer tools, for instance I can highly recommend esbuild instead of webpack. Docker is also written in Go and is a staple of modern web development.
Kotlin ⭐️⭐️
I've learned Kotlin recently and found it very similar to TypeScript. I think it's an excellent language on the JVM. I'm not proficient yet but I've worked on some features and fixes on my own. Kotlin has amazing IDE support and debugging is a breeze even inside docker/k8s.
Technical writing ⭐️⭐️⭐️
If people cannot write well, they cannot think well. And if they cannot think well, others will do their thinking for them. — George Orwell
I enjoy writing about technical subjects and I feel I can do a pretty good job about it! My motivation is explaining things in simple and practical terms and thus making things easier for others.
I have written most of the internal technical documentation in Confluence for my team during the last two projects
Testing ⭐️⭐️⭐️
I have created, ran and implemented test cases, test suites and test plans in TestRail. I've documented defects and automated business critical test cases as part of the Definition of Done. Since 2020 I am using cucumber with puppeteer as a full-stack developer to implement end-to-end and smoke tests.
I have to mention that I also worked on running Selenium tests in the cloud with selenoid, WebDriverIO and then puppeteer (chrome headless) in Jenkins pods with k8s (built with helm charts). This included setting up the pipelines for PR unit tests and mainline merge e2e's and the smoke test suite for automated releases.
DevOps ⭐️⭐️⭐️
During my high school years I have maintained bare-metal servers with Proxmox and OpenVZ for web hosting with cPanel/DirectAdmin/VestaCP and game hosting with a custom platform created by me.
I remember that I started to learn Linux when I was 13-14 years old, mostly because I got bored with Windows XP and I received a free Ubuntu live cd. After some time I've learned vim just for fun and I compiled my own kernel to get better performance in games with Wine. I soon became the Linux guy on internet forums and I created tools to easily create game servers for Minecraft and Counter-Strike in a GUI, which I wrote in bash script with ncurses.
Nowadays I deal with the quirks of Jenkins and my most challenging task so far was to optimize pipelines for a large monorepo, which included splitting pipelines by packages/services, understanding existing architecture, creating documentation and diagrams, implementing multi-package versioning, PR-triggered jobs, slack bots and creating or adapting Jenkinsfiles in Groovy.
I've also configured Docker images and helm charts for services and I ran parameterised jobs for automated smoke testing during production releases.
Embedded systems ⭐️⭐️
I was always very curious and I followed the "Don't turn it on, take it apart" strategy with my toys. My first "smart" phone was a Sony Ericsson W880i which I received when I was about 13 years old. I managed to break it in just two days (the motherboard failed for some reason) after trying to run my "Hello World" Java app on it after watching a tutorial on youtube. I had to wait a year until I received a Nokia E51 that ran Symbian, which I used for about 5 years and I had even Turbo Pascal running with DOSBox to test my ideas during the gaps between classes.
I have built my own clock and computer-controlled thermostat for a boiler heater with a 7-segment display using an ATMega8 microcontroller when I was about 15 years old. I experimented on a breadboard with Arduino on ATMega328 chips with RFid tags, motion sensors, I2C 1-wire Dallas temperature and humidity sensors. About 5 years ago I learned to build amplifiers with op-amps and I started to play with ESP8266's with which I've built a wifi clock. I had some fun with a Raspberry Pi, which I used for a pi-hole and to show health check dashboards.
These days I am planning a wifi-connected radio with an external I2S DAC with an ESP32, maybe even an Alexa alternative with firmware written from the scratch in ESP-IDF or even in Rust (if the WiFi API/driver will get better)
Internet of Things with ESPHome, house and garden automation is also on my radar.
As a fun fact, I've learned how to program and debug my BMW 1 series with the help of ISTA/D (Rheingold) and NCS Expert software through the OBD2 port and fixed all the issues my car had.
💭 Languages
📜 Articles and Talks
I participated in React conferences such as the Geekle held React Global Online Summit in 2020 and the React Summit - Remote Edition held by GitNation in 2021.
I am working on presentations and articles about mental models for business solutions based on React, Visual TDD with React, VR experiences and interfaces with React and three-fiber and articles about good practices I've discovered while solving problems
👨🔬 Personality and hobbies
🦸🏻♂️ Meyers-Briggs personality type: INTJ-A
👁 I see myself as passionate, tenacious and brave.
🧠 Since 2020 I am exploring the metaverse with the help of an Oculus Quest 2 VR headset
🏋️♀️ I worked out with the help of Beat Saber during the lockdown
🎮 I like to play games like Dota 2, Apex Legends, Factorio, and Path of Exile
🎬 If I were to suggest good tv series to someone I would mention the following: Cosmos by Carl Sagan, Planet Earth 1 & 2 , Breaking Bad, Westworld, Silicon Valley, Game of Thrones, Rick and Morty, Better Call Saul, Black Mirror, House of Cards, The Night Of, Peaky Blinders and The Boys
🤓 I've been fascinated and involved with programming, gaming, hacking and web development since 2010.
🎒 Hardware
💻 Laptop: 16" Macbook Pro
🎙 Microphone: Audio-Technica AT875R with a Focusrite Scarlett Solo 3rd gen XLR interface
🎧 Headphones: Audio-Technica ATH-M40X
📚 Education
Bachelor's Degree in Physics
2015 (unfinished due to better prospects as a software developer)
Universitatea „Babeș-Bolyai” - Cluj-Napoca
Bachelor's Degree in Computer Science and Mathematics
2014 (unfinished due to interests in Physics and Electrical Engineering)
Universitatea „Babeș-Bolyai” - Cluj-Napoca