Location: Ho Chi Minh City, Vietnam
Remote: Yes
Willing to relocate: No
Technologies: Golang, Java, C++, ReactJS, PostgreSQL, MySQL, Redis, K8S, GKE, CI/CD, Distributed System.
Résumé/CV: https://letientai.io/cv
Email: (find in CV)
I'm 10+ YoE SWE, who built high-scale performant microservices, core libraries, and developer tools at Shopee (the E-commerce leader in Southeast Asia). Able to learn and be productive quickly with whatever stack you use. My last project at Shopee was a framework that abstracts infrastructure components (DB, cache, mq, ...), enabling developers to build new services quickly focusing on only the business logic. It's similar to Spring Boot but for Golang. It's not OSS, unfortunately.
I'm looking for either a full-time or contract remote position.
I'm the OP. I'm working on unify and improving various Distributed Lock implementations for my employer. The first ugly fact is most of our currently implementations are not safe[0], and the second ugly fact, AFAIK, is the safe ones are slow. I'm trying to find something in between, or better.
I tinkered with it a bit and create this code[0] based on a song[1] that I'm learning. I think this tool is cool and has potential, but still need a lot more improvement. At least it needs a way to reduce duplicate in my code :)
Just only watch the intro lecture and I can confidently confirm that this course would be fantastic. However, the professor mentioned that this course is only about processor. Anyone know similar courses/books about filesystem, network, RAM, ....?
As pointed out in the comments, 6.033 is a good overarching course to learn about a lot of computer systems fundamentals. If you want to dig deeper into networks, OS, computer architecture, MIT has plenty of specific courses for those:
If you just want to write better code literally, then consider reading Clean Code[0].
If you want to dive deeper in to Computer Science and become a Software Engineer, then there's a lot more to learn. Here's some short tips:
- Learn a few programming language for their paradism: Java (OOP); Python, Hashkell, Scala (Functional Programming), Rust (memory safety). You don't have to actually work on them, just need to be able to write some algorithm and know their key features.
- Read more code, especially those from high quality projects.
- Experiment a lot. Don't just read articles, blog posts. You have to get your hand dirty.
No. But once in a while, I want to remind us some bit of history. Hopefully inspire new developers, just like how I got the inspirations about old stuff when I first joined HN.
I remember first discovering Firebug and being wowed by it, back when most browsers only offered you "View Source" as a way of looking under the bonnet.
I just wondered why someone had submitted a 4 year old blog post announcing the demise of Firebug, seeing as every browser now has it built-in.
Seriously, a lot of questions anwer themselves after I read the related manual. Ever since I got that as a reply on my StackOverflow question, it becomes my motto.
I learn stuff on my own time. If I need more time and the learning phrase is directly related to the my work then I can ask manager to reduce workload. But usually I don't need to ask. I also believe that self-learning in free time is standard expectation for our industry (software). If I run a company later, I would expect the same for my hires.
I'm looking for either a full-time or contract remote position.