HN user

gerlv

99 karma

Software Engineer. London, UK.

Posts15
Comments22
View on HN

Building DynoWizard [1] - tool for designing single table DynamoDB tables.

I first used DynamoDB 8 years ago and have been designing single-table schemas heavily since. For me, the best way to create drafts was always pen and paper (and then excel/confluence tables), but in reality it's a process (based on The DynamoDB Book) that can be automated to an extent.

Decided to build an app while on paternity leave. You define entities and access patterns, create (or get suggested) key and GSI design, and generate code for access patterns (TypeScript and Python), infrastructure (CDK, CloudFormation, Terraform), and documentation you can share with stakeholders.

There's more I want to build beyond the MVP - things around understanding and validating designs that you can't get from a chatbot - but for now focusing on the core.

If anyone wants to try it out, sign up for the waitlist on the landing page. MVP should be ready in the next few weeks.

[1] https://www.dynowizard.com

1. Treat it as a stream - you can't catch all of it as there is so much info, just catch something interesting, read it, and don't stress out if you didn't catch something else. There will always be something else to read.

2. Most of the sources you've mentioned are push-based - i.e. someone else is pushing this new info onto you (newsletters, youtube, podcasts, news). This increases FOMO. Instead, try to implement a pull-based approach and only seek and read info that is relevant to what you want to learn, read. It's a lot harder than it seems, but my guess it's harder due to default.

Last year, I re-tried[1] the experiment of not using the internet for entertainment for a few months, only for work and life admin. To catch up with news, I subscribed to a paper-based weekly newspaper. If there is something important in the world, you will find out about it, someone will tell you. But this will help a ton with anxiety and mental health.

The other thing I realised - when I listen to podcast and go into info overload, I get burned out a lot quicker. Listening to podcasts while working is the worst. I removed all podcast subscriptions and only started adding those that I want to listen + limit when I listen to these episodes.

[1] https://oleggera.com/blog/life-with-no-internet/

This looks cool and I would definitely use it as at the moment manually type "Act as ..., this is the context, ... etc" to improve the responses.

Side note - this is a single page with a few paragraphs, why is it 1.4MB in size (300kb gzipped)? It's just insane size for the amount of functionality it provides.

That's what I do as well and can recommend it.

I found I have more energy and focus as everyone else is getting ready for their day.

The secret is not to go to HN, twitter, etc :)

If you can't find time in the morning, meditating after you finish your day job also helps.

It's like leaving all thoughts about work at work and continue with fresh(er) state.

McPiper - macOS status bar app that monitors GitLab CI/CD pipelines and notifies you if they fail.

This month released support for on prem GitLab instances, and now working on adding GitHub actions.

Website https://www.mcpiper.app/

AppStore: https://apps.apple.com/us/app/mcpiper/id1517471189?ls=1

Promo codes if someone wants to try it out:

KFFLRRFXP6HY

39RRKX7KKRTK

6TLXLKEM9PRF

A4649W4Y7NA9

ELNM4F73EYTM

Also wrote a blog post on building McPiper v1 a few weeks ago: https://oleggera.com/blog/mcpiper-v1/

I was in the same position when I started working at the first company.

They just continued to pay the same salary after I graduated.

Until you reach senior level, the best strategy for maximising salary is to switch to better paying jobs every ~2 years.

Also, I assume you are from Latvia as you have LV in your username - 1k is waaay to low. I have friends making 3.5k eur a month. You can find mid level positions that pay more than 2k/m

Hi Marc, thank you for the detailed feedback, it's very useful!

- the popup to allow notification did not come (after manually allowing it works)

What's your macOS version? I've tried replicating it, but seems to work ok. It should ask at the last screen during the onboarding.

- the name seems a bit weird, I guess the Mc comes from Mac?

Correct, it's a short version of Mac

- I would prefer to have a setting that filters pipelines that are triggered by me only

Yep, it's on the radar, as this data isn't available directly from the GraphQL pipeline object, it requires another REST request to GitLab

- you can open the preferences window unlimited times

That should be a quick fix

- a bit weird that it requires write access but I guess that's a problem of GitLabs permission management

Yeah, I've raised it with them as docs dont't specify it at all, the ticket still open after 7 months

Hey Hacker News,

I'm Oleg, maker of McPiper. I've built it to help me monitor GitLab pipelines. While coding I don't look at my emails and I was missing failed pipeline notifications.

McPiper is macOS app that lives in the status bar and when a pipeline fails it will highlight it in red and will show the notification.

Let me know if you have any questions or comments.

I also plan to add GitHub Actions soon. Let me know if you like to see any other CI / CD tool.

I've built McPiper - simple Gitlab CI/CD pipeline monitor from macOS status bar.

When I work I usually have emails off, so no idea when the pipelines fail.

At the moment functionality is quite basic, but it solves the problem I had.

Also plan to add other CI/CD providers (Travis, Github actions, etc) in the next few versions.

It's my first macOS app, and I've managed to learn Swift + SwiftUI, so time well spent too.

https://www.mcpiper.app/

Had similar experience a few years ago. After 5 years startup failed. Turns out I've gained a lot of valuable experience during those 5 years since start-up usually means moving faster - you learn more. Honestly, just find some recruiters - I know everyone hates them and says their industry should go away, but with them I found a gig within a week. But since you know how to code you'll be fine, you have valuable skills.

Ship daily

This is the advice I can give to anyone who has a side project. Get to the point where you can show something to the users and just start adding stuff.

Even if it's just two lines of code or changing the favicon - still worth it. In practice, it's harder to do than it sounds, but I've been doing it for some time and it's been going great.

In reality, you won't have millions of users on day 1 no matter how great your product is. If you start small and keep adding stuff you will have more success.

In fact, the biggest challenge for side projects is marketing and not the tech or infrastructure.

However, it also depends on the goal - if you want to build the project that makes money it's completely different story to experimenting with tech. In the end, you get the experience.

For example, a few years ago I managed to build an overengineered CDN product that compressed images on the fly (almost on the fly). I shipped the project and it even worked great for testers, but I didn't get to the point where it makes money, so I shut it down as with half unfinished features as it was taking too much time.

While building it I managed to learn Go, improve my AWS skills, plus some other tricks. Now it sounds like a great investment even though I feel that I haven't completed the project.

Most likely you won't be able to estimate project accurately. I've co-founded a digital agency, and after 5 years we still can get 100% accuracy.

But here are few things that will impact the accuracy:

- how familiar are you with the technology - how quickly the dependencies change (tech dependencies). - how technical your project manager is - you will likely to spend more time in the meeting explaining some trivial stuff if PM isn't technical. - how many visual design revisions you need to implement during this estimate - how big is the task - if it's bigger than 2 days your accuracy drops.

My advise is to keep the tasks small, no more than 2 days (3 days or 20 hours max). And total phase smaller than around 200 hours. You also need to make sure that everyone is on the same page - if there is no good communications your estimate might need to be revised during the development phase.

Even if you implement the same project the second time - it still not guaranteed to be faster than the first project.

We did an internal hackathon at LETO a few weeks ago and our team did Elevate app - a gratitude journal. Joe did a blog post on our thinking behind it.

Would love to hear some feedback on the app, and let me know if you find any issues.

Android version in progress, should be in Google Play end of this week.

- Oleg

Spaced repetition 10 years ago

I've tried using Anki but found it too confusing. Most features are overkill for what I needed, plus I always forgot to revise.

Earlier this year I build a side project to tackle this problem. I've added email notifications, made interface really simple. Only left what it is - spaced repetition app - Endue (https://endue.me/). After a month of using it, I actually implemented an add-on - Telegram bot, EndueBot (https://telegram.me/EndueBot).

Telegram Bot is super useful as you can revise without leaving Telegram and most of my cards don't require audio or images, it's text mainly. It only takes few minutes a day.

I've been using it for the last 6-7 months, and it helps me with dev cards. For example, if I'm doing a project and need to google some error or explanation on config option or whatever, I add a card after I find an answer. So next time you have this problem instead of googling you just recall it from your head.

There is Messenger version in progress, I should finish it later this month.

Would love some feedback on it.

guys, I think you over-estimate what this tool does. It's not a saas or something to be integrated with projects.

The only reason I've made it is to avoid creating random strings every time I need them. In the past few months I've done the following at least 5 times:

1) run ipython 2) run the following code:

  import os
  import hashlib
  print(hashlib.sha512(os.urandom(128)).hexdigest())
The problem that it takes unnecessary time to do it. `curl -L r.ger.lv` is way simpler and faster for the same result. In fact, it's exactly the same code that's running on this site :) It's a small tool so you have fewer excuses to leave `SECURE_STRING = "TODO_CHANGEME"` in settings files.

I did this tool mainly for myself, thought I'd share it, maybe someone finds it useful.