RunningOpen to full-time roles from 2027
Justo Gregorius
Cloud Engineer Intern at Accenture
Computer science student building and operating AWS infrastructure. I like systems that are boring to run.
Instance summary
Updated fromsrc/data/profile.ts- User ARN
- arn:aws:iam::portfolio:user/justo
- Role
- Cloud Engineer Intern
- Organization
- Accenture
- Education
- Universitas Placeholder, Computer Science
- Location
- Jakarta, Indonesia
- Uptime
- since 2022-08
- Attached policies
- 8 skill policies
- Instances
- 2 running, 5 total
- Certifications
- 3 active
About and permissions
Summary
I'm a computer science student who works on cloud infrastructure. Day to day that means writing Terraform, reviewing IAM policies, and keeping workloads observable.
Before the internship I spent most of my free time breaking Linux boxes on purpose: self-hosting services, writing shell scripts, and learning why things fail at 3 a.m.
I care about infrastructure that is reproducible, cheap to run, and easy for the next person to understand.
- Path
- /students/interns/
- Groups
- cloud-eng, cs-students
- MFA
- Enabled
- Console access
- Always, you're in it
Permissions policies (8)
Select one to read the document{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSComputeAndNetworkingL4",
"Effect": "Allow",
"Action": ["ec2:*",
"vpc:Design*",
"elasticloadbalancing:*",
"autoscaling:*"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["EC2", "VPC", "ALB", "Auto Scaling", "Route 53"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ServerlessBuilderL3",
"Effect": "Allow",
"Action": ["lambda:*", "apigateway:*", "dynamodb:*", "events:PutRule"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Lambda", "API Gateway", "DynamoDB", "EventBridge", "S3"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InfrastructureAsCodeL4",
"Effect": "Allow",
"Action": ["terraform:Plan", "terraform:Apply", "cloudformation:Read*"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Terraform", "CloudFormation", "AWS CDK"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "LinuxOperatorL4",
"Effect": "Allow",
"Action": ["shell:Script",
"systemd:Manage",
"ssh:Harden",
"nginx:Configure"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Ubuntu", "Amazon Linux", "Bash", "systemd", "Nginx"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ContainerRuntimeL3",
"Effect": "Allow",
"Action": ["docker:Build", "ecs:Deploy*", "eks:Describe*", "kubectl:Get"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Docker", "ECS Fargate", "Kubernetes", "Helm"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DeliveryPipelineL4",
"Effect": "Allow",
"Action": ["git:*", "actions:RunWorkflow", "codepipeline:Start*"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Git",
"GitHub Actions",
"CodePipeline",
"Conventional Commits"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ObservabilityReadOnlyL3",
"Effect": "Allow",
"Action": ["cloudwatch:*", "logs:FilterLogEvents", "xray:GetTrace*"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["CloudWatch", "Grafana", "Prometheus"]
}
}
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ProgrammingLanguagesL3",
"Effect": "Allow",
"Action": ["python:Write", "go:Read", "typescript:Write", "sql:Query"],
"Resource": "*",
"Condition": {
"StringEquals": {
"skill:tools": ["Python", "Go", "TypeScript", "SQL"]
}
}
}
]
}Experience
Every role, logged like an API call. Expand an event to see what happened and the raw record.
StartInternshipCloud Engineer InternAccentureaccenture.comJul 2026 to now
- Write and review Terraform modules for client landing zones (placeholder).
- Built CloudWatch dashboards and alarms for a multi-account workload (placeholder).
- Automated EC2 patch reporting with Lambda and Systems Manager (placeholder).
- Terraform
- AWS Organizations
- CloudWatch
- Lambda
- SSM
{ "eventVersion": "1.09", "eventTime": "2026-07-01T09:00:00Z", "eventSource": "accenture.com", "eventName": "StartInternship", "awsRegion": "ap-southeast-3", "userIdentity": { "type": "IAMUser", "userName": "justo" }, "requestParameters": { "title": "Cloud Engineer Intern", "stack": [ "Terraform", "AWS Organizations", "CloudWatch", "Lambda", "SSM" ] }, "responseElements": { "status": "InProgress" } }JoinOrganizationHead of Infrastructure, Student Tech ClubComputer Science Student Associationexample.ac.idSept 2024 to Jun 2026
- Moved the club website from shared hosting to a containerised VPS setup (placeholder).
- Ran Linux and Git workshops for first-year students (placeholder).
- Docker
- Nginx
- GitHub Actions
- Linux
{ "eventVersion": "1.09", "eventTime": "2024-09-01T09:00:00Z", "eventSource": "example.ac.id", "eventName": "JoinOrganization", "awsRegion": "ap-southeast-3", "userIdentity": { "type": "IAMUser", "userName": "justo" }, "requestParameters": { "title": "Head of Infrastructure, Student Tech Club", "stack": [ "Docker", "Nginx", "GitHub Actions", "Linux" ] }, "responseElements": { "status": "Completed" } }CompleteCourseTeaching Assistant, Operating SystemsUniversitas Placeholderexample.ac.idFeb 2024 to Jun 2024
- Guided lab sessions on processes, scheduling and shell scripting (placeholder).
- C
- Bash
- Linux
{ "eventVersion": "1.09", "eventTime": "2024-02-01T09:00:00Z", "eventSource": "example.ac.id", "eventName": "CompleteCourse", "awsRegion": "ap-southeast-3", "userIdentity": { "type": "IAMUser", "userName": "justo" }, "requestParameters": { "title": "Teaching Assistant, Operating Systems", "stack": [ "C", "Bash", "Linux" ] }, "responseElements": { "status": "Completed" } }
Projects
Running means live, pending means I'm still building it, stopped means done and archived.
Instances (5)
| Select | Name | Instance ID | State | Instance type | Year | Stack |
|---|---|---|---|---|---|---|
| cloud-console-portfolio | i-0c10ud5ite | running | t3.medium | 2026 | AstroReactTerraform+2 | |
| serverless-url-shortener | i-0a3f9e21b7 | running | t3.micro | 2025 | PythonLambdaDynamoDB+2 | |
| homelab-k3s-cluster | i-07be2d4c11 | pending | m5.large | 2026 | Kubernetesk3sArgo CD+2 | |
| three-tier-vpc-terraform | i-0e55a0c3d9 | stopped | c6i.xlarge | 2025 | TerraformVPCALB+2 | |
| log-alert-bot | i-0d81f6aa02 | stopped | t3.micro | 2024 | GosystemdLinux |
Instance: i-0c10ud5ite
(cloud-console-portfolio)This website. A static Astro build on Cloudflare Pages, with the hosting itself managed by Terraform.
- Served from Cloudflare Pages on justo.codes. Every push to main builds and deploys in about a minute.
- infra/terraform owns the Pages project, the custom domain and the DNS records. Total hosting cost: zero.
- The terminal you can open at the bottom runs entirely in the browser, reading the same data file as the page.
- Instance state
- running
- Instance type
- t3.medium
- Launched
- 2026
- Instance ID
- i-0c10ud5ite
- Demo
- Not published
Request path, left to right
- 01GitHub
- 02Pages build
- 03Cloudflare edge
- 04Visitor
Repositories
Where the work actually lives. Mirrored from GitHub, browsable here.
| Name | Language | Updated |
|---|---|---|
| portofoliopublic This site, plus the Terraform that hosts it. | TypeScript | 2026-10-12 |
| terraform-aws-modulespublic Personal collection of small, tested Terraform modules. | HCL | 2026-09-28 |
| dotfilespublic Bash, tmux and Neovim config. Bootstraps a new machine in one command. | Shell | 2026-08-03 |
| homelabpublic GitOps manifests for the k3s homelab. | YAML | 2026-07-19 |
| os-course-labspublic Operating systems lab material from my TA semester. | C | 2024-06-14 |
Cached list
Commit graph
portofolio- merge: feat/cloudshell into main9f3c2e1 · 2026-10-12
- feat(shell): tab completion for pathsfeat/cloudshellb81d0a4 · 2026-10-11
- feat(shell): virtual filesystem from profile data47aa9c0 · 2026-10-09
- infra: www to apex redirect rulesete02f6b7 · 2026-10-08
- infra: cloudflare pages project and custom domainc5d913e · 2026-10-06
- feat: console layout and service sidebar1a7e4f2 · 2026-10-04
- chore: initial commit0d0c0de · 2026-10-01
main in solid, feat/cloudshell in outline. Try .
Certifications
Earned ones are in STANDARD. The ones I'm studying for are still uploading.
| Name | Issued | Expires | Storage class | Actions |
|---|---|---|---|---|
| AWS Certified Solutions Architect, Associateaws/solutions-architect-associate.pdf | 2026-05 | 2029-05 | STANDARDActive | Verify |
| AWS Certified Cloud Practitioneraws/cloud-practitioner.pdf | 2025-11 | 2028-11 | STANDARDActive | Verify |
| HashiCorp Certified: Terraform Associatehashicorp/terraform-associate.pdf | 2026-08 | 2028-08 | STANDARDActive | Verify |
| AWS Certified SysOps Administrator, Associateaws/sysops-administrator-associate.pdf | 2026-12 | n/a | PENDINGIn progress | Not yet |
| Linux Foundation Certified System Administratorlinux/lfcs.pdf | 2027-03 | n/a | PENDINGIn progress | Not yet |
How this site runs
Not a diagram from a course. This is what serves this page, it costs nothing to run, and the Terraform is in the repo.
Request
What happens when you opened this page
Deploy
What happens on git push
Provision
What Terraform owns
Your browser. Your request leaves the browser over HTTPS. Everything after this point is static: no app server, no database, nothing to patch at 3 a.m.
$ curl -I https://justo.codesCloudflare DNS. The domain lives on Cloudflare, so the Pages custom domain is a proxied record in the same account. Terraform creates it.
$ dig +short justo.codesCloudflare edge. The nearest Cloudflare data center terminates TLS and serves the cached files. There is one in Jakarta, so the round trip from Indonesia is short.
$ curl -sI https://justo.codes | grep -i cf-cache-statusPages assets. Each deploy is an immutable snapshot of dist/. Rolling back means pointing production at an older deployment.
$ npx wrangler pages deployment listgit push. A push to main triggers a production deploy. Other branches get their own preview URL.
$ git push origin mainGitHub Actions. CI builds the site and runs terraform fmt and validate on every push and pull request, so a broken change fails before it ships.
$ gh run list --workflow ci.ymlPages build. Cloudflare installs dependencies and builds the Astro site to dist/. Only content-hashed files that changed are uploaded.
$ npm ci && npm run buildGo live. Production switches to the new deployment in one step. No half-deployed state, no cache purge needed.
$ curl -s https://justo.codes -o /dev/null -w "%{http_code}"Terraform. The hosting is declared in code with the Cloudflare provider. If the account disappeared tomorrow, one apply brings it back.
$ terraform -chdir=infra/terraform planPages project. The project, its build command, output folder and Node version all live in Terraform instead of dashboard settings nobody remembers.
$ terraform state show cloudflare_pages_project.siteDomain and DNS. Custom domains and their DNS records are managed together, so the domain can never point at a project that doesn't exist.
$ terraform state list | grep dnsLive metrics
No made-up numbers. These are measured from your visit, in your browser, as you read this.
Live metrics
Measured in your browser, right now
- TTFB
- measuring
- Request start to first byte of HTML.
- First Contentful Paint
- measuring
- First text or image drawn.
- Largest Contentful Paint
- measuring
- Biggest element in view so far.
- DOM interactive / load
- measuring/measuring
- Parser done, then load event finished.
- Transferred
- measuring
- Bytes over the wire, page plus assets.
- Requests
- measuring
- Navigation plus resource entries.
- JS heap
- measuring
- Used heap. Chromium exposes this, others do not.
- Connection
- measuring
- Network Information API estimate.
Frame rate
fps, 1 s buckets, last 60 spaused, panel off screenwaiting for first secondLog events
Newest first. Click around the page to add entries.
Publish a message
Internships, full-time roles, or a question about something on this page. I read everything that lands here.
- you@example.com
- linkedin.com/in/justogregorius
- Based in
- Jakarta, Indonesia
Justo Gregorius, 2026. Built with Astro, hosted on Cloudflare Pages.Source on GitHub