Sponsorship
Boost developer productivity with engineering analytics
Hatica equips engineering teams with work visibility dashboards, actionable insights, and effective workflows to drive team productivity and engagement in remote and in-office environments.
Hatica connects with all your work tools including Github, Jira, Slack, CI/CD systems, and more to provide:
✅ Cycle Time and DORA metrics to gauge velocity and DevOps performance
✅ Focus time and collaboration analytics
✅ Effort allocation dashboards to know where your teams’ are investing their effort
✅ Activity dashboards to get an aggregated view of code, task, and DevOps activity
✅ Slack and email reports for engineering metrics and work progress snapshots
✅ Async stand-ups via Slack to be in the loop without interrupting your teammates
⭐ Free forever plans to get started quickly
Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.
Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?
Projects
Authelia
Authelia is an open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal.
language: Go, stars: 11531, watchers: 147, forks: 597, issues: 106
last commit: January 22, 2022, first commit: December 10, 2016
social: github.com/clems4ever
repo: github.com/authelia/authelia
Piped
Piped is an alternative privacy-friendly YouTube frontend that is efficient by design.
language: Vue, stars: 1647, watchers: 22, forks: 99, issues: 81
last commit: January 26, 2022, first commit: October 31, 2020
social: github.com/FireMasterK
repo: github.com/TeamPiped/Piped
ex_elasticlunr
Elasticlunr is a small, full-text search library for use in the Elixir environment. It indexes JSON documents and provides a friendly search interface to retrieve documents.
language: Elixir, stars: 87, watchers: 2, forks: 1, issues: 2
last commit: January 11, 2022, first commit: October 31, 2021
social: twitter.com/thebiggergeek
repo: github.com/heywhy/ex_elasticlunr
An Interview With Rasheed of Elasticlunr
Hey Rasheed! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, and what languages or frameworks do you like?
I’m a Senior Full Stack Engineer, I live in FCT, Nigeria. When I was a child, I enjoyed watching tech documentaries and this built my passion for working in the tech industry. At some point in my teenage years, I was drifting away from the idea of being a Software Engineer until I started playing chess a lot and I got awed by the intelligence of the chess engines I played against.
At that point, I started doing my research about how these chess engines are built and the language C++ kept coming up. I still wasn’t convinced until I saw Chuck Bartowski with a C++ book in one of the Chuck episodes I was watching and that’s how C++ became my first language.
Since then, I’ve had the chance to work with numerous languages and tools like PHP (Laravel, Lumen), Java (Spring Boot), Javascript (Vue, React, Angular, NodeJS, Electron), Elixir (Phoenix), and so on.
C/C++ was my first language as well! I think it makes learning other languages much much easier if you start with C/C++. The problem is C/C++ is much harder to get started with than something like Javascript or Python.
This is true. Even though I didn't really understand some of the concepts at the beginning of learning C++ until I worked with PHP and Nodejs.
I understood those concepts better in the environments because both tools are built on C/C++ underneath and they provide easy-to-use API/functions to fiddle with those concepts (streams and resources).
What are some of your favorite tech documentaries?
I can't remember the titles but the theme was mostly on robotics, games, and engineering projects. But I do enjoy the robotics and games themes a lot.
Who or what are your biggest influences as a developer?
The ability to dream of a solution to a problem and create it yourself is my biggest influence. Steve Jobs and Bill Gates are also my biggest influences because of the creations they championed and most importantly, their stories.
What is your favorite software tool?
This is a hard one for me because I’ve worked with so many but the one I’m not bullish about is Java, and that’s because of its verbosity and memory consumption.
If you could dictate that everyone in the world should read one book, what would it be?
Outliers by Malcolm Gladwell.
If you had to suggest 1 person developers should follow, who would it be?
José Valim. I would like to add Saša Jurić too because of his great talks.
If you could teach every 12 year old in the world one thing, what would it be and why?
Only do the things you love because the love might be what will keep you going in face of trouble/unhappiness.
If I gave you $10 million to invest in one thing right now, where would you put it?
I guess I’m allowed to put the money in a company of my own. 😊
Are you trying to build a company around Elasticlunr?
At the moment, I don't have the intention of building a company around Elasticlunr but I think it's something I might consider down the line.
But, I incorporated a Delaware corporation with a friend last year before I started working on Elasticlunr. Though the company isn't doing a lot right now, the product (https://usegraham.com) we were working on got stalled because we were unable to secure a card provider considering we are an early-stage startup with no funding and the ones we reached out to were demanding a lot.
If I gave you $100 million to invest in one thing right now, where would you put it?
Real Estate
What are you currently learning?
How to build distributed systems.
What resources are you using? I can give you some really good ones if you'd like.
I'm still trying to find the right one. I don't mind having recommendations from you.
This book is the “Bible” for distributed systems: https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321
If you're prepping for interviews, this course is well known in the industry: https://www.educative.io/courses/grokking-the-system-design-interview
It also has a section of the course that links out to some of the landmark distributed systems papers (Paxos, Zookeeper, DynamoDB, etc) that are well worth a read.
This channel is really good (the YouTuber is a senior developer at AWS): https://www.youtube.com/c/SystemDesignInterview
This MIT course is also good: https://pdos.csail.mit.edu/6.824/. It's more academic though, so I'd recommend doing it last if you get through all those other resources.
How do you separate good project ideas from bad ones?
The problem the project is trying to solve and how many people it resonates with.
What approaches do you use to determine how many people a project resonates with?
The community around it. It's one step to solve a problem but it's another to find people who resonate with the problem and that's why we all get advised to ascertain what one is looking at is actually a problem before going all out to build solutions.
More concretely, how does this apply to Elasticlunr?
I've been in a situation where I just wanted some simple full-text search functionality that resides in the same environment as the app without having to deploy and maintain a running Elasticsearch or Solr instance. And I've met people in similar situations.
I also have someone whose engineering team backed out of deploying Elasticsearch after hitting so many roadblocks because they couldn't allocate the resources to resolve them.
Why was Elasticlunr started?
It was started because I wanted a simple search library/engine that doesn’t require a lot of resources to run and maintain. Most existing solutions like Elasticsearch, Solr, and so on have these deployment complexity problems that a lot of companies don’t have the resources to manage.
Where did the name Elasticlunr come from?
It came from the project Elasticlunr.js, it’s a full-text search library for Javascript. The project I’m working on is based on it with improvements tailored for use in the Elixir environment. I could have gone with a different name but I wasn’t comfortable with overshadowing the work done by the author.
Who, or what was the biggest inspiration for Elasticlunr?
The existing Elasticlunr.js project even though it’s no longer maintained by the author.
Are there any overarching goals of Elasticlunr that drive design or implementation?
Taking advantage of the tools provided by OTP (Open Telecom Platform) drives most of the design choices.
Talking about trade-offs now is not feasible because the project is still in the early stage but there is room for improvements.
What is the most challenging problem that’s been solved in Elasticlunr, so far?
There is none at the moment but a lot of people have been hinting at supporting the usage of the library in distributed systems. The ideas are nice and overwhelming at the same time.
Where are people giving these suggestions to you?
The suggestions I've gotten are from mediums used in sharing the information about the project, Hackernews, Elixir Discord Server, Twitter...
Are there any competitors or projects similar to Elasticlunr? If so, what were they lacking that made you consider building something new?
There is none I know of except the popular search solutions. The goal of Elasticlunr is to provide alternatives to individuals and companies (using Elixir) without the resources to deploy and manage the existing popular solutions.
What is your typical approach to debugging issues filed in the Elasticlunr repo?
I try to replicate the problem in the livebook environment and I take it up from there.
What is the release process like for Elasticlunr?
The process is still manual for now but it will be automated when I start having other contributors on board.
What are the current manual steps, and what do you plan to use for automating them?
The manual process is having to run the CLI tool to publish the project to the Elixir package manager repository. I will like the publish step to be automated alongside the GH release with autogenerated changelog.
Is Elasticlunr intended to eventually be monetized if it isn’t monetized already?
I have no plan for this yet but I believe the community and adoption will determine the decision.
I will also like to mention that sponsorships from individuals and companies are welcome.
How do you balance your work on open-source with your day job and other responsibilities?
I do open-source when I still have energy after working hours and during the weekends.
What is the best way for a new developer to contribute to Elasticlunr?
The documentation is a very good place to start because the project is lacking one at the moment.
Any suggestions on how someone could get started on this?
There is a comment that contains information regarding this.
https://github.com/heywhy/ex_elasticlunr/issues/10#issuecomment-1008280739
If you plan to continue developing Elasticlunr, where do you see the project heading next?
I don’t have a clear vision now but I believe the community will be driving this vision because I’ve got some suggestions from other developers regarding what features they think will be best for the project.
What motivates you to continue contributing to Elasticlunr?
The joy of building a project that helps people and companies solve their search problems.
Where do you see open-source heading next?
The importance of supporting open-source project authors.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
Reporting issues, fixing typo errors in the documentation, and being active in the community are good ways to start.