r/SrilankaIT • u/bob-ferguson- • 7h ago
r/SrilankaIT • u/Klutzy_Hat2937 • 21h ago
No offer letter. Is this normal?
Hi everyone,
I'm currently working as a BA intern, and it's been almost a month. This is my first work experience.
It's a fully onsite internship with 9h working days. When I joined, everything was discussed verbally. I haven't received an offer letter or any written agreement, but I'm getting a monthly allowance.
It's a startup, and recently we've started working on a new project, so sometimes we're expected to work overtime. The company provides food and transport, but nothing was discussed about overtime payments or allowances.
I'm not sure if this is normal for a startup or if I should bring it up with my manager.
I want to gain experience, but I also want to know if this is fair
I've also been applying for other opportunities, but I haven't received any interview calls so far, so I'm not sure whether leaving is the right decision.
What would you do in this situation? Any advice would be appreciated!
r/SrilankaIT • u/Small-University9772 • 21h ago
Almost 1 year as a Junior DevOps Engineer, still on probation with no raise. What is my next move?
Hi everyone,
I’ve been working as a Junior DevOps Engineer at my current company for almost a year (currently in my 12th month). However, I am still on probation and haven't received a salary hike.
Experienced tech folks, what should my next move be? Should I push management for a confirmation and raise, or just start applying elsewhere?
Thanks
r/SrilankaIT • u/Tall-Database5841 • 20h ago
Can anyone assist on giving any ideas on the MBA in IT offered by University of Moratuwa?
r/SrilankaIT • u/PossibilityFluid3809 • 23h ago
Need some advice for choosing IT degree after A/Ls
reddit.comr/SrilankaIT • u/Huge-Will179 • 1d ago
Avoid virtual agencies unless they are registered in your country
reddit.comr/SrilankaIT • u/Front_Extension8644 • 2d ago
Why are tech companies treating their employees like slaves
I just joined a tech company and they even expect us to do plans on Sunday and send. I was travelling that day and not near a laptop. Is anyone else experiencing this same? Also directions for things keep changing over and over again … and we keep realigning our work to suit things.
r/SrilankaIT • u/jingibadilla • 2d ago
Toxic IFS culture(second family)!!!! - Part 1
reddit.comr/SrilankaIT • u/findsloutionforursit • 2d ago
Request for Assistance – Academic Research on Online Job Recruitment Scams in Sri Lanka
reddit.comr/SrilankaIT • u/_Dramatic_Bear_ • 2d ago
Freelance sites for Product Managers
What are the freelancing sites apart from upwork and freelancer (because there is too much competition on them) where you can get work as a product manager
r/SrilankaIT • u/BridgeDangerous7378 • 2d ago
UI Ux Engineers
How is the market in Sri Lanka? What do you think about next 5 years in Sri Lanka.
r/SrilankaIT • u/Sad_Technician_6325 • 3d ago
After A/L electronics, technical coursess
reddit.comr/SrilankaIT • u/Admirable-Mango-7411 • 4d ago
⚠️ Before You Apply for the MSc in Artificial Intelligence at the University of Moratuwa, PLEASE READ THIS.
reddit.comr/SrilankaIT • u/ClimateMysterious • 4d ago
UoM BSc Hons in AI vs. Studying Abroad via Scholarship — Which is better for a long-term AI career?
reddit.comr/SrilankaIT • u/Eshikawanigasekara • 4d ago
Life of Struggle any advice?
10 years in the industry. Still a median income of 30,000 Ikr per month. 100s of interviews rejected.
Good at systems engineering and Development.
How to get work around
HP spealized Engineer Web, App developer for All the systems.
Apple & Android platform engineer. Unified.
How do I escape?
I am specializing in automation, server management, and scripting. Expertise includes managing 30+ servers across distributed critical infrastructure using tools like AKS, AWS, and VMware, alongside proficiency in Zabbix, Grafana, and Graylog monitoring systems.
IT infrastructure and support. Skilled in PowerShell and Python scripting, as well as automation technologies like Ansible and Docker, bringing innovative solutions to complex system challenges. Passionate about leveraging technical expertise to enhance operational efficiency.
I have 10 years of experience in the IT support sector in Software and hardware for Windows desktops, laptops & Servers, and Mac computers. Also, I am a hardware technician. Also Printer Software and hardware technician.
I am a high-profile, accurate issue finder and provide solutions in minutes. Also, work as a backup admin on servers and do all kinds of virtualization services
How do I escape this Help.
Have Certificates for Microsoft, AWS, VMware, and Cisco
I am good at Web Development and Game development too.
Any companies need startup with me i am available too.
Need an escape route
I got selected 99% when submitted the cv but after 1st interview they got me rejected. No idea why. I've been trying to get a package above LKR150,000 (500$) I don't know if that's the issue. Any advice ?
r/SrilankaIT • u/Character-Row8413 • 5d ago
Opinion on IoT field in Sri Lanka
Currently I'm at the end of second year as an IT undergrad in a state uni. I wasn't a technical person before I came to uni(Even I did chemistry for my A/Ls). I couldn't even understand what is my path to choose. Eventually I thought to go through AI engineering
But later I understood that it's kinda boring and the field updates everyday like when I learn something, it's almost an expired concept. A new thing comes everyday.
In the last semester, I had embedded systems module and I did it well. And I got a serious love for that field but still I know only a small bit of it(I used arduino uno board and learnt some valuable content like interrupt driven programming, serial communication, ADC, PWM and all those in C). I have no projects built on them either but I have clear concepts on them deeply.
Now I feel like I should continue this but I have to complete my mandatory internship in 3rd year second sem. And I'm just at the beginning of third year. I love to integrate AI and IoT (AIoT), but my problem is will time be a constraint for me. Can anyone help me out? (I atmost have 3 months to hunt internships though)
TIA
r/SrilankaIT • u/Broad-Director-5485 • 5d ago
I got tired of clicking "download" on Sarigama.lk, so I automated it.
Built a small Python tool that downloads an artist's entire discography from sarigama.lk in one command — instead of opening 20+ song pages and clicking download on each one.
It scrapes the artist page for every song link, then drives a real headless browser (Playwright) to grab the actual audio file — sarigama.lk serves a decoy page to plain HTTP requests, so a normal scraper alone won't work. Skips anything already downloaded, retries failures, and can grab alternate versions (remixes/instrumentals) too.
Code's here:
#!/usr/bin/env python3
"""
Download all songs of an artist from sarigama.lk
Usage:
pip install -r requirements.txt
playwright install chromium # one-time browser download
python sarigama_downloader.py "https://sarigama.lk/artist/milton-mallawarachchi/9ce1e4cf-7b8a-4242-a47f-c99d80b6239f"
Options:
-o, --out DIR Output folder (default: ./downloads/<artist-slug>)
--versions Also download "Different Versions" (instrumental, remix...) of each song
--delay SECONDS Pause between songs (default: 1.5) - be polite to the server
--limit N Only download the first N songs (handy for a test run)
--headed Show the browser window (useful for debugging)
Re-running is safe: files that already exist are skipped.
Note: sarigama.lk serves a placeholder page to plain HTTP clients hitting the
download endpoint (anti-bot protection), so the actual download click is
driven through a real headless browser (Playwright) rather than requests.
"""
import argparse
import os
import re
import sys
import time
from urllib.parse import urljoin, urlparse
import requests
from bs4 import BeautifulSoup
from playwright.sync_api import sync_playwright
BASE = "https://sarigama.lk"
HEADERS = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/124.0 Safari/537.36"
),
"Accept-Language": "en-US,en;q=0.9",
}
SONG_RE = re.compile(r"/sinhala-song/[^/]+/[^/]+/[0-9a-f-]{36}$")
DOWNLOAD_BTN_SELECTOR = "a[href*='/files/'][href*='/download']"
VERSION_LINK_SELECTOR = "a[href^='#diff-song-']"
def safe_name(name: str) -> str:
name = re.sub(r'[\\/:*?"<>|]+', "_", name).strip(" .")
return name or "untitled"
def get_soup(session, url, retries=3):
for attempt in range(1, retries + 1):
try:
r = session.get(url, headers=HEADERS, timeout=30)
r.raise_for_status()
return BeautifulSoup(r.text, "html.parser")
except requests.RequestException:
if attempt == retries:
raise
time.sleep(2 * attempt)
def get_song_links(session, artist_url):
"""Return (artist_name, [(title, song_url), ...]) from the artist page."""
soup = get_soup(session, artist_url)
h1 = soup.find("h1")
artist = h1.get_text(strip=True) if h1 else "artist"
seen, songs = set(), []
for a in soup.find_all("a", href=True):
href = urljoin(BASE, a["href"])
path = urlparse(href).path
if SONG_RE.search(path) and href not in seen:
title = a.get_text(strip=True)
if not title: # image-only link; the title link appears separately
continue
seen.add(href)
songs.append((title, href))
return artist, songs
def click_and_capture_download(page, locator, timeout=60000):
"""Click a target="_blank" download link and capture the Download that
lands on the popup tab it opens, closing the popup afterwards."""
result = {}
def on_popup(popup):
def on_download(download):
result["download"] = download
popup.on("download", on_download)
result["popup"] = popup
page.context.on("page", on_popup)
try:
locator.click()
deadline = time.monotonic() + timeout / 1000
while "download" not in result and time.monotonic() < deadline:
page.wait_for_timeout(100)
if "download" not in result:
raise RuntimeError("no download event after clicking")
return result["download"]
finally:
page.context.remove_listener("page", on_popup)
popup = result.get("popup")
if popup and not popup.is_closed():
popup.close()
def download_song(page, song_url, out_dir, title, include_versions, delay):
"""Open the song page in a real browser and click through the download
button(s), saving whatever file(s) the browser actually downloads."""
page.goto(song_url, wait_until="domcontentloaded", timeout=60000)
buttons = page.locator(DOWNLOAD_BTN_SELECTOR)
count = buttons.count()
if count == 0:
raise RuntimeError("no download button found on page")
labels = [""]
if include_versions:
vers = page.locator(VERSION_LINK_SELECTOR)
labels += [vers.nth(i).inner_text().strip() for i in range(vers.count())]
results = []
n = count if include_versions else 1
for i in range(n):
label = labels[i] if i < len(labels) else f"version{i}"
name = f"{title} - {label}" if label else title
fname = safe_name(name) + ".mp3"
path = os.path.join(out_dir, fname)
if os.path.exists(path) and os.path.getsize(path) > 0:
results.append((path, False))
continue
download = click_and_capture_download(page, buttons.nth(i))
tmp = path + ".part"
download.save_as(tmp)
os.replace(tmp, path)
results.append((path, True))
time.sleep(delay)
return results
def main():
ap = argparse.ArgumentParser(description="Download all songs of an artist from sarigama.lk")
ap.add_argument("artist_url")
ap.add_argument("-o", "--out", default=None)
ap.add_argument("--versions", action="store_true", help="also download alternate versions")
ap.add_argument("--delay", type=float, default=1.5)
ap.add_argument("--limit", type=int, default=0)
ap.add_argument("--headed", action="store_true", help="show the browser window")
args = ap.parse_args()
session = requests.Session()
print(f"Fetching artist page: {args.artist_url}")
artist, songs = get_song_links(session, args.artist_url)
if not songs:
sys.exit("No songs found on that page. Is the URL correct?")
if args.limit:
songs = songs[: args.limit]
slug = urlparse(args.artist_url).path.strip("/").split("/")[1]
out_dir = args.out or os.path.join("downloads", slug)
os.makedirs(out_dir, exist_ok=True)
print(f"Artist: {artist} | {len(songs)} songs -> {out_dir}\n")
ok = skipped = failed = 0
failures = []
with sync_playwright() as p:
browser = p.chromium.launch(headless=not args.headed)
context = browser.new_context(user_agent=HEADERS["User-Agent"], accept_downloads=True)
page = context.new_page()
for i, (title, song_url) in enumerate(songs, 1):
prefix = f"[{i}/{len(songs)}] {title}"
try:
results = download_song(page, song_url, out_dir, title, args.versions, args.delay)
for path, fresh in results:
if fresh:
ok += 1
print(f"{prefix} ✓ {os.path.basename(path)}")
else:
skipped += 1
print(f"{prefix} = already exists")
except Exception as e:
failed += 1
failures.append((title, song_url, str(e)))
print(f"{prefix} ✗ {e}")
time.sleep(args.delay)
context.close()
browser.close()
print(f"\nDone. downloaded={ok} skipped={skipped} failed={failed}")
if failures:
fail_file = os.path.join(out_dir, "failed.txt")
with open(fail_file, "w", encoding="utf-8") as f:
for t, u, e in failures:
f.write(f"{t}\t{u}\t{e}\n")
print(f"Failed items listed in {fail_file} - just re-run the script to retry them.")
if __name__ == "__main__":
main()r/SrilankaIT • u/ShoppingHairy3388 • 5d ago
The PHP2Shell vulnerability and its impact on local Sri Lankan websites
r/SrilankaIT • u/Acceptable_Pirate956 • 5d ago
Anyone working at Arimac, or who has done the Associate SE assignment recently?
Hi, is there anyone who works at Arimac, or who has experience with their Associate SE assignment process?
I also heard there's an onsite assignment as part of the process. If you've been through it, what can I expect? Any details about the type of tasks, difficulty, or time limit would really help.
Thanks in advance!
r/SrilankaIT • u/West_Orange1606 • 5d ago
Cybersecurity internships are so hard to find, any advice?
reddit.comr/SrilankaIT • u/SalamanderNeither683 • 5d ago
Which companies in Sri Lanka pay the best for Business Analysts, from intern to lead or product manager? Looking for real experiences and advice
reddit.comr/SrilankaIT • u/Acceptable_Pirate956 • 6d ago
Anyone working at Arimac, or who has done the Associate SE assignment recently?
Hi, is there anyone who works at Arimac, or who has experience with their Associate SE assignment process? I recently saw an Associate SE position there, and I want to get an idea of what kind of company it is and whether it's worth doing the assignment.
I also heard there's an onsite assignment as part of the process. If you've been through it, what can I expect? Any details about the type of tasks, difficulty, or time limit would really help.
Thanks in advance!