Location: Kampala,Uganda
Remote: Yes
Willing to relocate: No
Technologies: JavaScript,TypeScript, Python/FastAPI, Node.js, React, Ruby/Rails, Elixir/Phoenix, Golang.
Résumé/CV: https://my.visualcv.com/samuel-wasswa-resume/
Email: hello@wasswasam.com
Hello! I'm Samuel. I have been a full-stack developer for the last six-plus years. I enjoy learning new languages and being on the cutting edge. I am open to freelance and full time roles.
Before I try a web framework, I want to know if there's an easy way to do authentication, authorization and multitenancy. Multitenancy may have multiple approaches but am talking about something as simple as row-based multitenancy to get things started. But I also understand this may be a lot for version 0.1. Either way, this is still fantastic work and thanks for sharing.
Authentication and authorization is pretty easy to implement with custom Dependencies. Multitenancy can be a layer on top of that depending on how you want to shard your DB tables / separate rows. If you're interested in poking around a little more with auth then this plugin can be a starting place:
https://github.com/piercefreeman/mountaineer/tree/1d44cdf1c6...
(In an old commit and stripped out from the current codebase until it has better test coverage and the main codebase is stable)
I do agree it needs documentation. It is really difficult to tell what the overall capabilities of the framework are beyond being able to serve React. You can have multitenancy with just about any framework though by running instances on different ports behind a reverse proxy like nginx.
Interestingly, for me it is the exact opposite, I tried Django/Python and it's more difficult for me to grok. Somehow I just find Rails easier and more straightforward.
I've worked more in Python, but rails was way more intuitive for me than Django. I knew just how I should do everything, and if I needed to alter some functionality, I knew just where to look. I loved its consistency.
I think its bc I just know python better. When I look at ruby code, especially with symbols, I can't really tell what's going on the same way I can with python. I get the impression python is more simple while ruby is more powerful (featurefull) + more object oriented.
Yeah, probably. I just moved from Ruby to Python and I'm not exactly loving Python. But, I'm quite sure it's just that I'm not used to Python yet.
I think one thing is true -- Ruby gives you lots of different ways to do things. And it can be really terse sometimes, if you want it to be. Some Ruby devs IMO should learn to favor readability over terseness.
Overall though, Ruby is my favorite language and IMO can be very beautiful. I don't think anybody would call Python beautiful. (Lots of great things about it though, nice language and ecosystem... no hate)
Gleam is a fantastic language but I didn't see much about testing apart from a very small package called gleeunit which is a binding to Erlang eunit. If I don't know anything about Erlang, how do I do tests in Gleam? I need some more guidance on this.
Gleeunit seems a bit sparse. I just see a few functions. For example how do I do mocks? Is this the the whole testing story assuming I am not targeting JS?
Mocks are deliberately not supported by Gleeunit as I (the maintainer) believe they are strictly worse than using dependency injection, and often result in dramatically lower quality code.
Fair enough. In your opinion, is Gleeunit sufficient as a testing framework for Gleam or is it a work in progress which is also understandable as the language is still relatively young?
It looks like janet supports great interop with c, so in theory it isn't much of a stretch to connect to other databases. I had the same question and came across this: https://github.com/newhook/janet-mysql
I know this is probably not for PROD but its a lot of fun to look at a nice clean database driver. I've been working with mysql off and on for ~13 years and never have really looked at the source of a client.
I understand they are already modifying the vaccine to handle the B.1.351 variant so all that will be needed is a third booster shot for people who have already got the AZ vaccine.
Isn't GraphQL supposed to solve this problem? You have one GraphQL API and each client requests only the information it needs. Maybe the responses are still JSON but I would think you would come very close to an API that serves all the clients.
Even without GraphQL, you can accommodate both sets of needs. I said as much. I'm also saying that the argument about the user-facing tech stack is bogus.
I haven't used Clojure before but I have worked mostly with Elixir another niche functional language. In my experience because of the limited talent pool, most companies tend to prefer experienced candidates and if they are to take you on as a junior, you probably have to be significantly experienced in another mainstream language. It's very hard for someone to take a punt on a junior Elixir or Clojure developer who has little or no experience in any other language. Generally, niche languages are not a great bet if you are just starting out. You can of-course build the experience by working on side projects, blogging or speaking at conferences. In short its a labour of love. If you learn Clojure or in my case Elixir for the explicit reason of getting a job you might become very frustrated and disappointed. This is my experience.
It was more of an aquahire and Jose Valim the creator of Elixir left Plataformatec to start his own consultancy. All assets related to Elixir were transferred to the community. The rest of the core contributors are not affiliated to Plataformatec therefore the acquisition had no effect on Elixir.
Not related to the discussion but as an East African and Ugandan( East Africa has five countries). I find this quote extremely offensive. I kindly request you to stop perpetuating such ignorant and degrading narratives even for the sake of comparison.
Hello! I'm Samuel. I have been a full-stack developer for the last six-plus years. I enjoy learning new languages and being on the cutting edge. I am open to freelance and full time roles.