Technology & Development

I’ve been working in software for almost 20 years, which mostly means I’ve had enough time to make mistakes in several different architectures.

I still enjoy it, unfortunately.

Not because I believe technology will save us, but because I like solving problems, making things slightly less annoying, and occasionally building systems that continue to function after I stop looking at them.

What This Usually Means

Most of my work lives somewhere between product, systems, and practical survival.

  • building features people actually use
  • untangling systems that grew in emotionally unstable directions
  • making internal tools so repetitive work dies quietly
  • fixing things that were “just a small change”
  • trying to leave codebases in a better mood than I found them

The Part I Actually Like

I’m less interested in shiny tech theatre and more interested in work that holds up on a random Tuesday.

That usually means:

  • interfaces that make sense
  • APIs that don’t feel passive-aggressive
  • code that can still be read after six months
  • automation that saves real time instead of creating new rituals
  • documentation written for the future version of me, who will be older and even less forgiving

Climbing the Ladder (Allegedly)

I’m a senior full-stack engineer with a backend lean: APIs, distributed product systems, and cloud delivery. Day to day that has meant TypeScript and Node.js, Java and Spring Boot when the stack asks for it, PostgreSQL and MySQL and MongoDB when data needs a home, and AWS, OpenShift, Docker, and CI/CD when things need to ship and keep shipping.

Lately that work sits next to product and design - RFCs, reviews, tests that actually earn their keep, and the occasional argument with architecture until it behaves.

GitHub, LinkedIn, and Blog

Concrete paperwork and parallel selves:

  • GitHub - experiments, utilities, and things that escaped before they were fully house-trained
  • LinkedIn - the employable narrative, projects, and history in daylight-friendly form
  • //@TODO: write more! - engineering notes, software systems, and technical writing in long form

What That Looks Like in Practice

Before the job titles started sounding serious on LinkedIn, there was a short internship building a J2ME mobile undergrad project - AT commands, a server, and the first proof that software could leave the lecture hall and annoy real hardware.

I started my paid web career at ECBB Bangladesh in 2007 as a web programmer: PHP, the Mojavi framework, MySQL, MooTools, and jQuery - building something close to a WordPress-like blog CMS, including drag-and-drop UI pieces for people who did not want to think about HTML.

In late 2007 I joined Athena Software Associates as a software engineer on the “Premium Web Cart” suite - still PHP and MySQL, now with CodeIgniter, and a lot of e-commerce-shaped problems that refuse to stay tidy.

2009 brought Praxis ICT and a team-lead hat on the PHP team: CodeIgniter, MySQL, Joomla, a home rental management portal, and the early version of mentoring - convincing juniors that the bug was real before you argue about the framework.

2010 was BJIT in two chapters: first building an organization workflow tool in the enterprise line, then stepping into an SQA line manager role - IBM test tooling, Selenium, Apache JMeter, and the administrative glue around people who break software for a living.

From 2011 to 2014 I was at LooseMonkies as back-end team lead (with some project-management air traffic control): PHP, Symfony, search in Solr, Elasticsearch, message queues, Backbone.js, and algorithms that were supposed to match things without matching disasters.

A short 2014 stop at Wneeds was architecture and build for an event-organizer web app: PHP, Kohana, MySQL, Symfony, PhoneGap, Solr - enough moving parts to remind you why “small project” is often a lie.

2014–2021 at Cefalo widened the stack properly: Spring Boot, TypeScript, Express, Vue, Handlebars, React Native, message queues, Elasticsearch, AWS - a custom publishing CMS to replace Escenic for Norwegian media, and a cross-platform logistics-style mobile product with the backend behind it.

In 2021 I moved to Berlin and CoachHub as senior full-stack engineer: improving the coachee journey in the web portal, architecture and RFC-shaped arguments, mentoring, and shipping alongside product - the same person as the PHP years, only the problems got more distributed.

Since late 2024 I have been at Smartly as a software engineer - ad channels, creatives, automation, content workflows, and the usual negotiation between product pressure and whatever the system agreed to do last week.

Career spine (Dhaka, then Berlin)

Tools, More or Less

I’ve spent enough years around software to collect languages, frameworks, habits, and a healthy distrust of anything described as “simple.”

Depending on the year, team, and level of collective optimism, that has included:

  • JavaScript / TypeScript for day to day work
  • Node.js, NestJS, Express, and the usual backend plumbing
  • React and related frontend ecosystems
  • Java from earlier chapters and still perfectly capable of causing feelings
  • Spring Boot when the JVM is the one making the rules
  • React Native when the web alone wasn’t suffering enough
  • PostgreSQL, MongoDB, and the usual database negotiations
  • Jest, JUnit, and the ceremonial act of pretending tests will save us all
  • Docker, CI/CD pipelines, release flows, and other invisible machinery
  • Markdown, docs, notes, and writing things down because memory is a scam

Side Projects, GitHub, and Other Evidence

My GitHub is still a mix of experiments, utilities, half-finished ideas, over-finished ideas, and the occasional thing that solved a real problem because I was too annoyed to do it manually twice.

Some projects are practical.

Some are educational.

Some were built because I thought, “this should be easy,” which is historically one of the dumbest sentences in software.

The profile and repo list is the source of truth for experiments and side traces.

This Site Counts Too

Even this site is part of the same instinct.

It’s simple on purpose: content in Markdown, minimal ceremony, easy to maintain, easy to extend, not trying too hard to become a platform with feelings.

Technically it is a Hugo static site (Go-based generator), this personal theme with baseof / single layouts, Goldmark Markdown with shortcodes for things like the LinkedIn badge and the career timeline (Mermaid), and plain CSS - built to public/ and deployed like any other static bundle. No client-side framework required to read a paragraph, which still feels like a feature.

I like systems that remain understandable.

That alone already puts us in a minority.

If There Is A Philosophy Here

After long enough in software, the magic wears off, but the craft doesn’t.

I still like:

  • clear thinking
  • boring reliability
  • useful abstractions
  • good naming
  • fewer moving parts
  • tools that help people do their work without inventing new problems

In other words, I still believe in writing software that behaves.

A surprisingly radical position.