Work. 2018 to 2020.
Junior Software Developer. Aladl, Tanta.
I needed a job that ran during the school year, not just the summer. A small financial office in Tanta hired me as a junior developer in late 2018. I was still finishing my computer engineering degree. I had no formal title at first. I had a desk in a corner, a senior engineer who answered three out of every four of my questions, and a MySQL database that the office had been treating like a spreadsheet.
My first months I was a database administrator before I was a developer. The office moved money. The database tracked the money. The database had no validation. I built validators. I wrote schema constraints that should have been there from the start. I rebuilt views that had been queries pasted into Excel by hand every week for years.
Then I started writing Python. Ingestion scripts. Transformation scripts. Reconciliation scripts. The office needed small daily reports and someone had been doing them by hand. The desktop apps came next, in Tkinter and PyQt, because that was what the senior engineer used and because the staff were not going to learn a new tool. I built tools that operations actually used. That distinction has stayed with me. There are tools that ship and there are tools that get used. They are not the same thing.
The chapter taught me something about the person at the end of the system. The accountant signing off on a reconciliation at the end of the day is not interested in your architecture. She wants the numbers to be right and the column headers to be where they were yesterday. If you give her that, she trusts you. If you take it away, she does not. I never forgot it.
The stack at the time.
- Python
- C++
- MySQL
- Tkinter
- PyQt
- Excel scripting
- HTML
- CSS
- Linux
Two years in Tanta. A small office, a small team, and the most important first lesson I would carry into every product after.