My Career in Programming Languages

Date: 2025-06-25 | build | create | csharp | fsharp | golang | hacklang | programming | python | tech | typescript |

DISCLOSURE: If you buy through affiliate links, I may earn a small commission. (disclosures)

Several months ago I came across an X trend where people listed the order of programming languages they learned / used. I thought it was interesting and have received several questions about the programming languages I've used in my career (most queries related to finding jobs) so will share them here.

In this post we discuss the programming languages I used throughout my career as well as anecdotes and reflections on my time with those tech stacks at those companies.

Programming Languages I've used in my career

My Career in Programming Languages

APT / MasterCard

I started off my career at a small data analytics company that was acquired by MasterCard. I worked on a platform team building system primitives like auth, logging, and queues before moving to a team focused on customer data LTE.

It was a Microsoft shop running C# on Windows servers in a microservice architecture and used SQL Server for databases. For frontend we used a hodgepodge of technologies including Knockout.js and raw Razor pages but slowly moved towards TypeScript and React.

  • Languages: C#, JS / TS

I came in with zero knowledge of C# but eventually came around to it and remain a fan (I currently rank it as a B Tier language). SQL Server was fine for our usecases but today I would recommend most people just use Postgres. As for windows machines - I still run Windows as my primary OS but use WSL for development and def prefer Linux for my hosted workloads (currently managing with Coolify).

Instagram / Meta

I left to seek out higher scale problems. I felt I had a decent grasp of system architectures but was curious how that worked at scale.

I found myself at Meta, joining Instagram's Media Delivery team which focused on optimizing the delivery of images and videos and eventually on the Media Logging team which focused on the accuracy, reliability, and scalability of our logging and metrics pipelines.

A large portion of the Meta codebase ran Hacklang (a fork of PHP) across a huge amount of monoliths. Instagram still had a decent chunk of its codebase in Python Django monoliths (both forked). As for databases, we used MySQL though there were so many abstractions built on top of it that it might as well have been a different database.

I didn't do much (any) frontend here but a lot of that was in JavaScript and React. I believe they didn't use TypeScript but instead used Flow.

  • Languages: Hacklang, Python

I knew Python coming in from side projects and classes in college but I definitely wasn't good at it. I certainly didn't know Hacklang as it's a very rare language.

Python is not my favorite language - I understand why people like it but I think it has a lot of footguns that should've been solved for. I rank it in the B Tier and consider it a necessary evil as I've had several gigs in it and likely will have future gigs in it as well.

As for Hacklang, I really don't think anyone should use it. I think the language is actually pretty good but practically I just don't see a market for it. If you're reaching for Hacklang, just use PHP instead - it's more widely used and supported and has improved a lot over the years. For those reasons, I put Hacklang in D Tier.

If you want to learn more about Instagram's tech stack, checkout Instagram's tech stack will surprise you.

Reddit

After 3.5 years at Instagram I was ready to try something else. I'd solved problems at the highest scales I could reasonably achieve (planet scale) but was using tools so bespoke that I was worried those skills wouldn't transfer to any other position.

Back in 2019 I calculated my code was run ~1 trillion times / day which is a useless vanity metric but one I was endlessly excited over.

I'll note that this is a common meme in the industry where you get an 8 year veteran of FAANG and they can't even spin up a simple web server - not because they're bad engineers per se but because the tools are SO different from anything in the real world that there's significant learning curve to get re-adapted.

So I felt that maybe a startup was right for me - I could test my ability to produce impact in a new environment, switch things up to keep it interesting, and use tools everyone has access to.

This led me to Reddit.

I love Reddit and am an avid user but I quickly found out that Reddit was not a startup but a scaleup.

Reddit was in the process of a Python 2.7 Monolith to Go Microservice migration because the cost and benefits of trying to upgrade to Python 3 didn't make sense.

This means Reddit was trying to do a few things at once:

  • Learn a new language - Go
  • Break apart a 10-year old monolith into microservices
  • Hyperscale headcount to support IPO

Which is a lot to try to do, especially at once.

I wasn't at Reddit long but while there I used Go to write new features and Python when I needed to work in the monolith to help separate things out. This monolith was a HUGE pain - I recall spinning up a dev environment took 45 minutes AFTER EACH CHANGE to test things (a big reason why I left so soon).

For DBs Reddit was on Cassandra and Redis and moving towards Postgres for its microservices.

  • Programming Languages: Go, Python

We see Python again but Go is the new one here. I came in with an understanding of Go but little practical experience building systems.

I like the idea of Go but implementation-wise I think Go is lacking which is why I rank it as a C Tier. I think Go has good bones but the creators ignored decades of programming language design which left it as a really good version of an old programming language. I get why people use it - it's simple and fast - but I think other langs do that well along with good ergonomics and we shouldn't have to choose.

As for the other technologies - can't say much because I didn't get enough time / experience working with them.

HAMY LABS

After Reddit I was a little bit dejected. I had such high hopes for my time there but left feeling a bit lost and without answers to my questions of how impactful I could be in a new environment or if I could be good with tools available to the wider world. If anything I felt less confident with my ability to do so.

But I'd always wanted to try starting my own businesses and I felt this was a great opportunity to do so so I tried it!

And build I did - using technologies I liked - F#, TypeScript, SvelteKit, and Postgres were my go-tos during this time.

I had a good time building during this time but I eventually discovered that I was just doing that - building - and not actually creating anything of value. Yes I enjoyed the creation of it but it wasn't really doing anything useful and certainly wasn't paying the bills.

So I sought out a position that paid me to build things instead as a software engineer.

  • Programming Languages: F#, TypeScript

F# and TypeScript are both A Tier for me. I think they have great type systems and while they both have their own quirks, are really shining examples of what good language design can do.

If I had to recommend one to someone, I would probably choose TypeScript as I think it's easier to onboard to, has a much larger ecosystem (and thus docs), and can actually get you a job.

For seasoned programmers who have a few languages under their belts, I think F# is a fantastic entrypoint to functional programming that also lends itself to building real software. You may not choose it as your go-to language like me but you will have fun() and learn a few things along the way.

For more on F#:

Rippling

After deciding that (fulltime) entrepreneurship probably wasn't for me, I went searching for a job and found myself at Rippling - a hypergrowth HR scaleup.

In some ways this was the exact opposite of what I'd set out searching for after Instagram. It was a large company doing not the most exciting things (unless you get excited about HR?).

But it did have a bit of startupiness inside of it so I gave it a whirl.

I worked on the Risk Engineering team which built systems to detect and prevent fraud / people stealing our money. I owned the systems protecting our flagship payroll products.

The tech stack was a dual monolith with Typescript / Node / React on the frontend and Python / Django on the backend. For DBs we used Mongo - and yes most data models were relational.

  • Programming Languages: TypeScript, Python

Nothing new to add here except that Python rears its head once again which is why I believe I haven't seen the last of it.

As for databases - Just use Postgres. I get that Mongo is "better for scale" but almost all data is relational so if you don't use a db that handles relations well... you're gonna have an interesting time trying to make it do so anyway.

I'll admit that Mongo has gotten better and it's certainly workable even when we choose to do in-memory joins all over the place and really does have some incredible usecases at scale but maybe just do a double take before going all in on it for your primary db.

Vanta

After coding Python for awhile I was curious what else was out there. I'd joined Rippling during one of the hardest job markets of my career and wanted to see if more opportunities had opened up. The job market was still frosty but not a full on blizzard as it had been post 2022 / ZIRP era.

After 88 hours of interviewing, I landed my new gig at Vanta - a security and compliance company.

We're using TypeScript (an A tier language!) for both frontend and backend in a monolith. We are using Mongo for DB but to their credit there aren't as many in memory joins as I'd feared.

  • Programming Languages: TypeScript

Next

What's next? Idk! But I'm having a pretty good time coding in just TypeScript so far so that's a good sign.

If you liked this post and want to hear more rants about software engineering / programming give me a follow or subscribe to me on YouTube.

If you liked this post you might also like:

Want more like this?

The best way to support my work is to like / comment / share for the algorithm and subscribe for future updates.