About Me
Hello, I'm Matei, an experienced software developer based in Cluj-Napoca. My coding journey has been a wild ride. It started in the early years with web and desktop app development and an Object Oriented mindset. Then it went into low level systems design, embedded devices and a more Systems Oriented mindset. In the past few years it took a turn into the microservice world supporting high scale infrastructure.
I began the first stage of my career during high-school using Flash and ActionScript 2 (procedural) then ActionScript 3 (Object Oriented) creating rich web assets like miniclip games or carousels. Soon after that I've learnt Java and started doing Desktop applications as well (using the Swing framework). I worked on these projects for international clients I would find on freelancer.com and after some time local clients in my area through word of mouth. During this time I've worked with clients from USA, Europe and Asia. As for team size I mostly worked by myself having done only one colaboration with a friend who wanted to get into development.
During university, I fell in love with Systems programming and the C language which led me to work on OS level tools in the Linux environment and with embedded devices. In the foreground I've worked on three big projects using C, C++ and Golang mostly under Linux. Two of those are in the Cybersecurity industry and the other in Home Automation. At these big projects I've worked in and helped build multiple teams ranging between 2-10 people covering all the technical needs of a big project from R&D to OPS, QA, compliance and customer support. In the teams I've worked in I was mostly responsible for the technology, research, documentation and technical training. In the background I did some teaching (Java, Python, HTML/CSS/Javascript) on the side and kept working on small web projects using Javascript on the frontend with either Python or PHP on the backend and MariaDB or Postgres as databases.
In the current stage of my career I've pivoted to building backend services supporting high scale infrastructure. Most of my recent work has been building high availability HTTP or gRPC services handling up to thousands requests per second and the infrastructure required to support those services. My main language has become Golang as it has great support for these types of applications but I've had to work with a lot of supporting technologies like Kubernetes, Kafka, Prometheus, Grafana or Splunk. I've been working in smaller (3-5 people) highly autonomous international teams spread across USA, Europe and Asia.
At heart I believe software is just a tool that people use to solve other people's problems. I help such people by improving the software they use in a cost effective way and on time so that they can solve more of their client's problems faster.
Work Experience
- In late 2019, together with another senior engineer former colleague of mine, we founded Aware Soft SRL, a software development company to bring all our software building initiatives under a single identity.
- We're specialized in creating custom software solutions for business problems or maintaining existing software solutions either on the client's infrastructure either from scratch on our own infrastructure.
- Our tech stack varies depending on requirements but we're mostly using Debian/Linux as base, Golang/Python/PHP on the backend, Angular/Svelte/HTMX on the frontend, Prometheus+Grafana+Elasticsearch for observability.
- Usually the work we do on client's infrastructure is secret so I can not share detailed examples of that but you can check out our public work here: https://github.com/AwareRO
- I was part of an international team responsible with the development and maintenance of micro-services used in the Apple infrastructure supporting the manufacturing processes.
- This is a small team of senior engineers getting assignments across a wide range of internal services which means that after a rigorous on-boarding there was a high level of autonomy expected of us. We would cover all aspects of a software service life cycle from proposal and design stages to actual implementation or bug fixing, investigations and even doing on-call and jumping in on incidents.
- While here I used Golang to increase the capacity from tens of GB/s to hundreds of GB/s, I created several new services integrating with other parts of Apple infrastructure (Kafka, Postgres, FDB), helped new colleagues with onboarding and led a team of frontend developers that was building a UI for one of the backend services I had shipped.
- For the first few months I worked on the company's main product: a cybersecurity router, but soon I jumped into solving a bigger variety of business problems using C++, Zeek and Python
- I've spent the first few months helping out with testing, fixing small bugs, adding metrics and other small improvements in a highly specialized software component responsible for high throughput data ingestion in Corelight sensors written in C++.
- Then I moved on to write a plugin for the Zeek ecosystem using a mix of C++ and Zeek.
- I wrapped up my time there by building an end to end testing framework using Python. The framework would allow a user to write a short script describing a test scenario involving the different software components running in or around a Corelight sensor. I've delivered two versions of this framework allowing users to write test scripts in a more BDD style (using Behave under the hood) or a more common procedural style (using pytest under the hood). Having such a script the framework would then set up a virtual environment mimicking the environment in wich a Corelight sensor would operate, run the test script as part of that environment and then report the results in a friendly format.
- I was part of a two person team responsible with the maintenance and development of the firmware running on three of Ezlo's home automation routers: Vera Edge, Vera Plus and Vera Secure.
- This was a huge project with a hefty customer base left in a maintenance only state while a bigger team was developing a better replacement from scratch. The code base was spread across more than 10 languages with the bigger chunks of it being C++, Python, PHP and Javascript.
- We were responsible with investigating customer reports and fixing the burning issues. We covered all parts of the infrastructure those routers operated in focusing mostly on the software running on the routers themselves, as that was were most bugs were at.
- Together with my team member we were able to provide critical updates to a user base of about 40-50 thousand users having these routers running a wide range of devices in their homes from light bulbs, water heaters, room temperature regulators and even door locks and security systems.
- We also provided technical support the community of plugin writers who used Lua to provide Home Automation apps to the user base via those routers in a similar way that Android/iPhone application writers provide functionality to Android/iPhone users via the App Stores
- I was one of SDA's trainers for Java and Python classes in Cluj-Napoca and remote after the pandemic struck.
- The courses covered and intro to programming and would focus on full stack web development.
- In Java they would use Spring Boot, in Python they picked Django and would pair these with Angular on the frontend.
- I was responsible with the development of software products at Certus Software. This includes the design and architecture as well as the implementation of those products, and the maintenance of the development environment our team was working in.
- The software would run under our own custom OS which I also maintained during my time there.
- During my time there I was able to shape the development of the team by bringing in colleagues from my faculty and training some of them who later became part of the team.
- I can not share the tech stack as in their industry it's a trade secret.
- I developed Web and Desktop apps for clients I've met on freelancer.com
- I started with miniclip games and other web assets in Flash with Action Script 2 (procedural) and Action Script 3 (Object Oriented)
- I moved on to building Desktop apps using Java 8 and the Swing framework