DevOps Engineer|Technical WriterπŸš€|

Joined April 2022
17 Photos and videos
Alpheus retweeted
Built another project, scratching an itch I keep having Shared staging environments are a queue, when one team is testing on it, nobody else can. Hard to validate a PR without stepping on someone else's work in flight. So I built Galley. It spins up a preview environment per PR with your entire stack: frontend, backend, databases, caches, queues, workers all networked together at a unique URL. Open the PR, get the env. Close it, it's gone. Self-hosted on your own VPS. One docker compose up. This is still in beta, so let me know any bugs you come across😁 galley.sh
1
6
14
1,980
Alpheus retweeted
hey folks πŸ‘‹πŸΎ, been heads down on this for a bit, finally opening up the beta. nevo is basically an inbound layer for your agents / backends. it takes webhooks, inbound email, slack mentions, even cron schedules and turns them into one consistent event stream. you get signature verification, replies for supported channels, rules to filter or reshape events, and replays from the dashboard. python sdk is ready, ts go coming next. waitlist’s open πŸš€β†’ nevo.sh
1
3
8
318
Alpheus retweeted
Read more about what i built here -> blog.nevo.sh/introducing-nev…
hey folks πŸ‘‹πŸΎ, been heads down on this for a bit, finally opening up the beta. nevo is basically an inbound layer for your agents / backends. it takes webhooks, inbound email, slack mentions, even cron schedules and turns them into one consistent event stream. you get signature verification, replies for supported channels, rules to filter or reshape events, and replays from the dashboard. python sdk is ready, ts go coming next. waitlist’s open πŸš€β†’ nevo.sh
3
5
120
Alpheus retweeted
We've seen this one play out a few times now. The team is under pressure to ship, and the deadline was yesterday. The DevOps engineer, with three days of bad sleep and back-to-back standups, is moving fast through YAML configs just to get it over the line. Two weeks later, there's an incident. The database was publicly exposed. The customer’s data was accessible. Not because anyone was careless. Not because they didn't know what a secure config looks like. They knew. They were just moving too fast, in a moment where one missed setting was all it took. Around 80% of cloud security exposures trace back to misconfiguration. Not sophisticated attacks. Not zero-days. Just configuration drift, skipped steps, and good engineers in bad conditions. The pattern is always the same: the pressure comes from the business, lands on the delivery team, and the thing that gives first is the thing nobody can see until it's too late. Shipping slower isn't the answer. But building a process that only holds together when your team is well-rested and unrushed β€” that's the actual problem. The teams that stop having these incidents aren't more careful. They've just removed the steps that depend on someone remembering. The teams that stop having these incidents aren't more careful. They've just automated the parts of the process where human error under pressure is almost guaranteed.
3
4
195
Alpheus retweeted
The front-end layer of a web app is the most critical for scalability. Every user interaction, every click, every API call flows through it. Adding more servers if you get tons of traffic works, but only your architecture needs to make this possible. When servers hold state, users are tied to particular servers. Requests can't be sent freely to different servers, servers cannot be cloned or replaced without downtime, and auto-scaling becomes a nightmare. But how to remove all state from your front-end servers? Where do you put user-specific session data? There are 3 main strategies: 1. Put Everything in Cookies.Β Instead of the cookie containing just a session ID, it includes the actual data, encrypted and encoded. When a request comes in, the server reads everything it needs from the cookie. When sending a response, it updates the cookie with any changes. It works when the session data is small. The problem comes when you need to store more data since browsers send cookies with every request. 2. Use a Shared Data Store.Β Store your session data in a dedicated external system. The cookie contains only a session ID. Your web server uses this ID to fetch the actual data from the shared store. Redis, Memcached, DynamoDB, or Cassandra are good for this. 3. Sticky Sessions.Β The third option is let the load balancer track which user connects to which server and ensure they always connect to the same one. But this breaks everything. Your servers are now stateful, since each one holds different users’ data. Sticky sessions are a trap. You can read more about how to handle files and other kinds of state in the latest issue of the polymathic engineer. Read it here: newsletter.francofernando.co…
The 155th issue of the Polymathic Engineer is out. This week, we talk about building scalable web applications: - Stateless vs. Stateful - Managing HTTP Sessions: Three Approaches - Managing Files - Managing Other Types of State Read it here: newsletter.francofernando.co…
1
12
76
7,984
Alpheus retweeted
Guide for hardening Linux servers github.com/imthenachoman/How…
15
368
3,155
143,696
Alpheus retweeted
Modern System Design 2026 Roadmap β”œβ”€β”€ /00_Foundations β”‚ β”œβ”€β”€ system_design_overview β”‚ β”‚ β”œβ”€β”€ goals_and_tradeoffs β”‚ β”‚ β”œβ”€β”€ scalability_latency_throughput β”‚ β”‚ └── reliability_availability β”‚ β”œβ”€β”€ networking_basics β”‚ β”‚ β”œβ”€β”€ tcp_ip_http β”‚ β”‚ └── dns_and_load_balancing β”‚ └── data_structures_algorithms_for_systems β”‚ β”œβ”€β”€ /01_requirements_and_constraints β”‚ β”œβ”€β”€ functional_vs_nonfunctional β”‚ β”œβ”€β”€ capacity_planning β”‚ β”œβ”€β”€ latency_budgeting β”‚ └── apis_and_contracts_specification β”‚ β”œβ”€β”€ /02_core_architectural_patterns β”‚ β”œβ”€β”€ monoliths_vs_microservices β”‚ β”œβ”€β”€ event_driven_architecture β”‚ β”œβ”€β”€ service_oriented_architecture β”‚ └── serverless_patterns β”‚ β”œβ”€β”€ /03_scalability_design β”‚ β”œβ”€β”€ horizontal_vs_vertical_scaling β”‚ β”œβ”€β”€ partitioning_and_sharding β”‚ β”œβ”€β”€ caching_strategies β”‚ β”‚ β”œβ”€β”€ cdn_cache β”‚ β”‚ β”œβ”€β”€ redis_memcached β”‚ β”‚ └── cache_invalidation β”‚ └── queuing_and_buffering β”‚ β”œβ”€β”€ message_queues β”‚ └── kafka_pubsub_patterns β”‚ β”œβ”€β”€ /04_data_management β”‚ β”œβ”€β”€ database_selection β”‚ β”‚ β”œβ”€β”€ relational_db_design β”‚ β”‚ β”œβ”€β”€ nosql_design_patterns β”‚ β”‚ └── multi_model_databases β”‚ β”œβ”€β”€ consistency_models β”‚ β”‚ β”œβ”€β”€ strong_vs_eventual β”‚ β”‚ └── transactional_guarantees β”‚ β”œβ”€β”€ distributed_databases β”‚ └── backup_and_disaster_recovery β”‚ β”œβ”€β”€ /05_api_and_microservices β”‚ β”œβ”€β”€ rest_api_design_principles β”‚ β”œβ”€β”€ graphql_and_hybrid_apis β”‚ β”œβ”€β”€ api_gateway_patterns β”‚ β”œβ”€β”€ versioning_and_deprecation_strategies/ β”‚ └── rate_limiting_and_throttling β”‚ β”œβ”€β”€ /06_observability_and_monitoring β”‚ β”œβ”€β”€ logging_and_tracing β”‚ β”‚ β”œβ”€β”€ structured_logs β”‚ β”‚ └── distributed_tracing β”‚ β”œβ”€β”€ metrics_and_alerting β”‚ β”‚ β”œβ”€β”€ prometheus β”‚ β”‚ └── grafana β”‚ └── chaos_engineering β”‚ β”œβ”€β”€ /07_fault_tolerance_and_reliability β”‚ β”œβ”€β”€ redundancy_patterns β”‚ β”œβ”€β”€ circuit_breakers β”‚ β”œβ”€β”€ fallback_strategies β”‚ β”œβ”€β”€ rate_limiters β”‚ └── graceful_degradation β”‚ β”œβ”€β”€ /08_edge_and_content_delivery β”‚ β”œβ”€β”€ cdn_architectures β”‚ β”œβ”€β”€ edge_computing_patterns β”‚ β”œβ”€β”€ regional_replication β”‚ └── geo_routing β”‚ β”œβ”€β”€ /09_security_at_scale β”‚ β”œβ”€β”€ authentication_authorization β”‚ β”‚ β”œβ”€β”€ oauth2_jwt β”‚ β”‚ └── zero_trust_models β”‚ β”œβ”€β”€ encryption_in_transit_at_rest β”‚ β”œβ”€β”€ secret_management β”‚ └── api_security_patterns β”‚ β”œβ”€β”€ /10_cloud_native_design β”‚ β”œβ”€β”€ containers_and_orchestration β”‚ β”‚ β”œβ”€β”€ docker β”‚ β”‚ └── kubernetes β”‚ β”œβ”€β”€ infrastructure_as_code β”‚ β”‚ β”œβ”€β”€ terraform β”‚ β”‚ └── cloudformation β”‚ β”œβ”€β”€ autoscaling_and_self_healing β”‚ └── multi_cloud_and_hybrid_architectures/ β”‚ β”œβ”€β”€ /11_real_time_and_stream_processing β”‚ β”œβ”€β”€ websocket_design_patterns β”‚ β”œβ”€β”€ streaming_with_kafka β”‚ β”œβ”€β”€ complex_event_processing β”‚ └── realtime_analytics β”‚ β”œβ”€β”€ /12_large_scale_search_and_ai_workloads β”‚ β”œβ”€β”€ vector_search_infrastructure β”‚ β”œβ”€β”€ embedding_pipelines β”‚ β”œβ”€β”€ retrieval_augmented_generation β”‚ └── model_serving_at_scale β”‚ β”œβ”€β”€ /13_cost_and_performance_optimization β”‚ β”œβ”€β”€ performance_tuning β”‚ β”œβ”€β”€ cost_effective_architectures β”‚ β”œβ”€β”€ autoscaling_cost_savers β”‚ └── reserve_capacity_strategies β”‚ β”œβ”€β”€ /14_case_studies_modern_systems β”‚ β”œβ”€β”€ design_amazon_like_ecommerce β”‚ β”œβ”€β”€ scale_netflix_like_streaming β”‚ β”œβ”€β”€ build_tiktok_like_feed β”‚ β”œβ”€β”€ social_network_architecture β”‚ └── large_scale_collaboration_platform β”‚ └── /15_capstone_design_exercises β”œβ”€β”€ exercise1_global_chat_service β”œβ”€β”€ exercise2_high_throughput_payment_system β”œβ”€β”€ exercise3_real_time_gaming_service β”œβ”€β”€ exercise4_distributed_search_platform Grab the System Design eBook: codewithdhanian.gumroad.com/…
23
236
1,852
66,391
Alpheus retweeted
Most asked DevOps interview Q: How to make Docker containers lightweight ? (Real-world DevOps practice) Here’s how I keep my Docker images small & production-ready πŸ‘‡ Why lightweight containers matter : - Faster container startup - Quicker image pulls & deployments - Lower storage & memory usage - Better cloud performance cost efficiency πŸ“’Best practices I follow: 1️⃣ Use small base images β†’ Prefer alpine or slim instead of full OS images 2️⃣ Multi-stage builds β†’ Separate build & runtime stages so only required artifacts go into final image 3️⃣ Install only what’s needed β†’ No extra tools in production images 4️⃣ Clean cache files β†’ Remove package manager caches to reduce image size 5️⃣ Minimize Docker layers β†’ Combine commands to keep images clean & small 6️⃣ Use .dockerignore β†’ Prevent unnecessary files from entering the image 7️⃣ Avoid running as root β†’ Improves container security. I’m actively applying these techniques while building real-world Docker & DevOps projects. Please add anything if I missed its a learn in public anyone can add any point. Save this if you work with Docker πŸ” Repost to help others ship better containers.
33
218
1,752
93,572
Do what you know is right, regrets feel worse than consequences.
2
5
333
Alpheus retweeted
16 Aug 2025
thoughts?
18
76
513
12,560
15 Aug 2025
πŸ‘Œ
Fun fact: the DevOps grows 20% every year and projected to be a 25-30 billion market by 2030. Seniors will dominate. The Seniors of 2030 are the ones who grow today.
22
Alpheus retweeted
14 Aug 2025
Step 1: Learn to code. Step 2: Realize you’ll be learning forever.
31
56
427
10,665
Alpheus retweeted
14 Aug 2025
coding tip: stop coding when you’re stuck. come back in the morning, your brain will solve it overnight.
57
66
649
14,966
Alpheus retweeted
To all the people receiving NOs now, keep pushing, the YES will come!
12
94
712
37,825
Alpheus retweeted
CONVICTION vs DEGENERATE TRADING IN MEMECOINS Categories of meme trading strategies: - Trend/Community/Hype trading (CONVICTION) - Dead token trading and CTO (CONVICTION) - Narrative trading (DEGEN CONVICTION) - News trading: Buy the rumor - sell the news (DEGEN conviction) - Events trading (DEGEN conviction) - Black Swan trading - a special type of events trading (DEGEN) - Second/third/fourth runner trading (DEGEN) From the above, it is clear that conviction, although a major part of memecoin trading, makes up only a little part of the memecoins trading meta. Most memecoins are degen plays β€” Fast, Loud, and Fleeting and should be held only for a brief moment/day (5 minutes - 1 day tops) β€” - Viral news? - Quick flip - Viral Tiktok/Instagram meme? - Quick flip - Elon tweet? - Quick flip - Elon changed his name on X? - Quick flip - Celebrity launched token? - Quick Flip 99% of these plays are exit liquidity setups. Unless you’re early and nimble, you’ll get dumped on. Infact, out of the tens of thousands of tokens being deployed on pumpfun and bonkfun daily we only get a handful of memecoins that should be traded with conviction monthly but here is the thing - these conviction plays are goldmines, relatively low risk and are easier to spot when you've understood the ins and outs of the memecoins meta but if you're a beginner you will certainly face some difficulties trying to spot them in the beginning. Conviction is a personal thing and it is built from a blend of experience and observation, not just vibes or feelings. Here is a short guide to help build your convictions when trading memecoins - 1. NARRATIVE/TREND FIT AND COMMUNITY EFFORT IS EVERYTHING Every memecoin that sends has either one or both of these, the stronger, the better. *Note: Cabal push is also a thing too but a cabal is also a type of community too but they generally stay out of the public eye. 2. ALWAYS BE IN SYNC WITH THE MARKET Even after understanding the memecoin trading culture, it is important that you're always updated about what is happening in the market. At any given time in your meme trading career you should know the lore/narrative behind the top 10 trending tokens on Dexscreener, if the marketcap of these tokens are organic then what influencers/community are bullposting them and the track records of these influencers - follow them if they are genuine. Also, joining active organic communities of meme traders is a must, it isn't optional. 3. FRONT RUNNING EVERYONE ELSE - IMPORTANT QUESTIONS TO ANSWER BEFORE BUYING A TOKEN Are eyes still on this token? What eyes are on this token? Will more eyes soon be on this token? What eyes will potentially be on this token? Ask yourself these questions and answer them before buying a token and if you can’t answer these questions with confidence, don’t buy. 4. WALLET TRACKING Wallet tracking is a reference/confirmation tool, not a guide. Many smart wallets know that they have many copytraders and they use their copytraders as exit liquidity. However you can find success in tracking insider wallets as they front-run the masses. 5. DON'T FALL IN LOVE Never fall in love with memecoins - whether conviction plays or degen plays or otherwise. If your reason for buying a memecoin no longer holds, abandon it. If you are skeptical, size down or leave a moonbag. FINAL NOTES ON CONVICTION PLAYS - You'll have more luck finding conviction plays on Dexscreener than any other trading bot/platform. - Only size into tokens that are 8 hours old minimum. 6 hours if you are jittery and impatient. Treat every new token like a degen play in its first 5 - 6 hours. Only consider it a conviction play if it survives beyond that window. - Top Holders must be smart and no single top holder should hold more than 3.5%. - ALWAYS TAKE PROFITS. And work for your bags((push the community/token) if you can.
9
14
46
72,402
Alpheus retweeted
I finally did it! I just completed my first-ever mobile app interface. The FinanceEdu app is an app that lets users access courses on finance management and also allows users to track their expenses within the app. Thank you to everyone for the mockup suggestions you gave me.
6
8
64
3,064
Alpheus retweeted
Linux is king. Please learn it
48
165
1,367
72,624
Alpheus retweeted
Learning Linux in 2025! Get your hands dirty with the Linux Command Line CTF Challenges on @learntocloud It literally takes 15-20 second to deploy the provided lab environment in your choice of cloud. More challenges coming soon.
12
108
823
38,150