PageSourceSearch

https://jorgecastillo.dev/about/

html jorgecastillo.dev collected 2026-10-03 22:06:56 UTC 12,435 bytes, 297 lines download raw bytes

1<!DOCTYPE html>
2<html>
3<head>
4    
5    <link rel="stylesheet" type="text/css" href="/assets/built/style.css" />
6
7    <!-- Document Settings -->
8    <meta charset="utf-8" />
9    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
10
11    <!-- Base Meta -->
12    <!-- dynamically fixing the title for tag/author pages -->
13
14
15
16    <title>Hey! I am Jorge 👋</title>
17    <meta name="HandheldFriendly" content="True" />
18    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
19    <!-- Styles'n'Scripts -->
20    <link rel="stylesheet" type="text/css" href="/assets/built/screen.css" />
21    <link rel="stylesheet" type="text/css" href="/assets/built/screen.edited.css" />
22    <link rel="stylesheet" type="text/css" href="/assets/built/syntax.css" />
23
24    <link rel="preconnect" href="https://fonts.googleapis.com">
25    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
26    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
27    <link href="https://fonts.googleapis.com/css?family=Fira+Code:500&display=swap" rel="stylesheet">
28    <link href="https://fonts.googleapis.com/css?family=Noto+Sans&display=swap" rel="stylesheet">
29    <link href="https://fonts.googleapis.com/css?family=Work+Sans&display=swap" rel="stylesheet">
30
31    <link rel="preconnect" href="https://fonts.googleapis.com">
32    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
33    <link href="https://fonts.googleapis.com/css2?family=Quicksand&display=swap" rel="stylesheet">
34
35    <!-- highlight.js -->
36    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
37    <style>.hljs { background: none; }</style>
38
39    <!--[if IE]>
40        <style>
41            p, ol, ul{
42                width: 100%;
43            }
44            blockquote{
45                width: 100%;
46            }
47        </style>
48    <![endif]-->
49
50    <!-- This tag outputs SEO meta+structured data and other important settings -->
51    <meta name="description" content="You'll find all my tech posts here." />
52    <link rel="shortcut icon" href="https://jorgecastilloprz.github.io/assets/images/favicon.png" type="image/png" />
53    <link rel="canonical" href="https://jorgecastilloprz.github.io/about/" />
54    <meta name="referrer" content="no-referrer-when-downgrade" />
55
56     <!--title below is coming from _includes/dynamic_title-->
57    <meta property="og:site_name" content="👨‍💻 Jorge Castillo" />
58    <meta property="og:type" content="website" />
59    <meta property="og:title" content="Hey! I am Jorge 👋" />
60    <meta property="og:description" content="I'm an Android developer currently working for [47 Degrees](https://www.47deg.com) as Android & Kotlin Tech Lead. I am also part of the [Arrow](https://arrow-kt.io) maintainers team and a speaker. > I insist in good practices and pragmatic reasoning. ### Resume I've coded Android apps for ~10 years until today. If you are" />
61    <meta property="og:url" content="https://jorgecastilloprz.github.io/about/" />
62    <meta property="og:image" content="https://jorgecastilloprz.github.io/assets/images/blog-cover-dark.png" />
63    <meta property="article:publisher" content="https://www.facebook.com/" />
64    <meta property="article:author" content="https://www.facebook.com/" />
65    <meta property="article:published_time" content="" />
66    <meta property="article:modified_time" content="" />
67    <meta name="twitter:card" content="summary_large_image" />
68    <meta name="twitter:title" content="Hey! I am Jorge 👋" />
69    <meta name="twitter:description" content="I'm an Android developer currently working for [47 Degrees](https://www.47deg.com) as Android & Kotlin Tech Lead. I am also part of the [Arrow](https://arrow-kt.io) maintainers team and a speaker. > I insist in good practices and pragmatic reasoning. ### Resume I've coded Android apps for ~10 years until today. If you are" />
70    <meta name="twitter:url" content="https://jorgecastilloprz.github.io/" />
71    <meta name="twitter:image" content="https://jorgecastilloprz.github.io/assets/images/blog-cover-dark.png" />
72    <meta name="twitter:label1" content="Written by" />
73    <meta name="twitter:data1" content="👨‍💻 Jorge Castillo" />
74    <meta name="twitter:site" content="@jorgecastillopr" />
75    <meta name="twitter:creator" content="@jorgecastillopr" />
76    <meta property="og:image:width" content="1400" />
77    <meta property="og:image:height" content="933" />
78
79    
79<script type="application/ld+json">
80{
81    "@context": "https://schema.org",
82    "@type": "Website",
83    "publisher": {
84        "@type": "Organization",
85        "name": "👨‍💻 Jorge Castillo",
86        "logo": "https://jorgecastilloprz.github.io/"
87    },
88    "url": "https://jorgecastilloprz.github.io/about/",
89    "image": {
90        "@type": "ImageObject",
91        "url": "https://jorgecastilloprz.github.io/assets/images/blog-cover-dark.png",
92        "width": 2000,
93        "height": 666
94    },
95    "mainEntityOfPage": {
96        "@type": "WebPage",
97        "@id": "https://jorgecastilloprz.github.io/about/"
98    },
99    "description": "I'm an Android developer currently working for [47 Degrees](https://www.47deg.com) as Android & Kotlin Tech Lead. I am also part of the [Arrow](https://arrow-kt.io) maintainers team and a speaker. > I insist in good practices and pragmatic reasoning. ### Resume I've coded Android apps for ~10 years until today. If you are"
100}
101    </script>
101
102
103    <!-- 
103<script type="text/javascript" src="https://demo.ghost.io/public/ghost-sdk.min.js?v=724281a32e"></script>
103
104    
104<script type="text/javascript">
105    ghost.init({
106    	clientId: "ghost-frontend",
107    	clientSecret: "f84a07a72b17"
108    });
109    </script>
109 -->
110
111    <meta name="generator" content="Jekyll 3.6.2" />
112    <link rel="alternate" type="application/rss+xml" title="Hey! I am Jorge 👋" href="/feed.xml" />
113
114    <style>
115        .highlighter-rouge, .highlight, code {
116            width: 100%;
117        }
118    </style>
119
120
121</head>
122<body class="page-template">
123
124    <div class="site-wrapper">
125        <!-- All the main content gets inserted here, index.hbs, post.hbs, etc -->
126        <!-- < default -->
127<!-- The tag above means: insert everything in this file
128into the {body} of the default.hbs template -->
129
130<!-- The big featured header, it uses blog cover image as a BG if available -->
131<header class="site-header outer">
132    <div class="inner">
133        <nav class="site-nav">
134    <div class="site-nav-left">
135        
136            
137                <a class="site-nav-logo" href="https://jorgecastilloprz.github.io/">👨‍💻 Jorge Castillo</a>
138            
139        
140        
141            <ul class="nav" role="menu">
142    <li class="nav-animations" role="menuitem" style="margin-left: 14px;"><a class="colorWhite" href="/course/">Course 🎬</a></li>
143    <li class="nav-androidcourse" style="margin-left: 10px; margin-right: 10px;" role="menuitem"><a class="colorOnHighlight" href="/book/">Book 📖 Jetpack Compose internals 🔥</a></li>
144    <li class="nav-about" role="menuitem"><a class="menuLink" href="/about/">About</a></li>
145</ul>
146
147        
148    </div>
149    <div class="site-nav-right">
150        <div class="social-links">
151            
152                <a class="social-link social-link-tw" href="https://twitter.com/jorgecastillopr" target="_blank" rel="noopener"><img width=26 src="../assets/images/twitter.svg"/></a>
153            
154            
155                <a class="social-link social-link-tw" href="https://androiddev.social/@jorge" target="_blank" rel="noopener"><img width=26 src="../assets/images/mastodon.svg"/></a>
156            
157        </div>
158    </div>
159</nav>
160
161    </div>
162</header>
163
164<!-- Everything inside the #post tags pulls data from the post -->
165<!-- #post -->
166
167<main id="site-main" class="site-main outer" role="main">
168    <div class="inner">
169
170        <article class="post-full post page no-image">
171
172            <header class="post-full-header">
173                <h1 class="post-full-title">Hey! I am Jorge 👋</h1>
174            </header>
175
176            
177
178            <section class="post-full-content">
179                <p>I’m an Android developer currently working for <a href="https://www.47deg.com">47 Degrees</a> as Android &amp; Kotlin Tech Lead. I am also part of the <a href="https://arrow-kt.io">Arrow</a> maintainers team and a speaker.</p>
180
181<p><img src="../assets/images/portrait.png" alt="My portrait pic" style="width:256px;height:256px" /></p>
182
183<blockquote>
184  <p>I insist in good practices and pragmatic reasoning.</p>
185</blockquote>
186
187<h3 id="resume">Resume</h3>
188
189<p>I’ve coded Android apps for ~10 years until today. If you are interested on hiring me, <a href="../assets/Resume.pdf">here you have my resume</a>.</p>
190
191<p><strong>Contact</strong></p>
192
193<p>You can find me <a href="https://www.twitter.com/JorgeCastilloPR">on Twitter</a>, where I share all my experiences as a developer. Also please, feel free to contact <a href="mailto:[email protected]">by email</a> if you want to.</p>
194
195            </section>
196
197        </article>
198
199    </div>
200</main>
201
202<!-- /post -->
203
204<!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs -->
205<script>
206$(function() {
207    var $postContent = $(".post-full-content");
208    $postContent.fitVids();
209});
210</script>
210
211
212
213
214        <!-- Previous/next page links - displayed on every page -->
215        
216
217        <!-- The footer at the very bottom of the screen -->
218        <footer class="site-footer outer">
219            <div class="site-footer-content inner">
220                <section class="copyright"><a href="https://jorgecastilloprz.github.io/">👨‍💻 Jorge Castillo</a> &copy; 2025</section>
221                <section class="poweredby">
222                    <a rel="me" href="https://androiddev.social/@jorge">Mastodon</a>
223                </section>
224                <nav class="site-footer-nav">
225                    <a href="/">Latest Posts</a>
226                    
227                    <a href="https://twitter.com/jorgecastillopr" target="_blank" rel="noopener">Twitter</a>
228                    <a href="https://ghost.org" target="_blank" rel="noopener">Ghost</a>
229                </nav>
230            </div>
231        </footer>
232
233    </div>
234
235    <!-- highlight.js -->
236    
236<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.10.0/components/prism-abap.min.js"></script>
236
237    
237<script>$(document).ready(function() {
238      $('pre code').each(function(i, block) {
239        hljs.highlightBlock(block);
240      });
241    });</script>
241
242
243    <!-- jQuery + Fitvids, which makes all video embeds responsive -->
244    
244<script
245        src="https://code.jquery.com/jquery-3.2.1.min.js"
246        integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
247        crossorigin="anonymous">
248    </script>
248
249    
249<script type="text/javascript" src="/assets/js/jquery.fitvids.js"></script>
249
250
251
252    <!-- Paginator increased to "infinit" in _config.yml -->
253    <!-- if paginator.posts  -->
254    <!-- 
254<script>
255        var maxPages = parseInt('');
256    </script>
256
257    
257<script src="/assets/js/infinitescroll.js"></script>
257 -->
258    <!-- /endif -->
259
260    
261
262
263    <!-- Add Google Analytics  -->
264    <!-- Google Analytics Tracking code -->
265 
265<script>
vendor: 339 bytes, lines 265-271
265
266  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
267  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
268  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
269  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
270
271  ga('create', '
271UA-142413286-1
vendor: 40 bytes, lines 271-274
271', 'auto');
272  ga('send', 'pageview');
273
274 
274</script>
274
275
276<!-- 100% privacy-first analytics -->
277<script async src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
277
278
279
280    
280<script defer data-domain="jorgecastillo.dev" src="https://plausible.io/js/script.js"></script>
280
281
282    <!-- The #block helper will pull in data from the #contentFor other template files. In this case, there's some JavaScript which we only want to use in post.hbs, but it needs to be included down here, after jQuery has already loaded. -->
283    
284        
284<script>
285$(function() {
286    var $postContent = $(".post-full-content");
287    $postContent.fitVids();
288});
289</script>
289
290
291    
292
293    <!-- Ghost outputs important scripts and data with this tag - it should always be the very last thing before the closing body tag -->
294    <!-- ghost_foot -->
295
296</body>
297</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.