emgo
We're Mambu, a SaaS company providing the core banking engine for modern financial institutions. Our platform is cloud-native and helps banks, fintechs, and lenders run their business efficiently.
We're looking for Engineering Managers and Software Engineers, preferably with experience in Java and MySQL, and ideally with a background in financial services or large-scale systems. The roles can be upgraded to Senior for the candidates with the right skills and experience. Our stack is fully in the cloud, and we're remote-first but we also have offices where you can come work every day if you'd like. You'll collaborate with smart, driven people and help build robust systems as we continue to scale. We have a writing and document-based culture. We value accountability, customer obsession, and embracing challenges.
Tech stack: Java, MySQL, AWS/GCP/Azure
Location: Remote, but you must be based in Netherlands, Romania, or Lithuania. No relocation provided, and no work visa sponsorships provided.
Interview process: Coding interview, system design interview, company culture interview
Competitive compensation tailored to your location.
No agencies and no contractors.
Apply here (tell the recruiter you found this through Hacker News):
https://careers-mambu.icims.com/jobs/2856/manager%2c-enginee...
https://careers-mambu.icims.com/jobs/2875/software-engineer/...
If not, then it's probably time to switch employer, to one that has a product/mission that is aligned with a topic/field that would bring more meaning into your life.
If that's not possible, you could try spending one less hour per day on that job you have, and invest that hour in something that creates meaning in your own terms.
For verbal delivery, go find some highly-rated audiobooks for kids, and pay attention to how are the narrators using their voice to tell the story. Then, same as with what I said above, take elements that you think work and that you like, and incorporate them into your own style.
Finally, you need to practice a lot, and try new things as you discover them. Once in a take, sit down and take notes on paper or in a file of what has worked and you should keep doing, and what hasn't worked and you want to improve or stop. Rinse and repeat.
Also, train ride videos, for example this one in Switzerland: https://www.youtube.com/watch?v=Mw9qiV7XlFs
And if possible for each example, specify what made you mistrust them, and what would have made you trust them.
On the opposite side of the spectrum, do you have two examples of situations in which it was easy for you to trust someone's words? What made you trust them?
If I'm doing active listening, i.e. listening to a podcast or watching a talk and actively taking notes, then I use https://sidenote.me
For example: https://sidenote.me/note/0gcKho/nailing-your-first-launch-ad...
DigitalOcean will have to buy CPUs from Intel or Nvidia/ARM at a higher cost, and eventually maybe even from AWS or Microsoft, essentially giving money to their competition.
If DigitalOcean doesn't get into semiconductors quickly, the only two logical outcomes are to either go bust, or to be acquired by a major cloud provider as a low-cost branch, like airlines do.
Is this happening to you? Are you trying to find ways to deal with a micromanager above you? etc.
Anything else?
Then I ask questions that give me insights on the company's culture and how they perceive themselves. Below are some examples of the themes and questions I use. I generally ask only 2-3 questions at the end of an interview because of time limitation, so I always pick the ones that will give me information about the aspects I have the most concerns about and feel the need to dig into.
One extra trick: when I know I'll be meeting multiple people in multiple interview rounds, then I keep one of the questions the same across all rounds. I do this to see what different types of data I get from various people, and if the information converges or diverges. If they all have the same answer more or less it's a good sign, but if the answers differ, it means they're either mis-aligned internally, or they're trying to bullshit me in some way (sometimes they might have randomly different answers, and it doesn't mean anything).
Also, I sometimes use the answer to one of my questions from one round to narrow down another question in another round. For example, once I asked a developer about recent unpopular decisions (see below), to which he replied the founder asked all employees to show up no later than 10am, and the tone was perceived as top-down and not well received. So then in my chat with the founder, I asked him what he thought of the reaction people when he announced his ask for them to show up no later than 10am, and I was able to get insights as to what makes him tick (which I wouldn't have been able to ask if I had not collected that information in a previous interview).
Here are some examples of questions I ask, categorized per themes:
### Success
- How do you evaluate success? What was the last big achievement that was celebrated?
- Can you give me an example of a person or a team who did something that was very successful in the past year? How was this person rewarded for it?
### Conflict resolution
- Can you tell me of a time when you had a disagreement with someone on your team?
- What tends to create conflict, and how does it get resolved?
### Decision making
- How are decisions made when there’s disagreement and stakes are high?
- Can you describe an unpopular decision that was taken recently, and what was the result?
### Working with the founders (if a startup)
- What do you like the most about working with the founders?
- Do you have an example in mind of how the founders involved the employees in an important decision?
### Process
- Can you give me an example of the lifecycle of a feature? How do you go from idea to final implementation?
### Motivation
- Can you tell me of something that you're really proud of/not proud of?
- What do you like the most about working here?
- What is the one thing you would change about the company?
### Opportunity
- What was the company/department’s biggest challenge last year and what did you learn from it?
Although I image you'd need a significantly larger storage to store all sorts of high quality images, which shouldn't be an issue given how cheap storage has become.
Here is an exmaple of a Bash-based extension for the Kobo, which downloads files from cloud providers for you: https://github.com/fsantini/KoboCloud
And here is a forum with lots of people sharing tips and mods for it: https://www.mobileread.com/
Managing People: Avoid the Reputation Trap
Once you reach a large scale, relational databases start being a problem for availability and replication of data across different availability zones. Operations become complicated (you have replication chains, master/slave setups, etc.)
If your data is relatively simple and doesn't require a lot of relations and foreign keys, then something like Cassandra can save a lot of headaches.
Btw, a common trick to make a relational database perform at scale by limiting joins is to "flatten data", i.e. replicate data across different tables to avoid joining them.
Finally, don't let yourself be fooled by anyone who claims they know "the better option." There is no better option. There is only a better option for a particular use case you're looking at, given the specific constraints at hands. That's what engineering is about, including software engineering.
If you want to learn more about designing storage systems by constraints, I recommend that you read the 2007 Dynamo paper from Amazon, and in particular section 2.3 "Design Considerations". Below is a link, you can easily find a PDF online if you need.
https://www.allthingsdistributed.com/2007/10/amazons_dynamo....
It's a French podcast covering a wide array of topics such as geopolitics, journalism, big tech, industrial espionage, economic warfare, etc.
I find it refreshing because the ideas and opinions discussed are very different compared to those you'd find in the usual anglophone media, and just that by itself is a ton of value.
My feedback about the product itself is that it's trying to do too much too soon. For example, the set interval slider, and all features in the "Pro Toolbar": are they really useful and necessary to your users? To me it seems they're not, and add confusion.
So the question you should ask yourself is: what is the one thing you want to solve for your users, and then make the interface do only this one thing and do it well. Only once you grow a user base you should add new features.
Best of luck with your project!
Does a view of a video when embedded counts the same as a view directly on YouTube?
If you want something more manual, then you should look into skilled trades that have shortages right now in your current state/country, and which have a decent hourly wage. For example, good electricians, plumbers, carpenters, etc., are hard to find. And they're not (yet) at risk of being disrupted by AI and automation in the next 10-15 years.
I hope this helped. Hang in there!
Individual Contributor:
=> Lead or Principal Engineer => Staff Engineer
=> Architect => Senior Architect
=> Site Reliability Engineer => Senior Site Reliability Engineer => etc.
Management:
=> Engineering Manager => Senior Engineering Manager => Tech Director => etc.
Process:
=> Technical Program Manager => Senior Program Product Manager => etc.
=> Developer Advocate
Business:
=> Product Manager => Senior Product Manager => etc.
=> CTO at a startup (team of 10 or less)
Any time a Senior Dev comes to me saying they want to grow, I asked them a very simple question: what do you really want?
It's a simple question, but the majority of them can't answer it. They don't know what they want. They just see colleagues get promoted left and right and have FOMO, so they panic and think "I have to push to be promoted too, let's become a Principal or Architect!"
So first, it's about helping them figure out what they want: is it more autonomy, or a larger scope, or weight in the decision making process, or owning a full tech scope in a small environment, etc.?
Once you know what they want, then you can plan what positions they can start targeting, and from there you can identify which skills they have to improve and which projects they have to get involved in to build credibility and get hired for it.
From my experience, the skills they have to develop end up being the same regardless of the job targeted: interpersonal communication, politics, business acumen, negotiating, public speaking, and so on.
There's also an interesting talk from CppCon 2014 where Titus Winter explains how they came up with it: https://www.youtube.com/watch?v=NOCElcMcFik
Here is something a bit similar from the Chromium team: https://chromium-cpp.appspot.com/
As for good projects written in C++, some of which is modern C++, I've always found LevelDB and Chromium to be good starting points. Here is a list of more projects which may help you: https://awesomeopensource.com/projects/modern-cpp
Finally, on your mention of "So I'm doubting if I should learn C++20 for now" => if you're in doubt, then 99% of the time the answer is no, don't spend time on it.
Learning has a diminishing return, especially once you reach the point of over-learning and spend time learning things you don't need or will never use. It's a lost opportunity as you could have spent that time learning something else that would actually be useful to you.
Wait until something either (1) become widely used and you can't ignore it, or (2) is required for you to get the job done -- because then you know it's actually useful for you to spend the time learning it.
I hope this helped, good luck with your learning!
A small team of sysadmins was maintaining a set of very large queries that had grown organically over time, to the point that some of those queries where 20,000 lines.
As you know, database queries don't scale as gracefully as code in size, because there's no modules, namespaces, classes, and so on. It's easier to distribute different parts of an application to different people/teams than it is to distributes parts of a database query.
Only those sysadmins knew the queries ins and outs and could evolve those queries to the ever-changing business needs. They had an internal monopoly, which gave them a lot of political power over the organization and became a problem over time.
Imagine if every newborn in the US was an investor in the stock market. I wonder what effect this would have on the market and global economy.
Of course you have to balance that out with the cost/time of retrieving a possibly large amount of data for that computation, and computing locally, which is what these SEARCH and CYCLE features aim at preventing.
Still, I'd think twice before jumping into using them, to ensure that making the queries more complex does bring enough bang for the buck.
How to Keep Your Tech Skills Sharp in a Leadership Role
I decided to go with a website, because it's easier for non-users to discover content: having to install a plugin or app on one's phone is one order of magnitude more effortful, and search engines can crawl this content but not what's trapped inside an extension or phone app.
Also, if I see more people using it, I'd like to extend to Spotify (as they expand into the realm of podcasts), and possibly audio-only with Libsyn and such.